Chúng ta đang sống trong thời kỳ đáng chú ý, khi các dự án mã nguồn mở do cộng đồng tận tâm dẫn dắt có thể sánh ngang năng lực với những giải pháp độc quyền đắt đỏ từ các tập đoàn lớn. Trong số các bước tiến nổi bật, có những mô hình ngôn ngữ nhỏ hơn nhưng cực kỳ hiệu quả như Vicuna, Koala, Alpaca và StableLM, yêu cầu rất ít tài nguyên tính toán nhưng vẫn cho kết quả tương đương ChatGPT. Điểm chung của chúng là đều được xây dựng trên nền tảng các mô hình LLaMA của Meta AI.
Đọc 12 lựa chọn thay thế GPT-4 mã nguồn mở để tìm hiểu các phát triển mã nguồn mở phổ biến khác trong công nghệ ngôn ngữ.
Trong bài viết này, chúng ta sẽ tìm hiểu về các mô hình LLaMA của Meta AI, khám phá cách chúng hoạt động, truy cập chúng thông qua thư viện transformers, so sánh hiệu năng, và thảo luận những thách thức cùng hạn chế. Kể từ khi bài viết gốc được biên soạn, cả LLaMA 2 và LLaMA 3 đã ra mắt; bạn có thể tìm hiểu thêm chi tiết về từng phiên bản trong các bài viết riêng của chúng tôi.
LLaMA là gì?
LLaMA (Large Language Model Meta AI) là tập hợp các mô hình nền tảng ngôn ngữ tiên tiến với kích thước từ 7B đến 65B tham số. Các mô hình này có kích thước nhỏ hơn nhưng mang lại hiệu năng vượt trội, giảm đáng kể sức mạnh tính toán và tài nguyên cần thiết để thử nghiệm phương pháp mới, kiểm chứng công trình của người khác, và khám phá các trường hợp sử dụng sáng tạo.
Các mô hình nền tảng được huấn luyện trên những tập dữ liệu lớn không gán nhãn, khiến chúng lý tưởng để tinh chỉnh cho nhiều tác vụ. Mô hình được huấn luyện trên các nguồn sau:
- 67,0% CommonCrawl
- 15,0% C4
- 4,5% GitHub
- 4,5% Wikipedia
- 4,5% Sách
- 2,5% ArXiv
- 2,0% StackExchange
Sự đa dạng của tập dữ liệu đã giúp các mô hình đạt hiệu năng tiên tiến hàng đầu, sánh ngang với những mô hình dẫn đầu như Chinchilla-70B và PaLM-540B.
Hiểu tổng quan về sự phát triển của các mô hình OpenAI, bao gồm GPT-1, GPT-2, GPT-3, và tình trạng hiện tại của GPT-4 bằng cách đọc: GPT-4 là gì và vì sao quan trọng?
LLaMA của Meta hoạt động như thế nào?
LLaMA, một mô hình ngôn ngữ tự hồi quy, được xây dựng trên kiến trúc transformer. Tương tự các mô hình ngôn ngữ nổi bật khác, LLaMA hoạt động bằng cách nhận một chuỗi từ làm đầu vào và dự đoán từ tiếp theo, từ đó sinh văn bản lặp dần.
Điểm khác biệt của LLaMA là được huấn luyện trên một lượng lớn dữ liệu văn bản công khai, bao trùm nhiều ngôn ngữ như Bulgaria, Catalan, Séc, Đan Mạch, Đức, Anh, Tây Ban Nha, Pháp, Croatia, Hungary, Ý, Hà Lan, Ba Lan, Bồ Đào Nha, Romania, Nga, Slovenia, Serbia, Thụy Điển và Ukraina. Tính đến năm 2024, LLaMA 2 đã được giới thiệu với kiến trúc và phương pháp huấn luyện cải tiến, tiếp tục nâng cao khả năng đa ngôn ngữ và hiệu quả.
Các mô hình LLaMA có nhiều kích thước: 7B, 13B, 33B và 65B tham số; bạn có thể truy cập trên Hugging Face (các mô hình LLaMA được chuyển đổi để hoạt động với Transformers) hoặc kho chính thức facebookresearch/llama.
Bắt đầu với các mô hình LLaMA
Mã suy luận (inference) chính thức có sẵn tại kho facebookresearch/llama, nhưng để đơn giản, chúng ta sẽ dùng mô-đun LLaMA của thư viện `transformers` trên Hugging Face để tải mô hình và sinh văn bản.
1. Cài đặt tất cả thư viện Python cần thiết để chạy mô-đun.
Lưu ý: chúng tôi dùng Google Colab để chạy suy luận LLaMA.
%%capture
%pip install transformers SentencePiece accelerate
2. Tải token và trọng số mô hình LLaMA.
Lưu ý: “decapoda-research/llama-7b-hf” không phải trọng số chính thức. Decapoda Research đã chuyển đổi trọng số gốc để hoạt động với Transformers.
import transformers, torch
from transformers import LlamaTokenizer, LlamaForCausalLM, GenerationConfig
tokenizer = LlamaTokenizer.from_pretrained("decapoda-research/llama-7b-hf")
model = LlamaForCausalLM.from_pretrained(
"decapoda-research/llama-7b-hf",
load_in_8bit=False,
torch_dtype=torch.float16,
device_map="auto",
)
3. Viết câu hỏi.
4. Chuyển văn bản thành token.
5. Tạo cấu hình sinh văn bản cho mô hình.
6. Dùng token và cấu hình sinh để tạo đầu ra văn bản.
7. Giải mã và in phản hồi.
instruction = "How old is the universe?"
inputs = tokenizer(
f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: {instruction}
### Response:""",
return_tensors="pt",
)
input_ids = inputs["input_ids"].to("cuda")
generation_config = transformers.GenerationConfig(
do_sample=True,
temperature=0.1,
top_p=0.75,
top_k=80,
repetition_penalty=1.5,
max_new_tokens=128,
)
with torch.no_grad():
generation_output = model.generate(
input_ids=input_ids,
attention_mask=torch.ones_like(input_ids),
generation_config=generation_config,
)
output_text = tokenizer.decode(
generation_output[0].cuda(), skip_special_tokens=True
).strip()
print(output_text)
Đầu ra:
Mô hình không chỉ đưa ra ước tính chính xác khoảng 13 tỷ năm cho tuổi của vũ trụ mà còn trình bày lập luận đằng sau cách tính.
Below is an instruction that describes a task. Write a response that
appropriately completes the request.
### Instruction: How old is the universe?
### Response: The age of our Universe can be calculated by measuring
how fast it expands and then using this information to calculate its
size at different points in time, which allows us determine when
things happened relative to each other (evolutionary biology). This
method has been used for many years now with great success; however
there are still some uncertainties about what exactly we're seeing
because light takes so long travel from distant galaxies back here on
Earth! So while scientists have determined roughly 13 billion
year-old as being correct they don't know if their calculations were
off or not due to these limitations mentioned above
Ngoài ra, transformers có thể dùng để tinh chỉnh cho nhiều tác vụ và tập dữ liệu, giúp cải thiện đáng kể độ chính xác và hiệu năng.
Nếu bạn quan tâm đến khía cạnh thực tiễn hơn của phát triển mã nguồn mở, hãy xem bài 5 dự án bạn có thể xây dựng với các mô hình sinh để lấy cảm hứng.
LLaMA khác gì so với các mô hình AI khác?
Bài báo đưa ra đánh giá toàn diện về các mô hình LLaMA, so sánh với các mô hình ngôn ngữ tiên tiến khác như GPT-3, GPT-NeoX, Gopher, Chinchilla và PaLM. Các bài kiểm tra chuẩn bao gồm lý luận thường thức, đố vui, đọc hiểu, hỏi đáp, suy luận toán học, sinh mã, và kiến thức tổng quát theo miền.
- Lý luận thường thức. Mô hình LLaMA-65B vượt trội hơn các kiến trúc SOTA trên các bộ đánh giá PIQA, SIQA và OpenBookQA. Ngay cả mô hình 33B nhỏ hơn cũng vượt qua tất cả trong ARC, cả mức dễ và khó.
- Hỏi đáp đóng & Đố vui. Bài kiểm tra đo khả năng của LLM trong việc diễn giải và trả lời các câu hỏi thực tế của con người. Mô hình LLaMA liên tục vượt GPT-3, Gopher, Chinchilla và PaLM trên các bộ Natural Questions và TriviaQA.
- Đọc hiểu. Sử dụng các bộ RACE-middle và RACE-high. Các mô hình LLaMA vượt GPT-3 và có hiệu năng tương đương PaLM 540B.
- Suy luận toán học. LLaMA không được tinh chỉnh trên dữ liệu toán học và thể hiện khá kém so với Minerva.
- Sinh mã. Sử dụng các bộ HumanEval và MBPP. LLaMA vượt cả LAMDA và PaLM ở HumanEval@100, MBP@1 và MBP@80.
Kiến thức theo miền. Các mô hình LLaMA thể hiện kém hơn so với PaLM 540B có số tham số khổng lồ. PaLM có kiến thức theo miền rộng do số tham số lớn hơn.

