Bản chất tầng Embedding như một tầng Tuyến tính One-Hot (Embedding as Linear)
Trong Xử lý Ngôn ngữ Tự nhiên (NLP) và LLM, một câu hỏi sư phạm kinh điển là: Tầng Embedding thực chất là gì?

Transformer là nền tảng của mọi mô hình ngôn ngữ lớn (LLM) hiện đại như GPT, Claude, LLaMA. Lập trình từng khối tính toán cốt lõi để làm chủ công nghệ AI tạo sinh.
bài tập có chấm code
Bài tập theo chuyên đề, có đề bài, ví dụ và starter code riêng.
cơ bản
Củng cố nền tảng và làm quen với kỹ thuật cốt lõi.
trung bình
Kết hợp nhiều bước suy luận để vận dụng kiến thức.
nâng cao
Thử thách tối ưu, cấu trúc dữ liệu và thuật toán chuyên sâu.
Tính tích vô hướng Q và K, nhân hệ số căn bậc hai dk, áp dụng Softmax và nhân với V.
Che các từ tương lai bằng ma trận tam giác trên để mô hình không nhìn trộm đáp án.
Chiếu Q, K, V qua các ma trận tuyến tính, tách đầu độc lập và ghép kết quả.
Cài đặt mạng FFN truyền thống và khối kích hoạt cổng SwiGLU dùng trong LLaMA.
Quên nhân tỷ lệ chia 1/sqrt(dk) khiến Softmax rơi vào vùng bão hòa gradient.
Lỗi shape tensor khi reshape và transpose các đầu (heads) trong Multi-Head Attention.
Trong mỗi mức độ, bài tập được xếp từ dễ nhất đến khó nhất — hãy đi theo số bước.
Nhập xuất, biến, rẽ nhánh và các bước suy luận đơn giản.
Trong Xử lý Ngôn ngữ Tự nhiên (NLP) và LLM, một câu hỏi sư phạm kinh điển là: Tầng Embedding thực chất là gì?
Trong bài báo kinh điển *Attention Is All You Need* (Vaswani et al., 2017), các tác giả đã nhân vector nhúng với √(dmodel) trước khi cộng với Positional Encoding:
Trong bài toán mô hình hóa ngôn ngữ tự hồi quy (Autoregressive Language Modeling) như GPT, mô hình được huấn luyện để dự đoán token tiếp theo tại mỗi bước thời gian:
Khi xử lý các tài liệu văn bản dài vượt quá cửa sổ ngữ cảnh tối đa của mô hình (ví dụ context length của GPT-2 là 1024), văn bản cần được cắt thành các đoạn nhỏ (chunks) bằng kỹ th…
Trong một mini-batch huấn luyện hoặc sinh văn bản, các câu có độ dài tự nhiên khác nhau. Để gom nhóm thành tensor ma trận (B, T) xử lý đồng thời trên GPU, các câu ngắn hơn phải đượ…
Vòng lặp, mảng một chiều, chuỗi và hàm ở mức cơ bản.
Khi tài liệu vượt quá giới hạn độ dài max_length, việc cắt ngắn (truncation) cần được thực hiện có chủ đích tùy theo đặc thù tác vụ:
Trong cơ chế Self-Attention tự hồi quy (Causal Self-Attention), token tại vị trí i chỉ được phép chú ý đến các token tại vị trí quá khứ và hiện tại j ≤ i, tuyệt đối không được nh…
Trong giai đoạn tiền huấn luyện (Pretraining) của các mô hình như LLaMA hay GPT-3, hàng tỷ token văn bản được nối liên tục với nhau qua token <eos> tạo thành một mảng 1D duy nhất.
Đầu ra của mô hình ngôn ngữ tự hồi quy là một tensor Logits 3 chiều có shape (B, T, V) trong đó B là batch size, T là độ dài chuỗi và V là kích thước từ điển. Nhãn mục tiêu targets…
Dùng một kỹ thuật quen thuộc: sắp xếp, tìm kiếm, đếm, ngăn xếp.
Trong kiến trúc Transformer, vì cơ chế Self-Attention không phân biệt được thứ tự trước sau của các từ trong câu (tính chất hoán vị đối xứng), mô hình cần tầng Positional Encoding…
SwiGLU(x) = ( SiLU(x Wgate) ⊙ (x Wup) ) Wdown
Softmax(Q KT + m · B)
i - W < j ≤ i
Phối hợp hai kỹ thuật trong cùng một lời giải.
SwiGLU(x) = (Swish(x Wgate) ⊗ x Wup) Wdown
1. Trừ giá trị trung bình μ (re-centering).
Xây dựng lớp TiedLanguageModel(torch.nn.Module):
Khi xây dựng DataLoader để nạp dữ liệu cho mô hình ngôn ngữ tự hồi quy, hàm gom nhóm collate_fn có nhiệm vụ chuyển đổi danh sách các mẫu văn bản độ dài tự do thành một batch hoàn c…
Thuật toán chuyên sâu: quy hoạch động, đồ thị, cây.
headi = Attention(Q WiQ, K WiK, V WiV)
Với vector 2D [x1, x2] ở vị trí thứ m và tần số góc θ:
Xây dựng hàm repeat_kv và lớp GroupedQueryAttention(torch.nn.Module):
Thay vì đợi toàn bộ hàng hoàn thành để tìm max và tổng exp, ta duy trì running maximum mi và running sum li:
H(x) = x Wg (Wg ∈ Rdmodel × E)
Cấu trúc dữ liệu nâng cao và nhiều bước chứng minh.
Nếu không có cơ chế điều tiết, bộ định tuyến MoE sẽ có xu hướng gửi 95\% số token cho 1 hoặc 2 chuyên gia quen thuộc vì chúng được cập nhật thường xuyên hơn. Các chuyên gia còn lại…
Standard attention phải tạo ma trận N × N tốn O(N2) bộ nhớ. Flash Attention tính toán theo chunk nhỏ:
Trong các mô hình Transformer hiện đại (Llama, GPT, Mistral), thay vì tạo 3 tầng tuyến tính riêng biệt cho Query, Key, Value, kiến trúc chuẩn gộp thành một ma trận chiếu duy nhất W…
Trong các mô hình sinh ngôn ngữ như GPT-2, việc chia sẻ cùng một ma trận trọng số W ∈ RV × D giữa tầng Input Embedding và Output Linear LM Head được gọi là Weigh…
Attention(Q, K, V) = softmax(Q KT√(dk) + M) V