Nghiên cứu
Quantization-Aware Healing: Kỹ thuật nén mô hình 4-bit vượt trội hơn cả bản gốc full-precision
(giờ Việt Nam)
Tóm tắt AI
Phương pháp mới giúp tối ưu hóa mô hình AI bằng cách nén xuống 4-bit mà vẫn giữ nguyên hoặc cải thiện hiệu suất so với mô hình gốc, giải quyết bài toán đánh đổi giữa tốc độ và độ chính xác.
Bản dịch AI

Việc làm cho một mô hình ngôn ngữ lớn (LLM) trở nên nhỏ gọn hơn hầu như luôn đi kèm với một cái giá phải trả. Công thức tiêu chuẩn hiện nay để triển khai hiệu quả là trước tiên nén kiến trúc, cắt giảm số lượng tham số bằng cách loại bỏ các lớp, đầu (heads) hoặc nơ-ron, sau đó lượng tử hóa các trọng số còn lại xuống 4-bit để giảm thiểu bộ nhớ và khối lượng tính toán. Cả hai bước này đều tiết kiệm đáng kể tài nguyên, nhưng khi kết hợp lại, chúng làm suy giảm một cách hệ thống các khả năng mà người dùng thực sự quan tâm: lập luận, giải quyết vấn đề toán học và tạo mã nguồn. Chính vì lý do này, các quy trình triển khai chuyên nghiệp thường bổ sung một bước khôi phục, thường được gọi là "healing" (chữa lành), trước khi đưa mô hình vào sản xuất. Các bản phát hành mã nguồn mở gần đây như gpt-oss, dòng Nemotron của NVIDIA và Hypernova 60B của chúng tôi đều dựa trên một phiên bản nào đó của phương pháp nén-rồi-chữa lành này.
Bài báo mới nhất của chúng tôi, "Quantization-Aware Healing: A Practical Recipe for Recovering Compressed, 4-Bit LLMs" (Chữa lành nhận thức lượng tử hóa: Công thức thực tiễn để khôi phục các LLM 4-bit đã nén), đặt ra một câu hỏi mà lĩnh vực này hầu như vẫn bỏ ngỏ: một khi mô hình đã trải qua quá trình nén cấu trúc, chứ không chỉ là lượng tử hóa, thì bước khôi phục đó thực sự hiệu quả đến mức nào và cách thực hiện đúng đắn là gì? Chúng tôi giới thiệu phương pháp Quantization-Aware Healing (QAH), và khi áp dụng cho mô hình GPT-OSS 120B được nén xuống 60B tham số và lượng tử hóa sang MXFP4, nó tạo ra một mô hình vượt trội hơn cả phiên bản độ chính xác đầy đủ (bfloat16) của chính nó trên 7 trong số 9 tiêu chuẩn đánh giá. Mô hình 4-bit cuối cùng nhỏ hơn, chi phí vận hành thấp hơn và chính xác hơn so với checkpoint mà nó được lượng tử hóa từ đó. Điều này đảo ngược mối quan hệ thông thường giữa một mô hình 4-bit và mô hình 16-bit gốc.
Tại sao các phương pháp chữa lành thông thường lại thất bại ở đây
Hầu hết các quy trình tối ưu hóa hiệu suất đều tuân theo ba bước giống nhau: nén kiến trúc, lượng tử hóa các trọng số đã nén, sau đó chữa lành những hư hại. Sự khác biệt giữa các phương pháp nằm hoàn toàn ở bước cuối cùng đó.
Công thức chữa lành phổ biến nhất là huấn luyện nhận thức lượng tử hóa (Quantization-Aware Training - QAT). Phương pháp này chèn các toán tử lượng tử hóa giả vào quá trình truyền xuôi (forward pass) và tiếp tục tinh chỉnh mô hình dựa trên hàm mất mát tác vụ, để các trọng số học cách thích nghi với biểu diễn độ chính xác thấp. Trong thực tế, điều này có nghĩa là phải chạy lại một quy trình hậu huấn luyện đa giai đoạn vốn đã tốn kém, bao gồm tinh chỉnh có giám sát (SFT), RLHF, tinh chỉnh tác nhân (agentic tuning), thông qua một quá trình truyền xuôi nhiều nhiễu và độ chính xác thấp hơn. Nó rất tốn kém, và như kết quả của chúng tôi cho thấy, nó cũng có thể trở nên không ổn định nếu quá trình huấn luyện kéo dài quá mức cần thiết.
Một phương pháp thay thế là chưng cất nhận thức lượng tử hóa (Quantization-Aware Distillation - QAD), giúp tránh việc phải chạy lại toàn bộ lịch sử đó. Thay vì sử dụng hàm mất mát tác vụ, nó chưng cất trực tiếp từ một giáo viên (teacher) có độ chính xác đầy đủ đã được đóng băng sang học viên (student) đã lượng tử hóa thông qua hàm mất mát KL-divergence trên các output logits. Cách này hoạt động hiệu quả khi thay đổi duy nhất là lượng tử hóa, vì một phiên bản độ chính xác đầy đủ thực sự của cùng một mô hình tồn tại để đóng vai trò giáo viên. Nhưng một khi mô hình đã trải qua nén cấu trúc (ít lớp, đầu hoặc nơ-ron hơn) chứ không chỉ là giảm số bit, giả định đó sẽ bị phá vỡ. Không có phiên bản độ chính xác đầy đủ nào được huấn luyện độc lập cho kiến trúc nhỏ hơn đó. Ứng viên giáo viên duy nhất là checkpoint bfloat16 đã khôi phục, bản thân nó cũng chỉ là một bản xấp xỉ được chưng cất từ mô hình gốc. Việc chưng cất từ đó sẽ neo học viên đã lượng tử hóa vào một mục tiêu bị suy giảm và giới hạn độ chính xác của nó ở mức trần của chính checkpoint đã khôi phục đó.
Vì vậy, câu hỏi về cách chữa lành một mô hình vừa bị nén cấu trúc vừa bị lượng tử hóa, cho đến nay, vẫn là một câu hỏi thực sự chưa có lời giải.
Phương pháp tiếp cận của chúng tôi
QAH loại bỏ mức trần đó bằng một thay đổi: nó chưng cất trực tiếp từ mô hình gốc, trước khi nén, thay vì từ mô hình đã khôi phục. Giáo viên và học viên thậm chí không cần chia sẻ cùng một kiến trúc. Giáo viên có kích thước đầy đủ và độ chính xác đầy đủ, trong khi học viên có kích thước bằng một nửa và chạy ở định dạng MXFP4. Vì phân phối đầu ra của giáo viên không phụ thuộc vào kiến trúc, nên sự không tương thích về kích thước hay hình dạng không ngăn cản quá trình chuyển giao. Học viên không bao giờ nhìn thấy các nhãn cứng (hard labels), mà chỉ thấy phân phối đầu ra của giáo viên, được khớp thông qua KL divergence trên các logits.
Điều này định hình lại vai trò của giai đoạn lượng tử hóa. Với QAH, nó không còn là một bước hậu xử lý gây mất mát thông tin sau khi quá trình chữa lành kết thúc. Nó là một lượt chưng cất thứ hai, toàn diện so với giáo viên gốc, một sự giám sát mà checkpoint bfloat16 chưa bao giờ nhận được. Học viên 4-bit không phải đang bù đắp cho thông tin bị mất do lượng tử hóa; nó đang tiếp nhận thông tin mà giai đoạn khôi phục trước đó không có đủ thời gian hoặc dữ liệu để chuyển giao.
Ngoài ra còn có một lợi ích về tính ổn định xuất phát từ chính hàm mất mát. Vì chưng cất KL gắn học viên với một phân phối giáo viên cố định, một khi học viên bắt kịp, sẽ không còn áp lực nào khiến nó bị lệch (drift). Ngược lại, hàm mất mát tác vụ cross-entropy liên tục thúc đẩy học viên hướng tới các nhãn cứng vô thời hạn. Sự khác biệt đó hóa ra lại quan trọng đối với cả độ chính xác lẫn tính ổn định của quá trình huấn luyện, như bảng so sánh dưới đây cho thấy.
Để QAH hoạt động hiệu quả với ngữ cảnh dài, nơi kho dữ liệu chữa lành bao gồm các tài liệu lên tới 32k token, chúng tôi tái sử dụng hàm mất mát KL-divergence theo khối (chunked) tiết kiệm bộ nhớ từ bài báo đồng hành của chúng tôi về chưng cất hiệu quả. Hàm mất mát đó tính toán KL trên từng lát cắt của chuỗi tại một thời điểm và không bao giờ tạo ra toàn bộ lưới từ vựng-theo-chuỗi, điều này giúp việc chữa lành với 32k token nằm gọn trong ngân sách bộ nhớ GPU cố định. Chúng tôi đã đề cập đến cơ chế của hàm mất mát đó trong một bài viết trước.

