Sparse Attention
Sparse attention cho phép mỗi token chú ý đến một tập con được chọn của các token khác, chẳng hạn cửa sổ cục bộ, token toàn cục hoặc các lựa chọn top-k, nhằm giảm chi phí xử lý chuỗi dài.
Attention thưa là một nhóm cơ chế attention, trong đó mỗi query chỉ tính điểm cho một tập con key được chọn thay vì mọi key trong chuỗi. Self-attention đầy đủ trên N token tính N² điểm cho mỗi head, vì vậy tăng gấp đôi độ dài tài liệu sẽ làm chi phí attention tăng gấp bốn; trong khi đó, một mẫu mà mỗi token chỉ attention đến k token khác có chi phí N·k. Mẫu này có thể được cố định từ trước, chẳng hạn cửa sổ cục bộ, hoặc được chọn dựa trên nội dung, chẳng hạn các key có điểm cao nhất cho mỗi query. Sparse Transformer năm 2019 của OpenAI dùng các mẫu có bước nhảy với chi phí O(N√N) để mô hình hóa chuỗi dài hàng chục nghìn bước; các model ngôn ngữ lớn (LLM) hiện nay dùng các lớp thưa để xử lý cửa sổ ngữ cảnh dài hơn 100.000 token.
Các mẫu thưa phổ biến#
Các mẫu cố định xác định trước những cặp cần tính điểm. Attention cửa sổ trượt cho phép mỗi token chỉ truy cập w token đứng trước: Mistral 7B dùng cửa sổ 4.096 token; các model gpt-oss có trọng số mở của OpenAI luân phiên giữa các lớp dày đặc và lớp cửa sổ 128 token — cũng là cách luân phiên giữa các lớp dày đặc và lớp dải cục bộ mà GPT-3 từng sử dụng. Mỗi lớp cửa sổ truyền thông tin tiến thêm w token, vì vậy một chồng lớp sâu vẫn kết nối được các token ở xa nhau. Mẫu có bước nhảy bổ sung mỗi token đứng trước cách nhau s vị trí, nhờ đó thông tin cũng có thể nhảy xa chỉ trong một lớp. Token toàn cục attention đến và được attention bởi mọi vị trí: Longformer gán chúng cho các token tác vụ như token phân loại, BigBird còn bổ sung kết nối ngẫu nhiên, còn attention sink giữ một vài token đầu tiên luôn hiển thị với mọi query để quá trình tạo tuần tự duy trì ổn định.
Các mẫu dựa trên nội dung chọn cặp từ dữ liệu. Native Sparse Attention của DeepSeek (NSA, 2025) kết hợp các bản tóm tắt nén của những khối key, lựa chọn các khối liên quan nhất và cửa sổ trượt; tất cả đều được huấn luyện end-to-end. DeepSeek Sparse Attention trong DeepSeek-V3.2 chạy một “bộ lập chỉ mục lightning” nhỏ, tính điểm cho mọi token đứng trước ở mỗi query, rồi chỉ tính attention đầy đủ trên 2.048 token có điểm cao nhất; nhờ vậy, chi phí attention chính của mỗi query luôn cố định dù ngữ cảnh dài thêm bao nhiêu. Các model dùng trong môi trường production thường kết hợp những quy tắc này:
Chuyển một mẫu thành mức tiết kiệm#
Mask áp dụng lên ma trận điểm dày đặc vẫn tính mọi điểm, vì vậy tăng tốc đến từ các kernel bỏ qua những tile trống của ma trận. Kernel Flash attention hỗ trợ trực tiếp cửa sổ trượt, còn FlexAttention của PyTorch biên dịch mọi hàm mask thành kernel GPU thưa theo khối. create_block_mask hiển thị các khối mà kernel như vậy bỏ qua với cửa sổ 1.024 token cộng thêm bốn token sink:
from torch.nn.attention.flex_attention import create_block_mask
seq_len, window, sinks = 8192, 1024, 4
def local_plus_sinks(b, h, q_idx, kv_idx):
"""Causal attention to the previous 1,024 tokens plus the first 4 tokens."""
causal = q_idx >= kv_idx
return causal & ((q_idx - kv_idx <= window) | (kv_idx < sinks))
# FlexAttention chia mask thành các khối 128 x 128 để kernel có thể bỏ qua các khối trống
block_mask = create_block_mask(local_plus_sinks, B=None, H=None, Q_LEN=seq_len, KV_LEN=seq_len, device="cpu")
print(block_mask)Kết quả in ra báo cáo sparsity=85.47%, tỷ lệ các khối 128 × 128 trong ma trận điểm 8.192 × 8.192 không chứa cặp nào được phép, đồng thời vẽ mẫu thành một dải chéo biểu thị cửa sổ và một cột bên trái biểu thị các token sink. Khi flex_attention chạy trong torch.compile, kernel sẽ bỏ qua hoàn toàn các khối đó.
Attention thưa và các thuật ngữ liên quan#
- Flash attention: Kernel tối ưu cho IO, tính attention chính xác trên mọi cặp bằng cách chia công việc thành các tile trong bộ nhớ on-chip tốc độ cao. Các tile cũng là đơn vị mà kernel thưa theo khối bỏ qua.
- Attention tuyến tính: Giữ lại mọi cặp nhưng thay softmax bằng ánh xạ đặc trưng, nhờ vậy mọi key và value trước đó được nén vào một trạng thái có kích thước cố định.
- Attention biến dạng: Cơ chế trong thị giác máy tính, trong đó mỗi query attention đến một vài điểm lấy mẫu tại các độ lệch đã học trên feature map thay vì theo một mẫu cố định.
- Hỗn hợp chuyên gia (MoE): Tính thưa ở cấp tham số; mỗi token chỉ kích hoạt một vài mạng chuyên gia, trong khi mẫu attention vẫn dày đặc.
Ứng dụng#
Model ngôn ngữ ngữ cảnh dài là ứng dụng chính: các lớp thưa giới hạn lượng tính toán, còn các lớp cửa sổ cũng giới hạn KV cache, cho phép model tóm tắt báo cáo dài hoặc tìm kiếm kho mã lớn trong một yêu cầu. BigBird áp dụng mẫu thưa của mình cho chuỗi DNA, trong đó đầu vào dài hàng nghìn cặp base — dài hơn nhiều so với câu thông thường — để dự đoán các vùng promoter. Trong thị giác máy tính, số lượng token tăng theo độ phân giải ảnh, vì vậy các model giới hạn attention trong những vùng cục bộ: Swin Transformer thực hiện attention trong các cửa sổ được dịch chuyển. YOLO12, detector lấy attention làm trọng tâm do các nhà nghiên cứu tại University at Buffalo và University of Chinese Academy of Sciences phát triển, chạy trong gói Ultralytics và dùng attention theo vùng: tầng backbone stride-16 chia feature map 40 × 40 của ảnh 640 pixel thành bốn dải ngang, mỗi dải gồm 400 token, rồi chỉ thực hiện attention trong từng dải; phương pháp này tính điểm cho một phần tư trong số 2,56 triệu cặp mà attention đầy đủ trên toàn bộ 1.600 token cần đến.










