Mô hình ngôn ngữ lớn (LLM – Large Language Model) là một chương trình AI được huấn luyện trên lượng văn bản khổng lồ để làm đúng một việc: đoán mẩu chữ tiếp theo hợp lý nhất. Lặp việc đoán đó hàng trăm lần liên tiếp, mỗi lần nối thêm một mẩu, máy tạo ra được cả đoạn văn trôi chảy. Các chatbot phổ biến hiện nay đều xây trên nền loại mô hình này.
Nghe đơn giản nhưng để đoán đúng chữ tiếp theo trong hàng tỷ câu khác nhau, mô hình buộc phải "nắm" được ngữ pháp, nghĩa của từ, kiến thức phổ thông và cả lối lập luận phổ biến trong văn bản. Bài này giải thích từng mảnh: token, tham số, hai giai đoạn huấn luyện, cửa sổ ngữ cảnh và lý do chatbot đôi khi nói sai rất tự tin. Cách dùng chatbot thực tế nằm ở chuyên mục Trợ lý AI.
Token: đơn vị chữ mà mô hình nhìn thấy
Mô hình không đọc từng chữ cái hay từng từ như người. Văn bản được cắt thành các mẩu gọi là token. Một token có thể là cả một từ phổ biến, một phần của từ, một dấu câu hay một khoảng trắng. Bộ cắt (tokenizer) được tạo sẵn bằng cách thống kê các chuỗi ký tự hay gặp: chuỗi càng phổ biến càng được giữ nguyên thành một token.
Với tiếng Anh, trung bình một từ tương đương khoảng một đến một token rưỡi. Tiếng Việt có dấu thường tốn nhiều token hơn cho cùng nội dung, vì các chữ có dấu như "ưỡng", "nghiệ" ít xuất hiện trong dữ liệu huấn luyện so với tiếng Anh nên hay bị cắt vụn. Hệ quả thực tế: cùng một đoạn văn, bản tiếng Việt chiếm nhiều chỗ trong bộ nhớ làm việc của mô hình hơn, và nếu dịch vụ tính phí theo token thì đắt hơn. Các thế hệ bộ cắt mới đã cải thiện tiếng Việt đáng kể nhưng chênh lệch vẫn còn tuỳ mô hình.
Mỗi token được đổi thành một dãy số (gọi là vectơ nhúng). Những token có nghĩa gần nhau sẽ có dãy số gần nhau, ví dụ "mèo" và "chó" gần nhau hơn "mèo" và "hoá đơn". Từ đây, mọi việc bên trong mô hình chỉ còn là phép tính trên các dãy số.
Dự đoán từ tiếp theo hoạt động ra sao
Mô hình chấm điểm cho mọi token có thể. Với câu "Hà Nội là thủ đô của", mô hình tính xác suất cho hàng chục nghìn token trong từ điển của nó. "Việt" có thể được chấm rất cao, "nước" thấp hơn, "quả chuối" gần như bằng không. Rồi nó chọn một token, nối vào câu, và lặp lại cho token sau.
Cơ chế "chú ý" giúp nhìn cả câu. Kiến trúc nền của LLM hiện nay gọi là Transformer, công bố năm 2017. Điểm cốt lõi là cơ chế chú ý (attention): khi đoán token mới, mô hình cân xem token nào trước đó liên quan nhất. Trong câu "Con mèo đuổi con chuột vì nó đói", cơ chế này giúp mô hình liên hệ "nó" với "con mèo" chứ không phải "con chuột".
Không phải lúc nào cũng chọn token điểm cao nhất. Nếu luôn chọn token cao nhất, văn sẽ khô và lặp. Hệ thống thường bốc ngẫu nhiên có trọng số trong nhóm token điểm cao, mức độ ngẫu nhiên điều chỉnh bằng một thông số hay gọi là nhiệt độ (temperature). Vì vậy hỏi cùng một câu hai lần có thể nhận hai câu trả lời khác chữ.
Câu trả lời dài được viết từng mẩu một. Mô hình không lên dàn ý trọn vẹn rồi mới viết như người. Nó sinh lần lượt từng token, mỗi token dựa trên toàn bộ phần đã có. Đó là lý do bạn thấy chữ hiện ra dần trên màn hình. Một số mô hình mới được huấn luyện để "nghĩ nháp" nhiều bước trước khi trả lời, nhưng bản chất vẫn là sinh token.
Tham số là gì và vì sao gọi là "lớn"
Tham số là những con số bên trong mô hình quyết định nó biến token đầu vào thành xác suất đầu ra như thế nào. Có thể hình dung như hàng tỷ núm vặn trên một bàn điều khiển: mỗi núm vặn một chút, tổ hợp tất cả tạo ra hành vi của mô hình. Không núm nào chứa riêng một kiến thức như "Hà Nội là thủ đô"; kiến thức nằm rải rác trong cách các núm phối hợp.
Chữ "lớn" chỉ hai thứ: số tham số và lượng dữ liệu huấn luyện. Mô hình ngôn ngữ đời trước có vài triệu tham số; LLM ngày nay có từ vài tỷ đến hàng trăm tỷ, một số hãng không công bố con số. Dữ liệu huấn luyện được tính bằng hàng nghìn tỷ token, gồm trang web công khai, sách, bài báo khoa học, mã nguồn và nhiều nguồn khác đã qua lọc.
Nhiều tham số hơn thường giỏi hơn nhưng không phải luật tuyệt đối. Chất lượng dữ liệu, cách huấn luyện và tinh chỉnh ảnh hưởng không kém. Có những mô hình nhỏ chạy được trên điện thoại hay máy tính cá nhân, đủ tốt cho việc tóm tắt hay soạn tin ngắn, trong khi mô hình rất lớn phải chạy trên cụm máy chủ dùng hàng nghìn chip chuyên dụng.
Hai giai đoạn huấn luyện: từ "đoán chữ" thành "trợ lý"
Một chatbot hữu ích là kết quả của nhiều giai đoạn nối tiếp, mỗi giai đoạn có mục tiêu riêng:
- Huấn luyện trước (pre-training). Mô hình đọc hàng nghìn tỷ token, liên tục che token tiếp theo rồi tự đoán và tự sửa tham số khi đoán sai. Giai đoạn này tốn nhiều tháng và chi phí điện, máy rất lớn. Kết quả là một mô hình nắm ngôn ngữ và kiến thức rộng, nhưng chỉ biết viết tiếp văn bản: hỏi nó một câu, nó có thể viết tiếp thành một danh sách câu hỏi khác thay vì trả lời.
- Tinh chỉnh theo chỉ dẫn (instruction tuning). Người ta cho mô hình học thêm hàng chục đến hàng trăm nghìn cặp mẫu "yêu cầu – câu trả lời tốt" do con người viết hoặc chọn lọc. Mô hình học được định dạng hội thoại: người hỏi thì trả lời, được yêu cầu tóm tắt thì tóm tắt.
- Học từ phản hồi của con người (RLHF và các biến thể). Người đánh giá xem nhiều câu trả lời cho cùng một câu hỏi rồi xếp cái nào tốt hơn: đúng hơn, rõ hơn, an toàn hơn. Từ các lựa chọn đó, mô hình được điều chỉnh để ưu tiên kiểu trả lời con người đánh giá cao, đồng thời học từ chối những yêu cầu nguy hiểm.
- Kiểm thử và cập nhật. Trước khi phát hành, mô hình được thử với nhiều tình huống khó để tìm lỗi. Sau phát hành, nhà phát triển tiếp tục ra phiên bản mới; mỗi phiên bản là một lần huấn luyện hoặc tinh chỉnh lại.
Giai đoạn ba giải thích vì sao chatbot thường lễ phép, hay nói "câu hỏi hay đấy" và đôi khi chiều theo ý người hỏi quá mức: nó được tối ưu để câu trả lời được đánh giá tốt, mà con người thường thích câu trả lời dễ chịu.
Mô hình không "tra cứu" như Google
Công cụ tìm kiếm giữ một chỉ mục các trang web và trả về đường dẫn tới nguồn thật. LLM thuần thì không có kho tài liệu nào để mở ra đối chiếu khi trả lời; kiến thức đã bị "nén" vào tham số trong lúc huấn luyện. Khi bạn hỏi, mô hình tái tạo câu trả lời từ những mẫu đã học, giống người kể lại một cuốn sách đọc từ lâu: ý chính thường đúng, chi tiết như năm tháng, số liệu, tên riêng ít gặp dễ sai.
Đó là gốc rễ của hiện tượng "bịa" (hallucination): mô hình được huấn luyện để tạo ra câu nghe hợp lý, và một câu sai vẫn có thể nghe rất hợp lý. Nó không có cơ chế tự nhiên để nói "chỗ này mình không chắc" trừ khi được huấn luyện thêm.
Nhiều chatbot ngày nay được nối thêm công cụ tìm kiếm web hoặc kho tài liệu của doanh nghiệp. Khi đó hệ thống tìm đoạn văn liên quan trước, đưa vào cho mô hình đọc rồi mới trả lời, thường kèm nguồn trích. Cách này giảm sai đáng kể nhưng không triệt tiêu: mô hình vẫn có thể đọc nhầm hoặc tóm sai nguồn. Muốn biết câu trả lời có dựa trên nguồn hay không, hãy xem nó có dẫn nguồn cụ thể và nguồn đó nói đúng như vậy không.
Cửa sổ ngữ cảnh và mốc kiến thức
Cửa sổ ngữ cảnh là lượng token tối đa mô hình xem được cùng lúc, gồm cả lời bạn viết, tài liệu dán vào, lịch sử cuộc trò chuyện và câu trả lời đang sinh. Có thể ví như mặt bàn làm việc: bàn rộng bao nhiêu thì bày được bấy nhiêu giấy tờ. Mô hình đời đầu chỉ có vài nghìn token, nhiều mô hình hiện nay đạt hàng trăm nghìn đến khoảng một triệu token. Khi cuộc trò chuyện vượt quá cửa sổ, phần cũ nhất bị cắt bỏ hoặc tóm lược, nên chatbot có vẻ "quên" điều bạn dặn từ đầu. Ngay trong cửa sổ, thông tin nằm giữa một tài liệu rất dài cũng có thể bị bỏ sót.
Mốc kiến thức (knowledge cutoff) là thời điểm dữ liệu huấn luyện dừng lại. Sự kiện xảy ra sau mốc này mô hình không biết, trừ khi được nối công cụ tìm kiếm. Mốc thường cách ngày phát hành vài tháng đến hơn một năm. Vì thế hỏi về giá cả, quy định mới hay kết quả trận đấu hôm qua, câu trả lời của mô hình thuần có thể đã lỗi thời mà nó không tự biết.
Hai giới hạn này cộng với cơ chế đoán chữ cho ra một nguyên tắc đơn giản: LLM giỏi diễn đạt, giải thích, tóm tắt, viết lại; còn với sự kiện, con số và điều mới, kết quả của nó là bản nháp cần kiểm.
Câu hỏi thường gặp
LLM có hiểu ý nghĩa câu chữ không?
Đây là câu hỏi giới nghiên cứu còn tranh luận. Mô hình nắm được quan hệ giữa các khái niệm đủ để suy luận nhiều việc, nhưng nó không trải nghiệm thế giới như người và có thể sai ở những điều rất hiển nhiên. Nói nó hiểu theo nghĩa thống kê thì hợp lý, hiểu như người thì chưa.
Vì sao chatbot hay đếm sai chữ trong một từ?
Vì mô hình nhìn token chứ không nhìn từng chữ cái. Một từ có thể chỉ là một token nên mô hình không thấy trực tiếp nó gồm những chữ cái nào. Đếm ký tự, đảo ngược chữ, tính toán số lớn là các việc mô hình thuần dễ sai nếu không được nối công cụ tính.
Chatbot có nhớ cuộc trò chuyện trước của mình không?
Bản thân mô hình không đổi tham số sau mỗi cuộc trò chuyện. Một số dịch vụ có tính năng bộ nhớ, lưu vài thông tin về bạn rồi tự chèn vào ngữ cảnh lần sau. Tính năng này thường bật tắt được trong cài đặt, tên mục khác nhau tuỳ ứng dụng và phiên bản.
Huấn luyện một mô hình ngôn ngữ lớn tốn bao nhiêu?
Các mô hình hàng đầu tốn từ hàng chục đến hàng trăm triệu đô la cho máy tính và điện năng, theo ước tính công khai của giới nghiên cứu, chưa kể chi phí nhân sự và dữ liệu. Con số cụ thể của từng hãng thường không được công bố chính xác.
Mô hình nguồn mở khác mô hình đóng thế nào?
Mô hình có trọng số mở cho phép tải tham số về chạy trên máy riêng, tuỳ chỉnh theo điều khoản giấy phép. Mô hình đóng chỉ dùng qua ứng dụng hoặc giao diện lập trình của nhà phát triển. Mở giúp chủ động dữ liệu, đóng thường tiện và mạnh hơn ở bản hàng đầu.
LLM có thể tự học thêm từ internet mỗi ngày không?
Không tự động. Muốn cập nhật kiến thức, nhà phát triển phải huấn luyện hoặc tinh chỉnh lại, việc tốn kém nên làm theo đợt. Cảm giác chatbot biết tin mới thường do nó được nối công cụ tìm kiếm ngay lúc trả lời.