Tổng quan về QAH. Sau khi nén cấu trúc và lượng tử hóa, các khả năng của mô hình giảm mạnh. QAH chưng cất từ mô hình gốc, một giáo viên đã đóng băng có các logits được tính toán trước ngoại tuyến, thay vì từ checkpoint đã khôi phục. Nguồn: Hình 1 trong bài báo.
Kết quả
Chúng tôi đã áp dụng QAH cho mô hình GPT-OSS 120B, nén xuống 60B tham số và khôi phục ở định dạng bfloat16, sau đó lượng tử hóa lại sang MXFP4 dưới QAH. Sự so sánh tự nhiên nhất là đối với checkpoint bfloat16 của chính mô hình 60B đó, phiên bản độ chính xác đầy đủ tốt nhất hiện có của kiến trúc này. Mô hình QAH chiến thắng trên 7 trong số 9 tiêu chuẩn đánh giá.
Hai tiêu chuẩn mà QAH xếp sau là MMLU-Pro và SciCode, với khoảng cách thua kém chưa đến 1,5 điểm. Ở tất cả các tiêu chuẩn còn lại, mô hình 4-bit đều vượt trội hơn nguồn 16-bit của chính nó, và những mức tăng lớn nhất rơi đúng vào những khả năng mà quá trình nén thường gây tổn hại nhiều nhất: lập luận ngữ cảnh dài (+7,4 trên AA-LCR) và toán học (+5,6 trên AIME 2025).
Sự so sánh với giáo viên 120B gốc cũng mang tính thuyết phục không kém. Mặc dù chỉ chạy với một nửa số tham số và khoảng một phần tư bộ nhớ trọng số của giáo viên, mô hình QAH vẫn vượt qua giáo viên kích thước đầy đủ trên LiveCodeBench (66,5 so với 66,0) và chỉ kém 1,6 điểm trên GPQA Diamond (67,4 so với 69,0). Khoảng cách lớn nhất còn lại so với giáo viên nằm ở AA-LCR, một tiêu chuẩn ngữ cảnh dài cực hạn nơi dung lượng bị mất do nén vốn dĩ là khó khôi phục nhất.

