Linear Attention
Linear attention thay softmax bằng ánh xạ đặc trưng để chi phí tăng tuyến tính theo độ dài và quá trình giải mã duy trì trạng thái có kích thước cố định. Nội dung bao gồm DeltaNet và các mô hình lai.
Linear attention là một họ cơ chế attention có chi phí tăng tuyến tính theo độ dài chuỗi, thay cho chi phí bậc hai của self-attention softmax tiêu chuẩn. Softmax attention chấm điểm mọi query với mọi key, vì vậy N token tạo ra ma trận điểm N × N cho mỗi head, còn transformer tạo văn bản duy trì một KV cache tăng theo từng token. Linear attention thay thế độ tương tự softmax bằng tích vô hướng của các feature map, φ(q)·φ(k), cho phép model nhóm lại các tích ma trận và tóm tắt mọi key cùng value trước đó trong một trạng thái có kích thước cố định. Bài báo năm 2020 của Katharopoulos và cộng sự, Transformers là RNN, đưa ra dạng thức phổ biến của phương pháp này; các biến thể có gating hiện được triển khai trong mô hình ngôn ngữ lớn (LLM) thực tế bên cạnh các layer attention tiêu chuẩn.
Cơ chế hoạt động của Linear Attention#
Softmax attention tính softmax(QKᵀ)V; vì exp(q·k) không thể phân tích thành phần của query và thành phần của key, nên phải chấm điểm mọi cặp query-key. Với feature map φ, chẳng hạn elu(x) + 1, đầu ra trở thành φ(Q)(φ(K)ᵀV), được chuẩn hóa bằng φ(Q) nhân với tổng các hàng φ(K). Phép nhân ma trận có tính kết hợp, nên có thể tính φ(K)ᵀV trước, tạo ra ma trận d × d, trong đó d là chiều của head, bất kể có bao nhiêu token. Thời gian giảm từ O(N²d) xuống O(Nd²), có lợi khi chuỗi dài hơn nhiều so với chiều của head.
Với model nhân quả, cùng phép biến đổi đại số này biến attention thành mạng neural hồi quy (RNN) có trạng thái dạng ma trận. Mỗi token mới cộng tích ngoài φ(k)vᵀ vào trạng thái, còn query của token đó đọc từ trạng thái, vì vậy sinh văn bản chỉ cần bộ nhớ và thời gian hằng số cho mỗi token. Khi huấn luyện, model dùng dạng song song hoặc các kernel theo chunk như trong thư viện flash-linear-attention, nên GPU vẫn xử lý toàn bộ chuỗi cùng lúc. Trong PyTorch, hai dạng cho cùng kết quả:
import torch
import torch.nn.functional as F
torch.manual_seed(0)
n, d = 2048, 64
q, k, v = torch.randn(3, n, d).unbind(0)
phi_q, phi_k = F.elu(q) + 1, F.elu(k) + 1 # positive feature map in place of softmax
# Parallel form: an n x n causal score matrix, as in softmax attention
scores = torch.tril(phi_q @ phi_k.T)
parallel = (scores @ v) / scores.sum(dim=-1, keepdim=True)
# Recurrent form: a fixed d x d state that each new token updates
state, norm, outputs = torch.zeros(d, d), torch.zeros(d), []
for t in range(n):
state += torch.outer(phi_k[t], v[t])
norm += phi_k[t]
outputs.append(phi_q[t] @ state / (phi_q[t] @ norm))
recurrent = torch.stack(outputs)
print("Same outputs:", torch.allclose(parallel, recurrent, atol=1e-4))
print(f"Recurrent state: {state.numel():,} numbers; KV cache after {n:,} tokens: {2 * n * d:,} numbers")Đoạn mã in ra Same outputs: True. Trạng thái 64 × 64 chứa 4,096 số bất kể chuỗi dài đến đâu, trong khi KV cache của một head sau 2,048 token chứa 262,144 số và tăng thêm 128 số với mỗi token mới.
DeltaNet, gating và model lai#
Trạng thái có kích thước cố định là bộ nhớ có mất mát. Linear attention thuần túy chỉ cộng thêm vào trạng thái, nên các liên kết cũ tích tụ và gây nhiễu; khả năng nhớ lại thông tin cụ thể từ cửa sổ ngữ cảnh dài kém hơn softmax attention. Hiện có hai giải pháp chính. Gating nhân trạng thái với hệ số suy giảm được học trước mỗi lần cập nhật, cho phép model quên; đây là cơ chế cũng có trong model không gian trạng thái (SSM) như Mamba-2, mà các tác giả đã chỉ ra là hai họ model có dạng đối ngẫu với nhau. Delta rule, xuất phát từ nghiên cứu liên kết linear transformer với bộ lập trình trọng số nhanh, đọc giá trị hiện được lưu cho một key và chỉ ghi phần chênh lệch giữa giá trị mới với dự đoán đã lưu. DeltaNet giúp huấn luyện delta rule song song trên toàn chuỗi vào năm 2024, Gated DeltaNet (ICLR 2025) bổ sung cổng suy giảm, còn Kimi Linear của Moonshot AI tinh chỉnh cổng này để hoạt động riêng trên từng channel.
Các model triển khai thực tế xen kẽ những layer này với attention đầy đủ để một vài layer softmax duy trì khả năng nhớ chính xác. Qwen3-Next và họ Qwen3.5 lặp lại một block gồm ba layer Gated DeltaNet, tiếp theo là một layer gated softmax attention; Kimi Linear dùng tỷ lệ kết hợp 3:1 tương tự giữa Kimi Delta Attention và multi-head latent attention:
Linear attention và các phương pháp liên quan#
- Self-attention: Dạng softmax chính xác chấm điểm mọi cặp token, có thời gian xử lý bậc hai và KV cache tăng theo độ dài chuỗi.
- Flash attention: Kernel GPU tính softmax attention chính xác theo các tile lưu trong bộ nhớ on-chip. Phương pháp này giảm lưu lượng bộ nhớ, nhưng số phép toán vẫn tăng bậc hai.
- Sparse attention: Giữ nguyên softmax nhưng chỉ chấm điểm các cặp được chọn, chẳng hạn một vùng cục bộ gồm các token gần nhất.
- Attention truy vấn nhóm (GQA): Chia sẻ key và value giữa các query head để thu nhỏ KV cache theo một hệ số cố định, đồng thời vẫn duy trì softmax attention đầy đủ.
Linear attention được sử dụng ở đâu#
Model ngôn ngữ có ngữ cảnh dài là ứng dụng lớn nhất, vì các layer tuyến tính trong model lai duy trì trạng thái kích thước cố định trong lúc giải mã, còn chỉ một vài layer softmax mang KV cache tăng dần. Thị giác là ứng dụng lớn thứ hai, do số token tăng theo độ phân giải ảnh. EfficientViT dùng linear attention dựa trên ReLU cho phân đoạn ngữ nghĩa độ phân giải cao, còn SANA của NVIDIA xây dựng một diffusion transformer tuyến tính để tạo ảnh lên đến 4096 × 4096 pixel. Trong phát hiện đối tượng, attention thường chỉ chạy ở những vị trí có feature map nhỏ nhất. YOLO26 giữ softmax attention tiêu chuẩn và chỉ chạy attention trong block C2PSA và một block C3k2 có attention, cả hai đều hoạt động trên feature map stride-32 kích thước 20 × 20 của ảnh 640 pixel; vì vậy mỗi layer attention xử lý 400 token và ma trận điểm đầy đủ gồm 160,000 phần tử cho mỗi head.










