LLM GPU Calculator ← Về công cụ tính

Cạm bẫy: chữ "Layers" trong công thức KV

Công thức KV = 2 × Layers × KV_Heads × Head_Dim × Seq × Batch × Precision chỉ đúng khi mọi layer đều là full attention. Model 2026 hầu hết không như vậy.

Bốn kiến trúc phá vỡ công thức

Kiến trúcCơ chếKV cache thật
Sliding windowphần lớn layer chỉ nhìn window token gần nhấthằng số khi seq > window
Linear attentionthay attention bằng recurrent state (DeltaNet)hằng số
Mamba-2 / SSMstate space modelhằng số
MLAnén KV thành latent vectortuyến tính nhưng nhỏ hơn nhiều lần

Điểm chung: phải áp công thức riêng cho số layer FULL ATTENTION, rồi cộng state hằng số của các layer còn lại.

Sai bao nhiêu lần?

Bảng dưới giữ nguyên kv_heads và head_dim thật, chỉ đổi từ số layer full attention sang tổng số layer — để cô lập đúng một lỗi.

ModelKiến trúcB/token thậtNếu dùng tổng layerPhóng đại
Gemma 4 31BSliding(1024) + global81.920983.04012×
gpt-oss-120bSliding(128) + full36.86473.7282×
Qwen3.5-35B-A3BLinear + full20.48081.9204×
Nemotron 3 Super 120BMamba-2 (8/88 layer)8.19290.11211×
Mistral Small 4 119BMLA (256+64)23.040589.82426×
Kimi K2.5MLA (512+64)70.2721.998.84828×
DeepSeek V3MLA (512+64)70.2723.997.69657×
Kimi K3MLA + KDA linear27.6484.571.136165×

Bằng chứng từ config.json

Ví dụ Qwen3.5-122B-A10B — layer_types cho thấy chỉ 1/4 số layer là full attention:

"num_hidden_layers": 48,
"head_dim": 256,                // không phải 128
"num_key_value_heads": 2,       // chỉ 2
"full_attention_interval": 4,   // cứ 4 layer mới có 1 full attention
"layer_types": ["linear_attention","linear_attention",
                "linear_attention","full_attention", ...]

→ 12 layer full + 36 layer linear. Chỉ 12 layer có KV tăng theo context.

Gemma 4 — hai nhóm thông số riêng

Config có cả hai nhóm trường, phục vụ hai loại layer khác nhau:

Modelnum_key_value_heads
(layer sliding)
num_global_key_value_heads
(layer full)
head_dimglobal_head_dim
Gemma-4-31B164256512
Gemma-4-26B-A4B82256512
Gemma-4-12B82256512

Dùng nhầm nhóm thông số của layer sliding cho layer full sẽ phóng đại 2 lần. Bỏ qua sliding_window: 1024 và dùng ctx cho 50 layer sliding sẽ phóng đại thêm 10 lần nữa.

Trang Model mới nhất liệt kê cột /FA — số layer full attention trên tổng số. Đó mới là con số dùng để tính KV. Công cụ tính hiển thị luôn mức phóng đại nếu ai đó dùng sai.