Lượng tử hóa mô hình Qwen3.5: vì sao bản cộng đồng lại giảm hiệu năng
(x.com/Brooooook_lyn)Nguyên nhân kỹ thuật khiến các mô hình Qwen3.5 định dạng MLX do cộng đồng phát hành xuất hiện lỗi gọi công cụ, đầu ra vô nghĩa và hiện tượng ảo giác (hallucination) trong kỹ thuật 'lượng tử hóa (quantization)' — công nghệ nén mô hình AI để nhỏ hơn và chạy nhanh hơn — đã được làm rõ. Đây là nội dung Unsloth, một công ty cung cấp công cụ fine-tuning AI, đưa ra nguyên nhân và giải pháp thông qua hơn 150 thí nghiệm benchmark.
Tóm tắt chính
- Lượng tử hóa là kỹ thuật nén dữ liệu số của mô hình xuống độ chính xác thấp hơn (số bit ít hơn) để giảm kích thước tệp và lượng tính toán
- Phần lớn công cụ lượng tử hóa của cộng đồng dùng 'lượng tử hóa đồng đều', tức áp dụng cùng một số bit cho mọi layer
- Qwen3.5 có cấu trúc lai, trong đó các layer self-attention thông thường và layer linear attention tên là GatedDeltaNet được bố trí xen kẽ
- Trọng tâm của vấn đề là layer
linear_attn.out_proj; khi nén xuống 4 bit, độ nhạy với mất mát thông tin của layer này cao gấp khoảng 120 lần so với layer đầu ra (lm_head) - Lượng tử hóa đồng đều có vấn đề mang tính cấu trúc: lãng phí độ chính xác ở những phần không quan trọng, trong khi lại phá hỏng các layer nhạy cảm thực sự
Giải pháp của Unsloth
- Áp dụng phương pháp 'lượng tử hóa bit hỗn hợp', phân bổ số bit khác nhau tùy theo độ nhạy thực tế của từng layer
- Các layer MLP ít nhạy cảm dùng 3 bit, các layer attention Q/K/V dùng 5 bit kèm AWQ (kỹ thuật hiệu chỉnh trọng số), còn layer đầu ra nhạy cảm nhất giữ nguyên toàn bộ độ chính xác bf16
- Thay vì Wikipedia, dữ liệu calibration (hiệu chỉnh) sử dụng các ví dụ hội thoại, lập trình và gọi công cụ để có thể tính toán mức độ quan trọng phù hợp với môi trường sử dụng thực tế
Ưu và nhược điểm
- Ưu điểm: chất lượng gọi công cụ, đầu ra có cấu trúc và sinh mã được cải thiện đáng kể so với các bản cộng đồng trước đó. Trên MLX, mô hình đạt hiệu năng tương đương phiên bản GGUF cùng loại
- Nhược điểm: do phải giữ một số layer nhạy cảm ở bf16, dung lượng đĩa sẽ lớn hơn so với mô hình thuần low-bit
Điểm khác biệt
- Trong khi các công cụ cộng đồng hiện có nén hàng loạt mà không xét đến cấu trúc, Unsloth đã suy ra số bit tối ưu cho từng layer một cách khoa học thông qua hơn 150 thí nghiệm KLD (chỉ số đo mất mát thông tin) và so sánh 121 cấu hình
- Một điểm đáng chú ý khác là họ cũng chứng minh bằng thực nghiệm rằng chất lượng dữ liệu hiệu chỉnh quyết định chất lượng nén
Hàm ý
- Điều này một lần nữa cho thấy nén mô hình AI không chỉ là bài toán giảm số bit, mà còn đòi hỏi công nghệ hiểu được cấu trúc bên trong của mô hình
- Nó cũng để lại một bài học thực tế: khi dùng các mô hình rút gọn do cộng đồng phát hành trong công việc, cần обязательно kiểm tra phương pháp lượng tử hóa và dữ liệu hiệu chỉnh mà bên phát hành đã sử dụng
4 bình luận
Thực ra, với những layer không quá quan trọng thì có thể mạnh dạn nén lại mà tổn thất cũng không xảy ra nhiều. Trong trường hợp một vài layer, ngay cả khi lượng tử hóa xuống 2bit cũng không có suy giảm đáng замет nào.
Nhưng với các model cộng đồng thì vấn đề phát sinh vì tất cả các layer đều bị lượng tử hóa đồng loạt.
Đó là vì các chiều và layer của mô hình không được "nướng" một cách đồng đều. Vẫn luôn như vậy mà.
Wow......!
Có vẻ như Daniel Han, nhà sáng lập Unsloth, đúng là một thiên tài thực thụ. Mỗi khi có mô hình open-weight mới ra mắt, anh ấy đều phân tích và chia sẻ từ cấu trúc mô hình đến lỗi tokenization, lỗi quantization và cả lỗi template, thật sự rất đáng khâm phục.