Liquid AI dùng chưng cất đưa độ chính xác Q4_0 trở lại 97%

Liquid AI vừa đăng trên Hugging Face một loạt checkpoint mới của dòng LFM2.5, định dạng GGUF Q4_0, được huấn luyện bằng phương pháp gọi là QAD (quantization-aware distillation, chưng cất có nhận thức về lượng tử hóa). Bốn kích thước (230M, 350M, 1.2B-Instruct, 2.6B) lần lượt khôi phục được 97,1%, 96,5%, 97,4% và 96,6% điểm số so với baseline BF16 tương ứng của chúng trong các bài đánh giá.

Với người không dùng suy luận cục bộ, dòng thông tin này chẳng có gì ấn tượng. Muốn hiểu được ý nghĩa của nó, trước tiên phải biết vị trí của Q4_0 trong hệ sinh thái llama.cpp.

Một định dạng bị cộng đồng bỏ rơi

Q4_0 là một trong những phương án lượng tử hóa 4-bit đời đầu, quy tắc đơn giản thẳng thắn: cứ 32 trọng số một nhóm, dùng chung một hệ số tỷ lệ, phần còn lại nén thẳng thành số nguyên 4-bit. Sau đó cộng đồng phát triển dòng K-quant (Q4_K_M, Q5_K_M...), phân bổ độ rộng bit khác nhau theo mức độ quan trọng của từng tensor, cho độ chính xác tốt hơn rõ rệt ở cùng dung lượng, khiến Q4_0 gần như bị rút lui, chỉ còn tồn tại trên một số thiết bị cũ và runtime cũ.

Nó vẫn giữ một lợi thế không ai lấy đi được: cấu trúc gọn gàng, ánh xạ trực tiếp vào lệnh tích vô hướng int8 của CPU Arm. Việc chia khối và tra bảng của K-quant trên CPU điện thoại phải qua thêm vài bước vòng vo, còn Q4_0 thì không. Số liệu tốc độ mà Liquid AI công bố lần này nhắm thẳng vào điểm đó — cùng một loạt mô hình, checkpoint Q4_0 nhanh hơn Q5_K_M từ 4% đến 33%, nhanh hơn Q4_K_M từ 3% đến 14%.

Vậy nên điều cản trở Q4_0 bấy lâu nay luôn là độ chính xác. Và QAD nhắm thẳng vào đó.

Đưa lượng tử hóa vào trong quá trình huấn luyện

Cách làm thông thường là PTQ (post-training quantization, lượng tử hóa sau huấn luyện): huấn luyện xong mới nén, nén xong xem giảm bao nhiêu, giảm quá nhiều thì đổi định dạng làm lại. Hướng đi của QAD là để mô hình biết ngay từ giai đoạn huấn luyện rằng sau này mình sẽ bị nén thành dạng gì: mô hình giáo viên độ chính xác cao chưng cất tri thức xuống mô hình học trò đã lượng tử hóa, ràng buộc lượng tử hóa tham gia vào quá trình huấn luyện, phân bố trọng số được kéo dần về lưới 4-bit ngay từ đầu. Theo Liquid AI trên blog chính thức, "QAD substantially improves the Q4_0 checkpoint" (QAD cải thiện đáng kể checkpoint Q4_0).

Đây không phải khái niệm mới, huấn luyện có nhận thức về lượng tử hóa đã được dùng nhiều năm trên các mô hình thị giác. Cái khó khi chuyển sang mô hình ngôn ngữ nằm ở chi phí: mỗi định dạng mục tiêu đều phải chạy riêng một vòng huấn luyện. Việc hãng sẵn sàng bỏ ra khoản chi phí này cho thấy họ đã tính toán kỹ. Lượt tải về và lượt gọi của mô hình trên thiết bị đầu cuối xứng đáng để huấn luyện riêng cho một định dạng.

Kiểm chứng trên bốn loại máy

Bài kiểm tra bao phủ hai nhóm phần cứng: MacBook Pro và NucBox EVO-X2 chạy suy luận GPU, Samsung Galaxy S26 Ultra và Raspberry Pi 5 chạy suy luận CPU Arm. Sự xuất hiện của Raspberry Pi 5 trong danh sách khá đáng chú ý, nó đại diện cho nhóm thiết bị không có GPU, bộ nhớ cũng eo hẹp — nơi lợi thế của Q4_0 lớn nhất.

Tính nhẩm dung lượng: mô hình 2.6B tham số lưu ở 4-bit, trọng số nặng khoảng hơn 1,4GB, cộng thêm KV cache và chi phí runtime, một chiếc điện thoại 8GB RAM vẫn cài vừa mà còn dư chỗ làm việc khác. Bản 230M thì chỉ tầm vài trăm MB, hoàn toàn có thể nhét vào một ứng dụng để dùng như một tính năng cục bộ.

Lứa checkpoint này đang đặt cược vào điều gì

Hướng đánh đổi lần này khá mới. Hai năm qua, cách làm chủ đạo của suy luận trên thiết bị là thu nhỏ mô hình: chưng cất ra số tham số ít hơn, hoặc đổi sang định dạng lượng tử hóa thông minh hơn. Lần này Liquid AI chọn con đường thứ ba, không đổi định dạng, không đổi số tham số, dồn hết áp lực tối ưu sang phía huấn luyện.

Cái giá phải trả là phương pháp này chỉ có tác dụng với mô hình của chính họ. Cộng đồng không thể dùng cách này để cứu các trọng số Q4_0 mà người khác phát hành, vì nó cần đến toàn bộ quy trình huấn luyện gốc. Đây là thứ chỉ nhà sản xuất mô hình mới cung cấp được, cũng là một trong số ít điểm có thể tạo khoảng cách trên đường đua mô hình nhỏ chạy trên thiết bị — cùng là 2.6B, cùng chạy trên llama.cpp, ai có bản 4-bit giảm ít điểm hơn, người đó thắng một vòng.

Với nhà phát triển, ngưỡng gia nhập không đổi: GGUF Q4_0 là định dạng phổ biến nhất, llama.cpp và bất kỳ runtime nào tương thích Q4_0 đều nạp trực tiếp, không cần sửa code, không cần thêm toán tử mới. Đây cũng là lý do chọn nó thay vì một định dạng tùy biến — bản thân khả năng tương thích chính là năng lực phân phối.

Nguồn tham khảo: blog chính thức của Liquid AI, CocoLoop, trang mô hình trên Hugging Face; tỷ lệ khôi phục độ chính xác của bốn kích thước và hai khoảng tốc độ được đối chiếu theo số liệu chính thức công bố.