Kiến trúc Transformer & Điều gì đang được điều chỉnh
Hiểu đủ sâu về attention, layer, weight matrix để biết chính xác fine-tuning đang thay đổi cái gì bên trong model.
Bạn không cần tự cài đặt Transformer từ đầu, nhưng cần hiểu đủ để đọc hiểu tài liệu kỹ thuật của LoRA/QLoRA/DPO mà không bị choáng ngợp bởi thuật ngữ. Module 4 khoá AI Engineer đã giới thiệu Transformer ở mức khái niệm cho người dùng API — module này đào sâu thêm một lớp, đủ để hiểu "fine-tuning" nghĩa là chỉnh sửa cái gì trong hàng tỷ con số đó.
🎯 Mục tiêu học tập
- Mô tả được một model là tập hợp các weight matrix được tổ chức thành layer, và forward pass là gì
- Hiểu self-attention tính toán ra sao ở mức đủ để đọc hiểu công thức Q/K/V
- Biết các thành phần weight nào trong mỗi layer (attention, feed-forward/MLP) thường được nhắm đến khi fine-tune
- Hiểu khái niệm gradient, backpropagation, và loss function ở mức trực quan cần thiết để đọc log huấn luyện
Model = một chồng weight matrix rất lớn
Về bản chất, một LLM là hàng chục đến hàng trăm layer xếp chồng lên nhau, mỗi layer chứa vài weight matrix (ma trận số thực) được khởi tạo ngẫu nhiên rồi điều chỉnh dần qua quá trình huấn luyện (pre-training) trên hàng nghìn tỷ token văn bản. "Fine-tuning" đơn giản là tiếp tục điều chỉnh một phần hoặc toàn bộ các con số này trên một tập dữ liệu nhỏ hơn, chuyên biệt hơn — không có gì huyền bí, chỉ là tiếp tục quá trình huấn luyện với dữ liệu và mục tiêu khác.
Self-Attention — cơ chế cốt lõi
Mỗi token trong câu sinh ra 3 vector: Query (Q), Key (K),
Value (V) — thông qua 3 weight matrix riêng (W_Q, W_K,
W_V). "Điểm chú ý" giữa hai token được tính bằng tích vô hướng giữa Query của token này và
Key của token kia; điểm càng cao, token kia càng ảnh hưởng nhiều đến việc "hiểu" token hiện tại. Đầu ra là
tổng có trọng số của các Value theo điểm chú ý này — về trực giác: mỗi từ "hỏi" các từ khác trong câu
"bạn liên quan đến tôi thế nào?" rồi tổng hợp thông tin theo mức độ liên quan.
# Công thức Scaled Dot-Product Attention (giản lược)
# Q, K, V có shape (seq_len, d_k)
attention_scores = (Q @ K.T) / sqrt(d_k)
attention_weights = softmax(attention_scores) # chuẩn hoá thành xác suất
output = attention_weights @ V
Multi-head attention chạy nhiều "bộ" Q/K/V song song (mỗi head học một kiểu quan hệ
khác nhau — ví dụ một head chuyên về quan hệ ngữ pháp, head khác chuyên về quan hệ ngữ nghĩa xa) rồi ghép
kết quả lại — đây chính là các ma trận W_Q, W_K, W_V,
W_O (output projection) mà LoRA (Module 4) thường nhắm đến để fine-tune.
Feed-Forward/MLP Layer & Kiến trúc tổng thể
Sau attention, mỗi layer có thêm một khối feed-forward network (MLP) — 2-3 weight matrix lớn hơn nhiều so với attention, xử lý từng token độc lập (không "nhìn" token khác), thường được xem là nơi lưu trữ phần lớn "kiến thức thực tế" của model. Một model như Llama/Qwen/GPT thường có vài chục layer xếp chồng, mỗi layer gồm: Attention → residual connection → LayerNorm → MLP → residual connection → LayerNorm. Tổng số tham số (parameter) của model chính là tổng kích thước toàn bộ các weight matrix này — "model 7B" nghĩa là khoảng 7 tỷ con số cần điều chỉnh.
Loss, Gradient, Backpropagation — đủ để đọc log huấn luyện
Loss function đo "model sai bao nhiêu" so với đáp án đúng trong dữ liệu huấn luyện (với LLM thường là cross-entropy loss: model dự đoán xác suất cho token tiếp theo, so với token thật). Sau mỗi batch dữ liệu, backpropagation tính toán gradient (đạo hàm của loss theo từng weight — "nếu tăng/giảm con số này một chút thì loss thay đổi thế nào") rồi cập nhật weight theo hướng giảm loss (gradient descent). Khi đọc log huấn luyện, hai chỉ số quan trọng nhất: training loss (có giảm ổn định không, giảm quá nhanh có thể là dấu hiệu overfitting) và learning rate (tốc độ cập nhật — quá cao gây mất ổn định, quá thấp học quá chậm).
🏋️ Bài tập thực hành
Trên Hugging Face, mở trang model card của 1 model nhỏ mã nguồn mở (ví dụ Qwen2.5-0.5B hoặc Llama-3.2-1B), tìm file config.json — xác định số layer (num_hidden_layers), số attention head (num_attention_heads), kích thước hidden dimension (hidden_size). Tính thử tổng số tham số ước lượng từ các con số này (công thức gần đúng: ~12 × num_layers × hidden_size²) và so sánh với số tham số model công bố chính thức.
📚 Tài nguyên học tập
-
Jay Alammar — The Illustrated TransformerBài viết kinh điển giải thích trực quan kiến trúc TransformerBài viết
-
Hugging Face — Transformers architecture docsTài liệu kiến trúc model Llama tham khảo (đại diện kiến trúc phổ biến)Docs
-
3Blue1Brown — Neural Networks / Attention (video)Chuỗi video trực quan hoá attention & neural networkVideo
✅ Tự đánh giá hoàn thành
- Giải thích được Q/K/V và self-attention ở mức trực giác cho người khác nghe hiểu
- Xác định được attention weight và MLP weight trong config của 1 model thật
- Đọc hiểu được ý nghĩa cơ bản của training loss và learning rate trong log huấn luyện