Giới thiệu khóa học
LLM Training (Text): đi theo một vòng huấn luyện mô hình ngôn ngữ từ dữ liệu đến checkpoint
Một mô hình ngôn ngữ lớn (LLM, large language model) sinh văn bản bằng cách đoán từng token kế tiếp. Token là một mảnh văn bản nhỏ, như một từ hay một phần của từ, đã được đổi thành số. Huấn luyện là chỉnh các con số bên trong mô hình, gọi là trọng số (weights), để lần đoán sau ít sai hơn lần trước.
Khóa này đi theo đúng vòng đó trên một sơ đồ 22 ô: lấy dữ liệu, cho mô hình tính ra điểm số (forward), đo sai số (loss), tính hướng sửa (backward), cập nhật trọng số, lặp lại, rồi lưu checkpoint (bản lưu trọng số) để đem đi suy luận, tức dùng mô hình đã huấn luyện để sinh văn bản. Bạn cần phần này để hiểu một mô hình ngôn ngữ ra đời như thế nào trước khi học cách phục vụ nó.
Khóa học gồm
- Một sơ đồ 22 ô, mã từ
1Ađến5C, vẽ vòng huấn luyện từ văn bản thô đến checkpoint; mỗi ô mở một bài học riêng. - Cột 1 đến 3 là vòng lặp thật: chuẩn bị dữ liệu và nhãn, forward qua Transformer (mạng xếp chồng nhiều lớp attention và mạng truyền thẳng), rồi học từ sai số bằng loss, gradient và AdamW (bộ tối ưu đổi gradient thành bước sửa cho từng trọng số).
- Hai kỹ thuật tiết kiệm bộ nhớ gắn vào vòng lặp: ZeRO (chia trọng số, gradient và trạng thái của AdamW cho nhiều GPU, tức chip tính toán song song) và recompute (bỏ bớt kết quả trung gian của forward rồi tính lại khi cần).
- Năm phương pháp huấn luyện thay thế nhau: pretraining (học nền từ kho văn bản rất lớn), SFT (supervised fine-tuning: học từ cặp hỏi đáp mẫu), LoRA (chỉ học hai ma trận nhỏ gắn thêm), distillation (mô hình nhỏ học theo mô hình lớn) và preference (học từ cặp câu được chọn và câu bị loại, như DPO và RLHF).
- Băng 5 dùng checkpoint để suy luận: prompt thành token ID, prefill (đọc cả prompt một lượt), decode (sinh từng token), rồi ra văn bản.
- Tab 02 là một bài lab NumPy chạy ngay trong trình duyệt, huấn luyện một LLM thu nhỏ qua 13 giai đoạn khớp với các ô này.
Học xong, bạn có thể
- Kể đúng thứ tự một bước huấn luyện, dữ liệu → forward → loss → backward → cập nhật → lặp, và chỉ ra từng bước ở ô nào.
- Giải thích vì sao văn bản tự sinh ra đáp án: mỗi vị trí lấy token đứng ngay sau nó làm nhãn, nên không cần ai gán nhãn.
- Phân biệt loss (một con số đo sai số), gradient (hướng sửa của từng trọng số) và AdamW (quyết định sửa bao nhiêu).
- Nói ZeRO và recompute tiết kiệm bộ nhớ mà không đổi toán học của huấn luyện.
- So sánh năm phương pháp huấn luyện: mỗi phương pháp dùng lại cột 1 đến 3 và chỉ đổi dữ liệu, mặt nạ hoặc hàm loss.
- Chỉ ra checkpoint được dùng lại ở suy luận ra sao (ô 5A đến 5C) và kiểm chứng bằng số trong bài lab.
Phạm vi: khóa chỉ dạy huấn luyện mô hình văn bản, tức mô hình sinh văn bản bằng cách đoán token kế tiếp; khóa không dạy huấn luyện trên ảnh hay âm thanh. Kiến trúc đa phương thức nằm ở bài Text-only / multimodal của LLM Foundations, còn DeepSeek-V4.1-Flash, Qwen-Image-2.1 và Qwen3-Omni mổ xẻ từng mô hình đa phương thức nhưng chỉ ở mức kiến trúc và suy luận.
Cách đọc sơ đồ kiến trúc
- Bắt đầu ở
1A, góc trên bên trái, rồi đi xuống cột 1:1Ađổi văn bản thành token ID,1Btạo đáp án (token kế tiếp) cho mỗi vị trí,1Clà nhánh riêng của SFT thêm mẫu hội thoại và mặt nạ loss. - Theo mũi tên từ
1Bsang cột 2:2A→2B→2C→2Dbiến token ID thành logits, tức điểm số của mọi token trong từ vựng ở mỗi vị trí. - Theo mũi tên từ
2Dsang cột 3:3Achấm điểm bằng loss,3Btính gradient ngược lại,3Ccho xem gradient từng lớp,3D(AdamW) sửa trọng số,3Elặp, đánh giá và lưu checkpoint. - Mũi tên đứt nét
next batchtừ3Equay về cột 1 để lấy batch (nhóm tài liệu xử lý cùng lúc) kế tiếp với trọng số mới; vòng này lặp hàng nghìn lần. Mũi tênload weightsđi xuống băng 5:5A→5B→5Cdùng checkpoint với trọng số đóng băng, nghĩa là không còn cập nhật, để nhận prompt, prefill, decode rồi trả văn bản. - Cột 4 không phải bước kế tiếp.
4Avà4Blà kỹ thuật tiết kiệm bộ nhớ gắn vào vòng ở cột 3;4Cđến4Glà năm phương pháp huấn luyện thay thế nhau, mỗi phương pháp dùng lại cột 1 đến 3 và chỉ đổi dữ liệu, mặt nạ hoặc loss. Thứ tự các cột là thứ tự để học, còn thứ tự chạy thật đi theo mũi tên. - Di chuột, hoặc nhấn Tab, lên một ô để đọc pop-over năm phần: nhận gì, làm gì và vì sao, ra gì, ví dụ, lưu ý. Bấm ô để mở bài học. Nút Trọng tâm làm sáng một nhóm ô; Tắt overlay (cạnh Vừa khung) ẩn các khung ô và pop-over để đọc ảnh gốc, bấm lại để bật. Sau khi đọc sơ đồ, sang Tab 02 để chạy bài lab.
Hai mũi tên sang phải (từ 1B sang cột 2 và từ 2D sang cột 3) được vẽ chạm cạnh cột chứ không chạm đúng ô. Ô nhận dữ liệu thật là 2A và 3A; xem mục Nhận gì trong pop-over của ô.
Vì sao cột 4 không phải bước tiếp theo?
Vòng huấn luyện thật chỉ gồm cột 1, 2, 3 lặp đi lặp lại. Cột 4 trả lời hai câu hỏi khác: 4A và 4B hỏi "làm sao vòng này vừa vào bộ nhớ GPU", còn 4C đến 4G hỏi "dạy mô hình bằng dữ liệu và loss nào". Chọn pretraining thì dùng kho văn bản lớn, chọn SFT thì dùng cặp hỏi đáp và mặt nạ ở 1C, chọn LoRA thì chỉ học một phần nhỏ trọng số, chọn distillation thì học từ mô hình lớn, chọn preference thì học từ cặp câu tốt và kém.
Thực hành toàn trình trong một bài Lab duy nhất (Tab 02)
Cả 22 ô hội tụ về một bài Lab NumPy chạy trực tiếp trong trình duyệt ở Tab 02, đi qua 13 giai đoạn từ dữ liệu, forward, loss, backward, AdamW, ZeRO và recompute tới SFT, LoRA, distillation, DPO và suy luận từ checkpoint. Mở Tab 02 · Bài Lab tổng hợp ↗
Nguồn công bố tham chiếu
Danh sách bài học (24)
- Chuẩn bị dữ liệu để huấn luyện dự đoán token kế tiếp
- Tạo câu hỏi và đáp án cho mỗi vị trí trong chuỗi
- Hàm mất mát: model gán bao nhiêu xác suất cho đáp án đúng
- Tính gradient để biết tham số cần thay đổi ra sao
- AdamW: cập nhật tham số từ gradient
- Vòng huấn luyện, đánh giá và lưu trạng thái tiếp tục
- Chuẩn hóa vector và đường cộng residual trong transformer
- Query, key và value kết hợp context như thế nào
- Mạng truyền thẳng và cổng kích hoạt sau attention
- Chia trạng thái huấn luyện để giảm bộ nhớ mỗi worker
- Tính lại biểu diễn trung gian để tiết kiệm memory training
- Bước training: forward từ token đến điểm số
- Bước inference: tiếp nhận prompt và yêu cầu sinh
- Bước inference: chuyển prompt thành mã token
- Bước inference: xử lý prompt và chọn token đầu tiên
- Bước inference: vòng sinh và bổ sung context
- Bước inference: kết thúc và trả văn bản
- Gradient đi qua một lớp transformer
- Pretraining và continued pretraining · học nền tảng rồi học tiếp
- Fine-tuning (SFT) · dạy tiếp model đã học bằng cặp yêu cầu – trả lời mẫu
- LoRA / QLoRA · học một cặp ma trận nhỏ thay vì sửa toàn bộ trọng số
- Knowledge distillation · model nhỏ học từ tín hiệu của model lớn
- Response / sequence distillation · fine-tune student trên câu trả lời của teacher
- Preference training · dạy model ưu tiên câu trả lời tốt hơn (reward model, PPO, DPO)
