Series Bên trong một LLM · Bài 3/5
Từ mô hình cơ sở đến trợ lý: chuyện gì xảy ra ở post-training
Vẫn là trò đoán token kế tiếp, chỉ khác mỗi dữ liệu. Vậy mà chính bước rẻ và nhanh này mới quyết định mô hình cư xử ra sao.

Cùng một câu hỏi, hai kiểu trả lời
Buổi review sprint, mình thử hai mô hình bằng đúng một prompt: "Soạn email xin lỗi khách vì downtime 2 giờ, ngắn gọn, tông chân thành, 3 gạch đầu dòng hành động khắc phục."
- Mô hình thứ nhất tuôn ra một đoạn văn kiểu blog nói về "cách viết thư xin lỗi". Không có cái email nào cả.
- Mô hình thứ hai in ra đúng cái email, đủ tiêu chí, lịch sự, còn biết từ chối bồi thường theo chính sách.
Khác biệt nằm ở một giai đoạn tên là post-training. Cùng một lõi đoán token kế tiếp, nhưng một bên mới là cỗ máy viết tiếp, bên kia đã thành trợ lý biết nghe lời.
Phần dưới mình dựa vào chương post-training trong bài giảng của Andrej Karpathy. Video đầy đủ ở cuối bài.
Chỉ đổi dữ liệu, không đổi thuật toán
Đây là chỗ mình thấy bất ngờ nhất khi tìm hiểu.
- Pretraining: mô hình học từ biển chữ trên internet để đoán token kế tiếp. Ra một cỗ máy bắt chước văn phong rất giỏi.
- Post-training: lấy đúng mô hình đó, huấn luyện tiếp, nhưng thay toàn bộ dữ liệu bằng các cuộc hội thoại mẫu giữa "người dùng" và "trợ lý".
Thuật toán y nguyên. Chỉ đổi dữ liệu.
Giai đoạn này ngắn và rẻ hơn pretraining rất nhiều vì dữ liệu ít hơn hẳn. Nhưng nó quyết định mô hình cư xử thế nào: lịch sự hay thẳng, biết từ chối hay cố trả lời bừa, thích trả lời ngắn hay có cấu trúc.
| Pretraining | Post-training | |
|---|---|---|
| Dữ liệu | Chữ trên internet, đủ loại | Hội thoại người dùng và trợ lý, có đáp án mẫu |
| Mục tiêu | Đoán token kế tiếp trong văn bản bất kỳ | Đoán token kế tiếp trong khuôn khổ hội thoại |
| Thời gian, chi phí | Rất lớn | Nhỏ hơn nhiều |
| Kết quả | Cỗ máy viết tiếp | Trợ lý có tính cách và ranh giới |
Bộ dữ liệu hội thoại mẫu làm thế nào
Người ta dựng một kho hội thoại nhiều lượt. Mỗi phiên gồm:
- Câu hỏi của "người dùng"
- Câu trả lời lý tưởng của trợ lý, do người biên soạn theo hướng dẫn chi tiết
Hướng dẫn cho người soạn thường rất cụ thể, tinh thần chung là hữu ích, đúng sự thật, an toàn. Cụ thể là:
- Giải thích rõ ràng, có bước làm, có ví dụ
- Không biết thì nhận là không biết, đừng bịa
- Yêu cầu không nên hỗ trợ thì từ chối lịch sự và gợi ý hướng khác
Dữ liệu phải phủ nhiều chủ đề, nhiều kiểu nhiệm vụ, nhiều tình huống phải từ chối. Không thể bao hết mọi câu hỏi tương lai, chỉ cần đủ đa dạng để mô hình bắt được cái vibe của một trợ lý đạt chuẩn.
Điều thú vị: ngày nay phần lớn câu trả lời mẫu không còn viết tay 100%. Người ta để chính các mô hình hiện có nháp trước, rồi người ngồi biên tập lại. Nhanh hơn, rẻ hơn, mà vẫn giữ chất lượng nhờ vòng kiểm của người.
Hội thoại được mã hoá ra sao
Mô hình không hiểu "hội thoại" theo nghĩa của mình. Nó vẫn chỉ thấy một chuỗi token.
Nên trước khi huấn luyện, cuộc trò chuyện phải được đánh dấu theo quy ước: ai đang nói, lượt bắt đầu và kết thúc ở đâu.
Ví dụ minh hoạ ý tưởng, không phải định dạng thật:
<START><ROLE=user>
"2 + 2 bằng bao nhiêu?"
<END>
<START><ROLE=assistant>
"2 + 2 = 4."
<END>
<START><ROLE=user>
"Nếu thay + bằng * thì sao?"
<END>
<START><ROLE=assistant>
... mô hình sẽ đoán token tiếp theo ở đây ...
Mấy thẻ đánh dấu vai trò là token đặc biệt, được thêm vào ở giai đoạn post-training để mô hình học quy ước phiên.
Sau khi mã hoá xong, mô hình lại làm đúng một việc quen thuộc: đoán token kế tiếp. Chỉ khác là giờ nó đoán trong khuôn khổ hội thoại, nên câu trả lời trông giống của một trợ lý.
Lúc bạn chat thật, máy chủ dựng ngữ cảnh theo đúng quy ước đó, dừng ngay trước lượt của trợ lý, rồi để mô hình tự sinh phần còn lại.
Vậy bạn đang nói chuyện với ai
Thứ quay về không phải "ý kiến riêng" của một thực thể thông minh nào cả.
Nó là mô phỏng thống kê của cách những người viết dữ liệu mẫu sẽ trả lời trong tình huống tương tự, dưới bộ hướng dẫn mà công ty đưa cho họ.
- Câu hỏi gần giống ví dụ có trong dữ liệu → câu trả lời rất sát mẫu
- Câu hỏi mới → mô hình trộn kiến thức từ pretraining với phong cách từ post-training, ra một câu trả lời cùng hương vị: có cấu trúc, lịch sự, biết từ chối khi cần
Nên chất lượng bộ dữ liệu hội thoại quan trọng tới mức quyết định. Hướng dẫn mơ hồ hay kiểm duyệt lỏng thì ra trợ lý lúng túng và nói bừa.
Vì sao đổi prompt lại đổi được kết quả
Hai ví dụ gần với việc làm sản phẩm:
Ví dụ 1: "Tóm tắt email khách hàng 300 chữ thành 3 gạch đầu dòng, giữ số liệu, bỏ rào đón."
- Mô hình cơ sở: viết một đoạn văn về tầm quan trọng của việc tóm tắt email
- Mô hình đã post-training: trả về đúng 3 dòng, giữ số liệu, động từ đầu dòng
Ví dụ 2: "Đề xuất 5 KPI cho tính năng thanh toán mới, giải thích vì sao mỗi KPI liên quan tới retention."
- Mô hình cơ sở: trôi thành bài giảng về khái niệm KPI, quên mất ràng buộc 5 mục
- Mô hình đã post-training: liệt kê đúng 5 KPI, mỗi cái một câu giải thích, còn gợi ý cách đo
Lý do là mô hình đang bắt chước mấy mẫu hội thoại nó đã thấy. Nên khi bạn:
- Đặt bối cảnh rõ, nêu vai trò và đầu ra mong muốn → bạn kéo nó về đúng mẫu nó đã học
- Nêu ràng buộc cụ thể kiểu "3 gạch đầu dòng", "mỗi mục 1 câu" → nó tìm ví dụ tương tự trong trí nhớ thống kê rồi làm theo
- Đưa một ví dụ ngắn trước khi yêu cầu → bạn vừa tạo một mẩu dữ liệu huấn luyện ngay trong prompt
Nói gọn: đổi prompt là đổi cái mẫu mà mô hình đang cố bắt chước.
Tóm lại
- Post-training không đổi thuật toán, chỉ đổi dữ liệu. Rẻ và nhanh hơn pretraining, nhưng định hình tính cách của trợ lý.
- Hội thoại được đánh dấu bằng token đặc biệt. Mô hình vẫn chỉ đoán token kế tiếp thôi.
- Câu trả lời là mô phỏng thống kê của những người viết dữ liệu mẫu, không phải ý kiến riêng của ai
- Dữ liệu mẫu giờ thường do mô hình nháp trước, người biên tập sau
- Viết prompt sát với mẫu mà mô hình đã học thì bạn nhận về đúng thứ mình cần
- LLM
- Post-training
- AI

