Một mô hình đoán từ tiếp theo, ba tầng huấn luyện, và vài trò khéo lúc chạy - đó là toàn bộ câu chuyện LLM.
ChatGPT ra mắt cuối 2022 trên nền GPT-3.5. Bốn năm sau, 2026, các LLM biên giới có hơn nghìn tỉ tham số, cửa sổ ngữ cảnh cả triệu token, biết "suy nghĩ trước khi trả lời". Hạt nhân vẫn là một thứ rất đơn giản: dự đoán token kế tiếp. Bài này bóc tầng bằng hình, đủ để một software engineer mid-level hiểu cả stack - từ tokenizer, transformer, pretrain, RLHF, Constitutional AI của Claude, tới KV cache, speculative decoding, MoE, và reasoning.
Bài này dành cho ai? Software engineer mid-level từng nghe các từ "transformer", "RLHF", "inference", "MoE" nhưng chưa ghép được chúng vào một bức tranh. Không cần nền toán sâu - chỉ cần biết matrix, probability cơ bản, và có viết code.
Bài này không phải gì? Không phải giáo trình. Không có đạo hàm, không có gradient descent từ đầu. Mục tiêu: xây mental model đủ đúng để đọc paper, viết prompt, chọn model, debug app LLM mà không nói sai kỹ thuật.
1 · Một câu tóm tắt cả LLM
LLM là một hàm số lấy vào một chuỗi token, trả ra một phân phối xác suất trên toàn bộ vốn từ của nó cho token tiếp theo. Đó là toàn bộ API ở lõi. Mọi thứ hào nhoáng - viết code, giải toán, suy luận, viết văn - đều là phần bề mặt của việc gọi đi gọi lại hàm đó, mỗi lần lấy một token mới rồi dán lại vào cuối chuỗi.
mat thắng. Dán vào cuối, chạy lại. Lặp cho tới khi ra ký tự dừng hoặc hết budget."ChatGPT" có thể thành ["Chat", "G", "PT"]; "playing" thành ["play", "ing"]. Điều này cho phép vốn từ hữu hạn bao phủ cả tên riêng, từ hiếm, ngôn ngữ lạ - và giải thích vì sao đếm ký tự trong LLM không bao giờ khớp với ước lượng của bạn.
Một hệ quả khó chịu: LLM không biết ký tự. Nó thấy "strawberry" là chừng 2–3 token gộp. Hỏi "có mấy chữ r?" là bạn đang bắt nó đếm thứ nó chưa bao giờ thấy. Phần lớn lỗi "ngớ ngẩn" của LLM nằm ở lớp tokenizer này, không phải ở lớp suy luận.
2 · Transformer - Trái tim của mọi LLM
Mọi LLM hiện đại - GPT, Claude, LLaMA, Gemini, Mistral, DeepSeek, Qwen - đều dùng kiến trúc Transformer (Vaswani et al., Google, 2017, "Attention Is All You Need"). Phiên bản dành cho LLM sinh văn bản gọi là decoder-only transformer. Cấu trúc rất đều đặn: xếp chồng cùng một khối (block) 30–120 lần.
Self-attention trong 60 giây
Với mỗi token, ba vector được sinh ra: Q (query - "tôi đang tìm gì?"), K (key - "tôi là gì?"), V (value - "tôi mang thông tin gì?"). Token hiện tại so query của nó với key của tất cả token phía trước, ra điểm khớp, rồi trộn value theo điểm đó. Kết quả: mỗi token được "viết lại" với ngữ cảnh bao quanh.
cat), Head 2 (xanh) bắt động từ (saw), Head 3 (xanh lá) bắt từ gần kề. Nhiều head chạy song song, concat lại - đó là "multi-head".3 · Timeline - Từ GPT-3 đến thế hệ 2026
Trước ChatGPT, LLM là đồ chơi học thuật. Sau ChatGPT, nó là sản phẩm. Dưới đây là các cột mốc định hình ngành, dồn nén vào chưa đầy bốn năm rưỡi.
4 · Cách train - Ba giai đoạn
Một model như Claude hay GPT-4 không được train một lần. Nó đi qua ba giai đoạn rất khác nhau về dữ liệu, mục tiêu và chi phí. Hiểu ba giai đoạn này là chìa khoá để hiểu vì sao LLM "cư xử" như hiện tại.
Pretraining - Nơi mọi "kiến thức" đến từ
Pretraining là giai đoạn nuốt dữ liệu. Mọi thứ LLM "biết" về thế giới - Python syntax, lịch sử La Mã, công thức nấu phở - đều đi vào đây. Dataset pha trộn: Common Crawl (lọc kỹ), Wikipedia, sách, GitHub code, arXiv, Stack Exchange, bài blog. Qualtiy filter là phần bí mật nhất - data kém là model kém.
Sau pretraining, bạn có base model. Nó biết viết code Python, biết ngữ pháp tiếng Việt, biết Trần Hưng Đạo là ai - nhưng nếu bạn hỏi "Xin chào, bạn làm gì đấy?" nó sẽ trả lời kiểu: "Tôi đang viết bài. Bạn thì sao? - Tôi đang rảnh rỗi. - Hay quá, tôi cũng thế..." Nó chỉ nối tiếp văn bản, không biết "trả lời" là gì. Đó là việc của hai giai đoạn sau.
SFT - Dạy model biết "trả lời"
SFT = Supervised Fine-Tuning. Bản chất giống pretraining (next-token prediction) nhưng data là hàng chục đến hàng trăm nghìn cặp user question → assistant answer viết thủ công hoặc chọn lọc. Model học format chat, học thái độ trợ lý, học dừng đúng chỗ.
Dữ liệu SFT định hình "tính cách" ban đầu của model. Nếu mọi câu trả lời đều dài, lịch sự, có bullet points - model học theo. Đây là lý do bạn thấy tất cả chatbot đều có giọng điệu hơi giống nhau: cùng pool contractors chấm điểm, cùng style guide.
RLHF - Dạy model biết "trả lời cho tốt hơn"
SFT dạy "một câu trả lời đúng". RLHF (Reinforcement Learning from Human Feedback) dạy mức độ tốt. Công thức kinh điển do OpenAI phổ biến 2022 (InstructGPT, nền móng của ChatGPT):
- Sinh: model trả lời cùng một prompt 2-4 lần.
- Chấm: người annotator xếp hạng các câu trả lời.
- Reward model: train một model nhỏ dự đoán điểm người chấm.
- RL: dùng reward model làm "giáo viên", PPO tối ưu policy (LLM) để tăng điểm kỳ vọng, có penalty KL để không trôi quá xa base.
RLHF là thứ biến GPT-3 thành ChatGPT. Cùng model nền, trước RLHF nó hữu dụng khoảng 30% thời gian; sau RLHF, 80%+. Các kỹ thuật thay thế đã xuất hiện:
5 · Constitutional AI - Con đường Claude
Anthropic được lập 2021 bởi nhóm cựu OpenAI, trong đó có Dario & Daniela Amodei và các tác giả chính của paper GPT-3, với luận điểm: RLHF có bottleneck là con người - không scale, không nhất quán, không minh bạch về giá trị. Giải pháp đề xuất: Constitutional AI (CAI), paper 2022.
Hiến pháp của Claude công khai một phần - trích từ Tuyên ngôn Nhân quyền LHQ, điều khoản dịch vụ của Apple, các nguyên tắc nghiên cứu AI. Điều này không có nghĩa Claude "đọc hiến pháp" mỗi lần trả lời - các nguyên tắc được bake vào weights thông qua giai đoạn RL.
Character training - Một lớp nữa của Claude
Anthropic công khai thêm một bước gọi là character training (từ ~Claude 3, 2024): dùng technique tương tự CAI để định hình tính cách (trái với chỉ "an toàn"). Claude được dạy các đặc tính như tò mò, thẳng thắn lúc cần, khiêm tốn về giới hạn của chính mình, không giả vờ đồng ý. Đây là lý do Claude thường được nhận xét có "giọng" riêng biệt so với GPT hay Gemini.
6 · Inference - Tối ưu lúc chạy
Train một lần, chạy hàng tỷ lần. Inference là nơi hoá đơn cloud của bạn phát sinh, và là nơi kỹ sư ML đổ công nhất trong 2023-2026. Các kỹ thuật dưới đây xếp chồng được - một request của Claude qua API thường được hưởng gần như toàn bộ.
KV cache - Trò khéo đơn giản nhất, ảnh hưởng lớn nhất
Khi sinh token thứ 100, attention cần K và V của 99 token trước. Nếu tính lại từ đầu mỗi token, chi phí O(n²). KV cache chỉ đơn giản là lưu lại K, V đã tính một lần. Từ token thứ 2 trở đi, chỉ tính K, V mới. O(n²) → O(n).
Speculative decoding - Một draft + một verify
Model lớn chạy chậm (mỗi token là một pass qua toàn bộ weights). Ý tưởng: dùng draft model nhỏ, nhanh, đoán trước k token. Rồi model lớn kiểm tra cả k token trong một pass. Những token nào draft đoán đúng được chấp nhận. Token đầu tiên sai bị sửa. Kết quả: nếu draft đoán tốt 70% thời gian, tốc độ tăng ~2-3 lần không mất chất lượng (về mặt toán học, output phân phối giống hệt).
Bốn token sinh ra trong một forward pass của target model thay vì bốn pass riêng lẻ.
MoE - Chia chuyên gia
Mixture of Experts: thay vì 70B tham số đều được kích hoạt cho mọi token, có ví dụ 400B tham số chia thành N "expert" (thường là N=8, 32, hoặc 256). Mỗi token, một router nhỏ chọn top-k expert (thường k=1-2). Chỉ k/N weights được tính. Kết quả: capacity lớn (nhiều param = nhiều knowledge), compute nhỏ (chỉ active một phần).
Quantization - Giảm bit, giữ chất lượng
Weights thường train ở FP16/BF16 (16-bit). Sau train, có thể ép về INT8, INT4, thậm chí FP4 với mất mát rất nhỏ. LLaMA 3 70B ở FP16 cần 140GB; ở INT4 chỉ 40GB - chạy được trên một GPU consumer. Đây là lý do bạn chạy được LLaMA trên MacBook M-series.
Test-time compute - Trả lời lâu để trả lời đúng
Trục scaling thứ hai xuất hiện cuối 2024 với OpenAI o1: thay vì làm model lớn hơn, cho model sinh nhiều token hơn trước khi trả lời cuối. Tokens suy luận (thinking/reasoning tokens) được thưởng nếu dẫn đến đáp án đúng (qua RLVR với toán/code). Nhiều compute lúc chạy → câu trả lời tốt hơn. Kinh tế AI đảo chiều: bây giờ bạn có thể trả thêm tiền mỗi câu trả lời để được thông minh hơn.
Claude có "extended thinking" từ Claude 3.7 (2025): bạn bật flag, model sinh đến hàng chục nghìn token suy luận ẩn, rồi trả câu cuối ngắn gọn. Với bug khó trong code, khoảng cách "suy luận tắt" vs "suy luận bật" đôi khi là vài chục phần trăm accuracy.
7 · Open source - Sân chơi mới
Đến 2026, open weights không còn là đồ chơi. DeepSeek R1, LLaMA 4, Qwen 3, Mistral Large - tất cả cạnh tranh ngang ngửa với frontier đóng trong nhiều benchmark. "Open weights" không có nghĩa open-source đúng nghĩa (code + data + pipeline). Phần lớn chỉ công bố weights; data và quy trình train vẫn đóng. Nhưng đủ cho bạn: chạy local, fine-tune, audit hành vi ở mức input-output.
| Model | Params (tổng / active) | Context | Loại | Ghi chú |
|---|---|---|---|---|
| Claude Opus 4.7 Anthropic · 2026 | - / - | 1M | Closed | Frontier reasoning + character. Không công khai kiến trúc. |
| GPT-5 OpenAI · 2025 | - / - | 400k+ | Closed Reasoning | Hợp nhất GPT + o-series. Router tự chọn mức think. |
| Gemini 3 Pro Google · 2025 | - / - | 2M | Closed MoE | Context dài nhất. Native multimodal. |
| LLaMA 4 Behemoth Meta · 2025 | ~2T / ~288B | 10M (subset) | Open MoE | Model mở lớn nhất. Teacher cho các LLaMA 4 nhỏ hơn. |
| DeepSeek V3 / R1 DeepSeek · 2024-25 | 671B / 37B | 128k | Open MoE Reasoning | Train chi phí thấp (~$6M báo cáo). Reasoning open-source đầu tiên đọ được o1. |
| Qwen 3 / QwQ Alibaba · 2025 | 235B / 22B | 256k | Open MoE Reasoning | Mạnh tiếng Trung, đa ngôn ngữ Á. Nhiều size từ 0.5B đến 235B. |
| Mistral Large 2 Mistral · 2024 | 123B / 123B | 128k | Open-ish | Dense (không MoE). License thương mại hạn chế. |
| Gemma 3 Google · 2025 | 27B / 27B | 128k | Open | Chạy tốt trên một GPU consumer. Multimodal. |
Open Source LLM có thực sự "Open Source"?
Hầu hết cái gọi là "open-source LLM" trong media kỳ thực là open weights - weights được công khai để tải về, chạy, fine-tune. Nhưng data, code train, hyperparams, log - những thứ bạn cần để dựng lại model từ đầu - gần như luôn đóng. Năm 2024, OSI (Open Source Initiative) công bố định nghĩa chính thức Open Source AI yêu cầu cả bốn: weights, code, data (hoặc chi tiết đủ để tái tạo), và license cho phép sửa đổi + phân phối.
Theo tiêu chuẩn đó, phần lớn LLM "mở" hiện nay không đạt. Dưới đây là phổ bốn mức độ, từ đóng kín đến open source theo OSI:
- ✗ Weights
- ~ Kiến trúc (hint)
- ✗ Training data
- ✗ Training code
- ~ Model card / safety report
- ✗ License mở
- ✓ Weights (tải được)
- ✓ Kiến trúc + paper
- ✗ Training data
- ✗ Training code
- ~ Recipe ở mức cao
- ~ License: chặn >700M MAU, chặn train model khác bằng output, acceptable-use policy
- ✓ Weights
- ✓ Kiến trúc + paper
- ✗ Training data
- ~ Inference code (ref impl)
- ~ Training recipe một phần
- ✓ License: Apache 2.0 / MIT - dùng thương mại tự do
- ✓ Weights + checkpoints
- ✓ Kiến trúc + paper
- ✓ Training data công khai (Dolma, Pile)
- ✓ Training code + configs
- ✓ Log, loss curve, seeds
- ✓ License Apache 2.0
Với engineer: đừng bị marketing "open source" đánh lừa khi đánh giá pháp lý hay tái tạo. Hỏi thẳng: có weights không? license gì? dữ liệu train ở đâu? train lại được không? Bốn câu đó tách được LLM bạn có thể thực sự làm chủ khỏi LLM chỉ được "cho mượn".
8 · Mental model cho engineer
Nếu phải giữ lại năm điều thôi để viết app LLM cho đúng, đây là năm điều:
temperature=0 không tất định (phụ thuộc batch, hardware). Muốn reproducibility chặt, dùng seed + cẩn thận với prompt caching.
03 Discussion
Leave a note
A considered space for questions, counterpoints, and useful additions. Civil, on-topic, signed.
Reader notes
...Loading notes...