Thách thức và hạn chế của LLaMA
Giống như các mô hình ngôn ngữ lớn khác, LLaMA cũng gặp hiện tượng ảo giác. Nó có thể tạo ra thông tin sai sự thật.
Ngoài ra:
- Vì phần lớn tập dữ liệu là văn bản tiếng Anh, cần lưu ý rằng hiệu năng của mô hình trên các ngôn ngữ khác có thể thấp hơn tương đối.
- Mục đích chính của các mô hình LLaMA là cho nghiên cứu (giấy phép phi thương mại). Việc phát hành các mô hình này nhằm hỗ trợ nhà nghiên cứu đánh giá và giải quyết các vấn đề như thiên lệch, rủi ro, sinh nội dung độc hại hoặc gây hại, và ảo giác.
- LLaMA là mô hình nền tảng, không nên dùng để tạo ứng dụng nếu chưa đánh giá và giảm thiểu rủi ro.
- Không mạnh về suy luận toán học và kiến thức theo miền.
Để có góc nhìn về phát triển đóng nguồn, hãy đọc Tin mới nhất về OpenAI, Google AI và ý nghĩa với Khoa học Dữ liệu. Bài viết đề cập đến các công nghệ ngôn ngữ, thị giác và đa phương thức mang tính đột phá và cách chúng giúp chúng ta hiệu quả hơn.
Với các bản phát hành tiếp theo là LLaMA 2 và LLaMA 3, những thách thức và hạn chế mới đã được xác định. Đã có cải tiến ở các khía cạnh như giới hạn độ dài ngữ cảnh và với các phương pháp như tinh chỉnh, ngày càng có thể vượt qua khó khăn ở các tác vụ đòi hỏi kiến thức chuyên sâu theo miền. Như thường lệ, cộng đồng đang tích cực làm việc để nâng cao độ vững và tính ứng dụng của các mô hình này.
Kết luận
Các mô hình LLaMA đã khơi dậy làn sóng cách mạng trong phát triển AI mã nguồn mở. Với mô hình nền tảng nhỏ LLaMA-13B vượt khả năng của GPT-3 và LLaMA-65B thể hiện hiệu năng tương đương các mô hình tiên tiến như Chinchilla-70B và PaLM-540B, những tiến bộ này cho thấy tiềm năng đạt kết quả hàng đầu chỉ bằng cách huấn luyện trên dữ liệu công khai, đồng thời sử dụng tối thiểu tài nguyên tính toán.
Ngoài ra, bài báo nhấn mạnh khả năng cải thiện hiệu năng thông qua tinh chỉnh mô hình LLaMA bằng hướng dẫn. Đáng chú ý, các mô hình Vicuna và Stanford Alpaca được tinh chỉnh từ LLaMA theo các minh họa làm theo hướng dẫn đã cho kết quả tương tự ChatGPT và Bard.
Nếu bạn muốn tận dụng các mô hình ngôn ngữ lớn cho dự án khoa học dữ liệu, hãy xem Hướng dẫn sử dụng ChatGPT cho các dự án Khoa học Dữ liệu. Bạn cũng có thể nâng cao kỹ năng kỹ thuật nhắc lệnh (prompt engineering) bằng cách xem Phím tắt ChatGPT cho Khoa học Dữ liệu.
Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.
