E · Training Architecture
MLA · latent KV, decoupled RoPE và matrix absorption
Cơ chế Multi-head Latent Attention nén các vector Key và Value vào một vector tiềm ẩn nhỏ trước khi lưu cache, giúp giảm mạnh bộ nhớ KV cache mà vẫn giữ chất lượng.
1Định nghĩa
Multi-head Latent Attention (MLA, được giới thiệu trong họ DeepSeek-V2/V3) là thiết kế khối Attention nhằm cắt giảm triệt để dung lượng KV cache khi phục vụ chuỗi dài. Thay vì lưu trực tiếp các vector Key và Value của từng đầu như MHA hay GQA, MLA chiếu trạng thái ẩn của mỗi token xuống một vector tiềm ẩn nén (latent vector) có số chiều nhỏ hơn nhiều và chỉ lưu vector nén này vào bộ nhớ đệm.
Khi chạy suy luận, thay vì phải bung ngược vector nén ra đầy đủ Key và Value trong bộ nhớ, engine có thể gộp thẳng ma trận giải nén vào ma trận Query và ma trận đầu ra (kỹ thuật hấp thụ ma trận — matrix absorption). Riêng thành phần mã hóa vị trí RoPE phụ thuộc vào vị trí từng token nên không gộp chung được; vì vậy MLA tách một nhánh nhỏ chuyên mang RoPE đi riêng bên cạnh vector nội dung nén.
Ví dụ đời thường: MLA giống như việc bạn cất quần áo mùa đông vào túi hút chân không trước khi xếp vào tủ (nén Key/Value xuống vector tiềm ẩn nhỏ để tiết kiệm bộ nhớ KV cache), chỉ để riêng chiếc thẻ tên gắn bên ngoài túi (nhánh vị trí RoPE tách rời) để khi cần tìm đồ ở ngăn nào vẫn nhìn thấy ngay mà không phải mở tung mọi túi ra.
2Luồng
- Chiếu hidden thành latent
Tạo c và nhánh rotary key tại token mới.
- Ghi cache thực tế
Lưu latent + key vị trí theo layout của engine.
- Đọc và chiếu output
Tính scores và output bằng ma trận đã ghép hoặc kernel tương đương.
Mã Mermaid
flowchart TD
step1["Chiếu hidden thành latent"]
step2["Ghi cache thực tế"]
step3["Đọc và chiếu output"]
step1 --> step2
step2 --> step3 Luồng mô tả cơ chế hoặc quy trình kiểm tra. Các ví dụ số là giả định giáo dục; demo Atlas không chạy kiến trúc production này.
3Giải pháp
Cache lý tưởng cho MLA là L×T×(d_c+d_R)×b byte mỗi sequence, so với 2×L×T×H_KV×d_h×b của GQA đồng nhất. Bỏ qua padding, metadata, quantization scales và workspace trong cả hai công thức.
MLA nén chiều đặc trưng; DSA chọn vị trí và CSA nén trục token. Có thể kết hợp chúng, nhưng không suy giảm cache toàn hệ thống từ một công thức MLA đơn lẻ.
Kiểm tra implementation có materialize KV mở rộng tạm thời không, chi phí hấp thụ ma trận và tensor parallel layout; cache nhỏ chưa đủ chứng minh decode nhanh.
4Profiling
- Cache bytes/token
Đếm tensor persistent thực, rồi so công thức có cùng L,T,dtype và batch.
- Logits và latency
So logits khi chuyển thứ tự phép chiếu; đo cả prefill và decode với kernel đích.
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ụ
Ví dụ cache giả định
L=32, d_c=512, d_R=64, b=2: 36.864 byte/token. GQA với 8 KV heads, d_h=128 là 131.072 byte/token. Đây là phép tính lý tưởng, chưa đo một checkpoint.
Vị trí không mất đi
Hai token có cùng latent nội dung nhưng rotary key khác vẫn có scores khác. Vì vậy không được chỉ lưu c rồi bỏ nhánh vị trí của model.
6Thuật ngữ
- Matrix absorption
- Ghép hai phép chiếu tuyến tính để thay đổi thứ tự tính nhưng giữ hàm số.
- Decoupled RoPE
- Tách thành phần vị trí khỏi key nội dung để giữ phép ghép tuyến tính.
Glossary (8)
- Data type
- Kiểu dữ liệu của tensor, quyết định cách biểu diễn số.
- Tensor
- Mảng số nhiều chiều, như một vector, ma trận hoặc nhóm ma trận.
- Checkpoint
- Bản lưu trạng thái model; phạm vi states phụ thuộc mục đích serving hay resume.
- 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.
- Latency
- Thời gian chờ để nhận một kết quả hoặc một bước kết quả.
- Batch
- Nhóm công việc hoặc mẫu được xử lý trong một lượt tính.