Mô hình QAH 4-bit ngang bằng hoặc vượt trội hơn nguồn bfloat16 của nó trên 7 trong số 9 tiêu chuẩn, và đánh bại giáo viên kích thước đầy đủ trên LiveCodeBench. Nguồn: Hình 2 trong bài báo.
QAH so với QAT, đối đầu trực tiếp
Để tách biệt ảnh hưởng của hàm mất mát khỏi các yếu tố khác, chúng tôi cũng so sánh trực tiếp QAH với QAT trong các điều kiện tương đương, lượng tử hóa mô hình GPT-OSS 9B sang MXFP4 và theo dõi hiệu suất trung bình trên MMLU-Pro, LiveCodeBench và GPQA Diamond khi quá trình huấn luyện diễn ra.
Cả hai phương pháp đều đạt đỉnh tương đương nhau, 54,9 cho QAH so với 54,6 cho QAT, vì vậy về độ chính xác tốt nhất, chúng thực sự ngang ngửa. Sự khác biệt nằm ở cách chúng đạt được điều đó và những gì xảy ra sau đó. QAH đạt đỉnh trong khoảng 100 bước, nhanh hơn khoảng 7 lần so với 700 bước của QAT, và sau đó duy trì trong khoảng hai điểm so với đỉnh đó trong suốt phần còn lại của quá trình huấn luyện. QAT sụt giảm mạnh ngay sau khi qua đỉnh, mất gần 19 điểm ở bước 1.200.
Hệ quả thực tế là sự khác biệt về rủi ro triển khai. Một checkpoint QAT cần phải dừng sớm (early stopping) cẩn thận dựa trên tín hiệu từ tập kiểm tra để tránh việc đưa ra thị trường một mô hình đã bắt đầu suy giảm, trong khi một checkpoint QAH được huấn luyện đầy đủ có thể được phục vụ an toàn vì nó đơn giản là không bị lệch. Điều này nhất quán với cơ chế: chưng cất KL với một giáo viên cố định không tạo động lực cho học viên thay đổi một khi nó đã khớp với giáo viên, trong khi mục tiêu cross-entropy liên tục thúc đẩy trên các nhãn cứng và cuối cùng làm xói mòn các khả năng mà mô hình được thừa hưởng từ bản gốc.

