Vì sao LLM cục bộ của bạn có vẻ 'ngu' hơn thực tế: Backend Attention âm thầm thay đổi đầu ra
Một thí nghiệm chuyên sâu cho thấy việc hoán đổi backend attention trong vLLM có thể làm thay đổi lựa chọn token top-1 trên các tác vụ agentic thực tế, ngay cả khi trọng số và phần cứng giống hệt nhau. Thủ phạm: toán học triển khai cụ thể, không phải mô hình.

Mọi kỹ sư từng kéo một GGUF lượng tử hóa vào Ollama và cảm thấy mô hình hoạt động kém đều tự hỏi: mô hình tệ, hay do thiết lập của tôi? Một bài đăng kỹ thuật mới của thr3e trên diễn đàn Level1Techs đi sâu vào vế sau, cho thấy ngay cả với trọng số và phần cứng giống hệt nhau, ngăn xếp phần mềm có thể thay đổi token mà mô hình xuất ra.
Phát hiện cốt lõi: hoán đổi backend attention trong vLLM—giữa FlashAttention 2, Flash Inference và Triton Attention—khiến mô hình bất đồng về token tiếp theo (greedy) ở các phần sau của một prompt dài. Thử nghiệm sử dụng checkpoint BF16 chính thức của Qwen3.6-27B trên GPU RTX PRO 6000 Blackwell, với ngữ cảnh 100k token được thu thập từ một luồng công việc agentic thực tế. Chỉ có backend attention thay đổi giữa các lần chạy; mọi thứ khác giữ nguyên.
Trong vài nghìn token đầu tiên, tất cả backend đều đồng thuận. Nhưng khi prompt tiến triển, các backend bắt đầu phân kỳ. Bài đăng báo cáo rằng trong các cửa sổ 8k token sau đó, một tỷ lệ phần trăm đo được các vị trí được lấy mẫu có sự đảo ngược top-1—nghĩa là backend sẽ chọn một token khác với baseline. Logits giống hệt nhau từng bit qua các lần chạy lặp lại với cùng một backend, cô lập sự phân kỳ vào phép toán ma trận trong prefill.
Bài đăng cũng cảnh báo về các tuyên bố phân kỳ KL trên các thẻ mô hình lượng tử hóa. Một con số KLD thấp là vô nghĩa trừ khi tác giả tiết lộ checkpoint tham chiếu, môi trường chạy, văn bản đánh giá, độ dài ngữ cảnh và cách các phép đo được tổng hợp. Phương pháp luận quan trọng như con số.
Đối với người dùng LLM cục bộ, bài học thực tế: hãy benchmark khối lượng công việc thực tế của bạn, không chỉ ba prompt zero-shot. Sử dụng cài đặt sampler được chỉ định trên thẻ mô hình—đặt nhiệt độ quá thấp có thể gây lặp vòng. Và hiểu rằng chi tiết triển khai của engine suy luận là một phần của phương trình.
Logits qua các lần chạy tại mọi trạng thái ẩn giống hệt nhau từng bit. Điều này có nghĩa sự phân kỳ cụ thể này đến hoàn toàn từ các phép toán nhân và cộng ma trận xảy ra trong prefill bên trong trt/fa2/fi.
| Backend | Loại | Phân kỳ so với baseline |
|---|---|---|
| FlashAttention 2 | Full attention | Đảo ngược top-1 trong các cửa sổ sau |
| Flash Inference | Full attention | Đảo ngược top-1 trong các cửa sổ sau |
| Triton Attention | Full attention | Baseline (được chọn cho các thử nghiệm lượng tử hóa) |
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.