Differential Transformer
Differential Transformer trừ một bản đồ attention softmax khỏi một bản đồ khác để triệt tiêu nhiễu attention, cải thiện khả năng truy xuất ngữ cảnh dài và lượng tử hóa.
Differential Transformer, hay DIFF Transformer, là kiến trúc transformer có các head attention tính hai bản đồ attention softmax rồi lấy bản đồ này trừ bản đồ kia, triệt tiêu trọng số mà cả hai cùng phân bổ cho ngữ cảnh không liên quan. Tianzhu Ye, Li Dong, Furu Wei và cộng sự tại Microsoft Research và Đại học Thanh Hoa giới thiệu kiến trúc này vào tháng 10 năm 2024 trong bài Differential Transformer, một bài báo dạng trình bày miệng tại ICLR 2025. Thiết kế này lấy cảm hứng từ bộ khuếch đại vi sai và tai nghe khử nhiễu, vốn trừ hai tín hiệu để loại bỏ phần nhiễu chung. Trong mô hình hóa ngôn ngữ, DIFF Transformer cần khoảng 65% số tham số hoặc token huấn luyện của transformer tiêu chuẩn để đạt cùng mức loss: model 6,8 tỷ tham số đạt kết quả tương đương transformer 11 tỷ tham số.
Cách thức hoạt động của differential attention#
Self-attention tiêu chuẩn gán cho mỗi token một trọng số không âm, vì vậy luôn có một phần trọng số rơi vào các token không quan trọng; các tác giả gọi đây là nhiễu attention. Differential attention chia các phép chiếu query và key của mỗi head thành hai nửa, tính một bản đồ softmax từ mỗi cặp rồi kết hợp các giá trị theo công thức (map1 − λ × map2) × V. Cả hai bản đồ đều gán trọng số cho cùng những token không liên quan, nên phép trừ triệt tiêu phần đó, trong khi trọng số chỉ được map1 gán vẫn còn. Vì tổng mỗi bản đồ bằng 1, tổng mỗi hàng của kết quả bằng 1 − λ và từng trọng số riêng lẻ có thể âm:
import torch
torch.manual_seed(0)
n, d, lam = 6, 8, 0.8 # 6 tokens, head size 8, lambda near the paper's 0.8 initialization
q1, k1, q2, k2 = torch.randn(4, n, d)
v = torch.randn(n, 2 * d) # values are twice as wide as each query-key pair
# Two ordinary softmax attention maps from separate query and key projections
map1 = torch.softmax(q1 @ k1.T / d**0.5, dim=-1)
map2 = torch.softmax(q2 @ k2.T / d**0.5, dim=-1)
# Subtracting cancels weight that both maps place on the same tokens
diff = map1 - lam * map2
out = diff @ v
print(f"Each row sums to {diff.sum(dim=-1)[0]:.2f}; {(diff < 0).sum().item()} of {n * n} weights are negative")Nó in ra Each row sums to 0.20; 13 of 36 weights are negative, hai thuộc tính mà không bản đồ attention softmax nào có thể có. Trong model thực tế, λ được học thông qua bốn vector nhỏ và khởi tạo ở mức 0.8 − 0.6 × exp(−0.3 × (l − 1)) cho layer l, vì vậy các layer sâu hơn bắt đầu gần với 0.8 hơn. Đầu ra của mỗi head được chuẩn hóa riêng, điều mà bài báo gọi là GroupNorm, sau đó được nhân với (1 − λ tại thời điểm khởi tạo) để giữ cho gradient có cùng độ lớn như trong transformer tiêu chuẩn. Model sử dụng số head bằng một nửa, mỗi head có giá trị rộng gấp đôi, nên số lượng tham số khớp với mô hình cơ sở. Mỗi bản đồ đều là attention softmax thông thường, vì vậy các triển khai tái sử dụng kernel flash attention; thông lượng huấn luyện trên GPU H100 thấp hơn 6% đến 12% so với transformer cùng kích thước.
Lợi ích được báo cáo#
Trong thử nghiệm needle-in-a-haystack với 6 kim và 2 câu hỏi trong cửa sổ ngữ cảnh 4K token, DIFF Transformer đạt 0.85 so với 0.55 của transformer tiêu chuẩn; phân tích attention trong bài báo cho thấy nguyên nhân là khả năng tập trung: model phân bổ 0.27 đến 0.40 attention cho câu trả lời, so với 0.03 đến 0.09 ở transformer. Model cũng tạo ra ít ảo giác hơn trong tóm tắt văn bản và trả lời câu hỏi; trong học theo ngữ cảnh few-shot, model chính xác hơn và ít nhạy cảm hơn với thứ tự các ví dụ.
Các giá trị ngoại lệ của activation cũng giảm. Logit attention lớn nhất của model là 38.8, so với 318.0 ở transformer tiêu chuẩn; activation hidden state lớn nhất là 1,688, so với 3,609. Khi lượng tử hóa logit attention xuống 4 bit, model đạt độ chính xác tương đương transformer tiêu chuẩn ở 6 bit và cao hơn khoảng 25% so với transformer 4 bit.
Kết quả này có ý nghĩa đối với lượng tử hóa model, vì một vài activation cực trị quyết định phạm vi mà mọi giá trị khác phải dùng chung. Điều tương tự cũng áp dụng cho các model thị giác: khi Ultralytics YOLO26 được xuất bằng quantize=8, trình xuất hiệu chỉnh phạm vi activation trên các ảnh từ dataset data và khuyến nghị sử dụng ít nhất 300 ảnh; trong khi quantize="w8a16" giữ trọng số ở 8 bit và activation ở 16 bit cho các bản xuất LiteRT, Core ML và QNN.
DIFF Transformer và các thuật ngữ liên quan#
- Diffusion Transformer (DiT): Transformer thay thế U-Net trong các model diffusion dùng để tạo ảnh và video.
- Quyền riêng tư vi sai: Bảo đảm quyền riêng tư về mặt toán học cho dữ liệu huấn luyện.
- Attention thưa: Chỉ tính điểm cho một tập con cố định gồm các cặp token và đặt trước trọng số của mọi cặp còn lại bằng 0.
- Biến áp vi sai tuyến tính: Cảm biến điện đo độ dịch chuyển tuyến tính.










