E · Training Architecture
Decoder-only · học và sinh token kế tiếp
Kiến trúc tự hồi quy chỉ nhìn ngữ cảnh phía trước (causal mask) để dự đoán và sinh nối tiếp từng token — nền tảng của hầu hết LLM hiện nay.
1Định nghĩa
Mô hình Decoder-only (như họ GPT, Llama, Qwen, Claude) là kiến trúc tiêu chuẩn của các mô hình sinh văn bản hiện đại. Điểm cốt lõi của nó là mặt nạ nhân quả (causal mask) trong khối Attention: mỗi vị trí token chỉ được phép đọc thông tin từ chính nó và các token đứng trước, tuyệt đối không được nhìn trước phần tương lai.
Thiết kế một chiều này giúp quá trình huấn luyện và suy luận khớp hoàn toàn với nhau: lúc huấn luyện, cả câu mẫu được đưa vào tính song song để đoán token kế tiếp tại mọi vị trí (next-token target); lúc phục vụ suy luận, mô hình chạy prefill trên prompt rồi bước vào vòng lặp decode tự hồi quy kết hợp KV cache để sinh từng token mới.
Ví dụ đời thường: Mô hình Decoder-only giống như một nhà văn đang ngồi gõ từng chữ của cuốn tiểu thuyết mới: tại mỗi thời điểm, nhà văn chỉ có thể đọc lại những dòng mình đã viết phía trước (mặt nạ một chiều causal mask) để nghĩ ra từ tiếp theo, chứ không thể nhìn thấy những câu ở trang sau khi chúng chưa được viết ra.
2Luồng
- Tạo input và target lệch một vị trí
Token hiện tại là input; token kế tiếp là nhãn cần dự đoán.
- Tính biểu diễn không nhìn tương lai
Embedding qua các lớp decoder với causal mask tạo logits.
- Huấn luyện từ các vị trí có nhãn
Loss, gradients và optimizer điều chỉnh cùng bộ trọng số.
- Inference từ prompt
Prefill xử lý prompt, sau đó decode đưa token mới trở lại vòng lặp.
Mã Mermaid
flowchart TD
step1["Tạo input và target lệch một vị trí"]
step2["Tính biểu diễn không nhìn tương lai"]
step3["Huấn luyện từ các vị trí có nhãn"]
step4["Inference từ prompt"]
step1 --> step2
step2 --> step3
step3 --> step4 Các mũi tên biểu diễn quan hệ dữ liệu hoặc quyết định thiết kế. Chọn từng nút để đọc bài liên quan; mở sơ đồ Markdown / Mermaid bên dưới để sao chép.
3Giải pháp
Trong serving, dùng cache key/value hợp lệ để tránh tính lại phần lịch sử ở mỗi bước. Prefill và decode có shapes khác nhau nên có thể cần kernel hoặc batching khác nhau.
Nếu train hội thoại và chỉ tính loss trên câu trả lời, prompt vẫn được đọc làm ngữ cảnh. Điều này đổi vị trí được chấm điểm, không thêm encoder thứ hai hoặc router chuyên gia.
4Profiling
- Tính đúng mask và cache
Thay token tương lai rồi xác nhận logits của vị trí trước không đổi; so decode có cache với tính lại full context.
- Chất lượng và hai pha inference
Đo loss trên dữ liệu giữ riêng; đo thời gian đến token đầu và thời gian mỗi token tiếp theo riêng.
Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.
5Ví dụ
Demo simple và dialogue
Cả hai dùng một decoder layer. Input “xin ” của simple dự đoán phần tiếp tục; dialogue dùng mẫu User/Assistant, nhưng vẫn sinh từng ký tự theo cùng cơ chế.
Llama 3.1
Meta công bố dòng này dùng decoder-only Transformer Dense. Cấu trúc cùng họ với demo, nhưng kích thước, tokenizer và chi tiết từng khối khác rất nhiều.
6Thuật ngữ
- Autoregressive
- Tự hồi quy: kết quả mới được tạo dựa trên phần chuỗi đã có, rồi trở thành đầu vào cho bước sau.
- Causal mask
- Quy tắc chặn thông tin từ token tương lai; khi packing còn phải tôn trọng ranh giới mẫu.
Glossary (6)
- Tokenizer
- Bộ chuyển đổi văn bản và chuỗi mã token theo bảng từ vựng.
- Cache
- Bộ nhớ giữ kết quả có thể dùng lại; trong attention thường giữ key/value vectors.
- Logits
- Điểm số chưa chuẩn hóa cho các token ứng viên trước khi chọn token.
- Kernel
- Hàm tính toán chạy trên thiết bị; thường xử lý nhiều phần tử song song.
- Forward pass
- Tính kết quả model từ đầu vào theo weights hiện tại.
- Context
- Chuỗi token trước vị trí hiện tại mà model được phép sử dụng.