Tổng kết: Cỗ máy LLM
Ghép sáu mảnh thành một bức tranh: pipeline sinh văn bản end-to-end và self-assessment theo learning outcomes.
TL;DR: Module 3 tháo đúng một cỗ máy: LLM sinh văn bản bằng cách lặp vòng tokenize → context → dự đoán phân phối → sample → decode, và không có bước nào "hiểu" hay "kiểm tra sự thật" chen vào giữa. Năm khái niệm (token, context window, temperature/top-p, SFT/RLHF, hallucination) đều là hệ quả trực tiếp của đúng cơ chế đó. Đây là trang để bookmark.
Đã đi qua những gì
Bạn bắt đầu từ một vòng lặp trơn: tính phân phối, chọn một token, nối vào, lặp lại. Sau đó lần lượt gắn thêm từng mảnh: đơn vị model nhìn thấy là token chứ không phải ký tự, cửa sổ chứa được bao nhiêu token và ai quyết định bỏ gì khi đầy, bước chọn bị temperature và top-p nắn ra sao, hai pha huấn luyện thêm đổi hành vi mà không đổi kiến thức, và vì sao tất cả cộng lại thì hallucination là điều tất yếu. Bài 07 bắt bạn dùng cả bộ đó để đọc ba log sự cố.
🗺️ Cheat sheet
| Concept | Khi nào cần nhớ | Pitfall |
|---|---|---|
| Vòng lặp autoregressive | Giải thích vì sao cùng model viết được cả thơ lẫn debug code | Tưởng có "bộ định tuyến" chuyển chế độ bên trong model |
| Token / Tokenizer (BPE) | Ước lượng chi phí API, giải thích lỗi đếm ký tự | Dùng quy tắc "1 token ≈ 4 ký tự" hoặc tiktoken cho model không phải OpenAI |
| Context window | Debug bot "quên" constraint đầu hội thoại, ước lượng ngân sách token | Nghĩ model "yếu trí nhớ" thay vì hiểu ứng dụng đã cắt lượt cũ |
| Lost-in-the-middle | Đặt vị trí thông tin quan trọng trong prompt dài | Tin "còn trong context là chắc chắn được dùng đều" |
| Temperature | Cần output nhất quán (thấp) hay đa dạng (cao) | Coi là "nút chỉnh độ thông minh"; đổ lỗi lặp vòng cho T cao |
| top-p (nucleus sampling) | Cắt đuôi dài xác suất thấp mà không đổi hình dạng phân phối | Hiểu ngược chiều, nghĩ p cao là "an toàn hơn" |
| SFT | Phân biệt vì sao base model không "trả lời" mà chỉ viết tiếp | Coi base model rẻ là lựa chọn an toàn cho chatbot hỏi-đáp |
| RLHF | Hiểu vì sao chat model biết dừng, biết từ chối, bớt bịa | Nghĩ RLHF nạp thêm kiến thức vào model |
| Hallucination | Đoán trước 4 tình huống dễ bịa: ngoài train, chi tiết cụ thể, thiếu context, temperature cao | Tin giọng tự tin là dấu hiệu đáng tin, hoặc hỏi lại model "bạn có chắc không?" |
📖 Glossary module
| Thuật ngữ | Định nghĩa 1 câu |
|---|---|
| Token | Đơn vị nhỏ nhất model xử lý — mảnh sub-word do tokenizer cắt ra, mỗi mảnh là một ID trong vocabulary |
| Tokenizer | Chương trình tách văn bản thành token trước khi model thấy bất cứ gì |
| Vocabulary | Danh mục token cố định (vài chục tới vài trăm nghìn mục) mà tokenizer dùng để tách |
| BPE (Byte Pair Encoding) | Thuật toán tách token: gộp dần cặp ký tự xuất hiện nhiều nhất trong kho huấn luyện |
| Autoregressive | Cơ chế sinh văn bản: token vừa sinh ra trở thành một phần input của bước kế tiếp |
| Logits | Điểm số thô model tính cho từng token trong vocabulary, trước khi qua softmax |
| Softmax | Hàm biến logits thành phân phối xác suất, tổng luôn bằng 1 |
| Context window | Số token tối đa model "nhìn thấy" trong một request — system prompt + lịch sử + input + output |
| Lost-in-the-middle | Hiện tượng model dễ bỏ sót thông tin nằm giữa một context dài, dù thông tin đó chưa bị cắt |
| Temperature | Tham số chia vào logits trước softmax — chỉnh độ nhọn/phẳng của phân phối xác suất |
| top-p (nucleus sampling) | Giữ tập token nhỏ nhất có tổng xác suất đạt ngưỡng p, loại hẳn đuôi dài xác suất thấp |
| Text degeneration | Hai kiểu văn bản thoái hoá: decode greedy thì lặp vòng, sample cả đuôi dài thì rời rạc, lạc đề |
| Base model | Model chỉ qua pretrain — dự đoán token kế tiếp trên corpus thô, không có khái niệm "trả lời câu hỏi" |
| SFT (Supervised Fine-Tuning) | Tinh chỉnh base model bằng cặp (instruction, response mẫu) do con người viết |
| RLHF (Reinforcement Learning from Human Feedback) | Chỉnh model đã qua SFT bằng lựa chọn con người: reward model chấm điểm, model tối ưu theo đó |
| Reward model | Model phụ học dự đoán điểm số khớp với thứ tự xếp hạng con người, dùng để huấn luyện RLHF |
| Chat model | Model đã qua SFT (+ RLHF) — biết dừng, biết từ chối, theo đúng định dạng hỏi-đáp |
| Hallucination | Output trôi chảy nhưng sai sự thật — hệ quả tất yếu khi phân phối xác suất thiếu căn cứ |
⚠️ Pitfall tổng hợp — đọc từ triệu chứng
Mỗi bài đã có pitfall riêng. Bảng dưới gom lại theo góc của người đang debug: thấy triệu chứng gì, dễ đổ cho cái gì, và cơ chế thật là gì.
| Triệu chứng | Dễ đổ cho | Cơ chế thật | Bài |
|---|---|---|---|
| Hoá đơn tiếng Việt vượt dự tính | "Lưu lượng tăng" | Tiếng Việt tốn 1.5–2.4× token so với tiếng Anh | 02 |
| Bot đếm ký tự, đảo chữ sai | "Prompt chưa rõ" | Model không thấy ký tự; để code đếm | 02 |
| Bot quên yêu cầu đầu hội thoại | "Model yếu trí nhớ" | Ứng dụng cắt lượt cũ nhất khi vượt trần | 03 |
| Có đáp án trong prompt mà vẫn sai | "Model không đọc" | Đáp án nằm giữa context dài (lost-in-the-middle) | 03 |
| Câu rời rạc, lạc đề, chen chữ lạ | "Model kém" | Temperature cao, top-p gần 1 | 04 |
| Lặp một cụm từ mãi | "Temperature cao" | Ngược lại: T quá thấp hoặc greedy | 04 |
| Base model liệt kê câu hỏi thay vì trả lời | "Prompt sai" | Chưa qua SFT; đổi sang chat model | 05 |
| Citation, số liệu nghe rất thật nhưng không tồn tại | "Model nói dối" | Phân phối thiếu căn cứ, không có bước kiểm chứng | 06 |
✅ Self-assessment
Bạn đã đạt module này nếu trả lời được:
- Trace vòng lặp sinh văn bản của LLM: tokenize → context → dự đoán phân phối → sample → decode.
- Explain vì sao model xử lý token thay vì ký tự, và hệ quả với tiếng Việt, code và chi phí API.
- Nếu chưa: đọc lại bài 02 mục 2–4.
- Predict hành vi model khi context window tràn và khi temperature/top-p thay đổi.
- Distinguish base model vs chat model qua vai trò của SFT và RLHF.
- Nếu chưa: đọc lại bài 05 mục 2–4.
- Diagnose hallucination từ cơ chế next-token thay vì coi nó là bug ngẫu nhiên.
- Nếu chưa: đọc lại bài 06 mục 2–4.
🚀 What's next
Module 3 coi model như một hộp đen tính phân phối xác suất: bạn biết nó làm gì, nhưng chưa biết vì sao nó tính được như vậy. Module 4 — Transformer & attention mở hộp đen đó thêm một tầng: vì sao kiến trúc đọc tuần tự cũ (RNN) bị thay thế, attention "nhìn" vào token nào khi dự đoán token kế tiếp, bức tranh lớn của kiến trúc transformer, và scaling laws ở mức định tính. Một module, không cần nền toán sâu.
Xem tiếp: Tổng quan: Transformer & attention
📚 Tài liệu mở rộng
- Paper — vòng lặp next-token: Brown et al. — Language Models are Few-Shot Learners (arXiv:2005.14165)
- Paper — tokenization (BPE): Sennrich, Haddow & Birch — Neural Machine Translation of Rare Words with Subword Units (arXiv:1508.07909)
- Paper — bất công token giữa ngôn ngữ: Petrov et al. — Language Model Tokenizers Introduce Unfairness Between Languages (arXiv:2305.15425)
- Paper — lost-in-the-middle: Liu et al. — Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172)
- Paper — nucleus sampling: Holtzman, Buys, Du, Forbes & Choi — The Curious Case of Neural Text Degeneration (arXiv:1904.09751)
- Paper — SFT + RLHF (InstructGPT): Ouyang et al. — Training language models to follow instructions with human feedback (arXiv:2203.02155)
- Paper — khảo sát hallucination: Ji et al. — Survey of Hallucination in Natural Language Generation (arXiv:2202.03629)
Bài này có giúp bạn hiểu bản chất không?
Bài này đáng gửi cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
Mini-challenge: đọc log ba sự cố LLM
Bài tiếp Transformer & attentionTổng quan: Transformer & attention
Thảo luận & góp ý
Hỏi đáp về bài này