QAH đạt đỉnh tại 54,9 trong khoảng 100 bước và duy trì; QAT chỉ đạt 54,6 vào khoảng bước 700, sau đó mất gần 19 điểm vào bước 1.200. Nguồn: Hình 3 trong bài báo.
Những thay đổi trong thực tế
Câu chuyện về độ chính xác đi kèm với câu chuyện về hiệu suất vốn là động lực cho việc nén ngay từ đầu. Ở độ chính xác 4-bit, mô hình QAH sử dụng bộ nhớ trọng số ít hơn khoảng 4 lần so với học viên bfloat16, và với một nửa số tham số của giáo viên 120B, nó giảm khoảng một nửa khối lượng tính toán trên mỗi token, điều này cho phép nó chạy trên phần cứng nhỏ hơn đáng kể. Đối với các dòng mô hình được phát hành ở định dạng bfloat16 thay vì 4-bit, việc giảm kết hợp cả tham số và độ chính xác sẽ giúp giảm gần 8 lần khối lượng tính toán trên mỗi token.
Bài học rút ra là một mô hình 4-bit đã nén không nhất thiết phải là phiên bản có độ chính xác thấp hơn so với đối tác độ chính xác đầy đủ của nó. Với công thức chữa lành này, nó có thể vừa nhỏ hơn, chi phí phục vụ rẻ hơn, vừa chính xác hơn cùng một lúc, và nó đạt đến điểm đó chỉ với một phần nhỏ thời gian huấn luyện mà công thức QAT yêu cầu. Lượng tử hóa không còn là một loại "thuế" bạn phải trả cho hiệu suất mà trở thành một cơ hội bổ sung để dạy cho mô hình.
Công trình này là một phần trong nghiên cứu đang diễn ra của Multiverse Computing nhằm làm cho các mô hình lớn trở nên nhỏ hơn và rẻ hơn để vận hành mà không làm mất đi những khả năng khiến chúng trở nên hữu ích. Nó nằm cùng với công trình đồng hành của chúng tôi về chưng cất hiệu quả, vốn cung cấp cơ chế huấn luyện ngữ cảnh dài mà QAH phụ thuộc vào.
Bạn muốn biết chi tiết kỹ thuật đầy đủ, bao gồm quy trình chữa lành, cách triển khai KL theo khối cho việc chữa lành ngữ cảnh dài và các kết quả về huấn luyện phân tán? Hãy đọc toàn bộ bài báo, hoặc liên hệ với nhóm của chúng tôi để thảo luận về việc áp dụng nén và chữa lành cho các mô hình của riêng bạn.
Bài viết được AI dịch và tổng hợp tự động từ Hugging Face Blog. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.