OpenArchLabOpen Architecture — From Models to Systems

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.

LESSON ID arch-mla GROUP Bản đồ nền tảng LLM
Mục lục bài học

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

Sơ đồ luồng (3 bước)
  1. Chiếu hidden thành latent

    Tạo c và nhánh rotary key tại token mới.

  2. Ghi cache thực tế

    Lưu latent + key vị trí theo layout của engine.

  3. Đọ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.

7Bài liên quan

8Nguồn