Trong bài viết này
Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.
Trọng số 0,37 có thể được lưu bằng một mã số nguyên rồi khôi phục gần đúng thành 0,40. Sai lệch 0,03 nhìn nhỏ, nhưng hàng tỷ phép tính có thể truyền và khuếch đại ảnh hưởng khác nhau. Lượng tử hóa là bài toán chọn biểu diễn và quản lý sai số, không chỉ đổi tên kiểu dữ liệu.
Trước khi học, bạn nên hiểu ma trận trọng số, activation và phép nhân ma trận. Các con số trong bài đều giả định. Chúng giải thích cơ chế, không dự đoán chất lượng của một checkpoint cụ thể.
Một phép lượng tử hóa đủ nhỏ để tính tay
Với dạng tuyến tính đơn giản, mã lượng tử q = clamp(round(w/s) + z). s là scale, z là zero point; clamp giữ mã trong khoảng cho phép. Khi tính gần đúng, khôi phục w_hat = s(q − z). Dạng đối xứng thường chọn zero point phù hợp để biểu diễn số âm và dương quanh không.
Lấy s = 0,1, z = 0 và w = 0,37. Ta làm tròn 3,7 thành q = 4, rồi khôi phục 0,4. Nếu w = 0,04, mã trở thành không. Việc giảm độ chính xác khiến các trọng số khác nhau có thể chung mã.
Một giá trị ngoại lệ rất lớn có thể buộc scale tăng, làm độ phân giải của nhiều giá trị nhỏ kém đi. Dùng scale theo nhóm hoặc theo kênh cho phép thích nghi tốt hơn nhưng thêm metadata và chi phí xử lý. Các định dạng không đồng đều cũng không tuân theo đúng công thức tuyến tính này.
Trọng số, activation và cache là ba đối tượng
Weight-only quantization giảm bộ nhớ chứa trọng số; activation có thể vẫn ở độ chính xác cao hơn khi nhân. Lượng tử hóa activation tác động thêm đến giá trị sinh ra trong lúc chạy. Lượng tử hóa KV cache xử lý trạng thái attention và cần đánh giá riêng trên độ dài ngữ cảnh.
Giả sử mô hình có 8 tỷ tham số. Chỉ tính dữ liệu trọng số, 16 bit mỗi tham số tương đương 16 tỷ byte; 4 bit tương đương 4 tỷ byte. Đây là mức giảm bốn lần cho thành phần ấy, chưa gồm scale, các tensor giữ nguyên kiểu, cache và vùng nhớ tạm.
Nếu bộ nhớ thực giảm ít hơn bốn lần, chưa thể kết luận triển khai sai. Trước hết hãy tách các thành phần. Ngược lại, tệp nén nhỏ không chứng minh bộ nhớ chạy nhỏ tương ứng, vì định dạng có thể cần giải nén hoặc chuyển đổi khi nạp.
Dữ liệu hiệu chỉnh giúp chọn phép xấp xỉ
Post-training quantization xử lý mô hình đã huấn luyện. Một số phương pháp dùng dữ liệu đại diện để đánh giá hoặc giảm sai số của đầu ra lớp. GPTQ là nghiên cứu về lượng tử hóa trọng số sau huấn luyện sử dụng thông tin bậc hai gần đúng. Các kết quả của paper gắn với mô hình và phần cứng được thử, không phải cam kết cho mọi tệp 4-bit.
Dữ liệu hiệu chỉnh nên phản ánh đầu vào dự kiến: ngôn ngữ, độ dài và loại nhiệm vụ. Chỉ dùng đoạn tiếng Anh ngắn để chuẩn bị mô hình phục vụ tài liệu tiếng Việt dài là một giả định cần kiểm chứng. Tập đánh giá cuối cùng phải tách khỏi dữ liệu dùng chọn cấu hình.
Chạy các mô hình trên cùng bộ thử, đọc cả điểm tổng lẫn kiểu lỗi, rồi cân nhắc tốc độ và chi phí. Một chênh lệch nhỏ chưa chứng minh mô hình nào luôn tốt hơn.
↔ Vuốt ngang để xem toàn bộ sơ đồ.
01 / Cùng bộ thử
Dùng cùng các trường hợp và quy tắc chấm đã xác định trước cho cả hai mô hình.
02 / Đọc điểm số
Trong ví dụ giả định, A đúng 18/20, B đúng 17/20. Chênh lệch một trường hợp chưa đủ kết luận chung.
03 / Xem kiểu lỗi
Mở các trường hợp thất bại: sai tên người và vượt độ dài có mức ảnh hưởng khác nhau.
04 / Đánh giá nhiều chiều
Đo thêm tốc độ, chi phí và độ ổn định trên dữ liệu phù hợp với công việc thực tế.
A đúng 18/20 và B đúng 17/20 là số liệu giả định để giải thích cách đọc kết quả, không phải benchmark của mô hình có thật.
Sơ đồ đánh giá cung cấp cách so đầu ra với tiêu chí. Nó không mô phỏng mã số nguyên hay kernel lượng tử hóa; với bài toán này, cần thêm phép đo bộ nhớ và thời gian bên cạnh độ đúng.
Ít bit chưa chắc ít thời gian
Tốc độ phụ thuộc việc phần cứng và kernel có thực hiện hiệu quả định dạng đó hay không. Chi phí giải lượng tử hóa, kích thước batch và lượng dữ liệu phải đọc đều tham gia. Nếu một bước đã bị giới hạn bởi thành phần khác, giảm trọng số có thể không tạo mức tăng tốc rõ rệt.
Hãy đo riêng prefill và decode, giữ cùng chiều dài đầu vào, đầu ra và cách giải mã. Kiểm tra thêm các lỗi nhạy cảm như số liệu, định dạng JSON hoặc tên riêng. Điểm trung bình ổn định có thể che một nhóm yêu cầu bị suy giảm đáng kể.
Bài tập: lập bảng sai số có điều kiện
Lượng tử hóa ba số 0,04; 0,37; −0,26 với scale 0,1 và zero point không, giả sử không bị clamp. Kết quả khôi phục phải là 0; 0,4; −0,3. Sai số tuyệt đối tương ứng là 0,04; 0,03; 0,04.
Sau đó viết một kế hoạch so mô hình gốc với bản lượng tử hóa: cùng 30 câu giả định, có nhóm số liệu và nhóm văn bản, ghi số lỗi từng nhóm cùng peak memory. Tiêu chí hoàn thành là phân biệt phép tính minh họa, kế hoạch chưa chạy và kết quả đo thật. Đọc QLoRA để thấy lượng tử hóa có thể kết hợp với huấn luyện adapter.