← Về danh sách
AI & Dữ liệu
#양자화#모델 경량화#PTQ/QAT#INT8/INT4#LLM 추론 최적화
Cập nhật lần cuối · 2026-10-11

Lượng tử hóa mô hình (Model Quantization)

1. Tổng quan

Lượng tử hóa mô hình (Model Quantization) là kỹ thuật tinh gọn mô hình (Model Compression) chuyển đổi trọng số (weight) và giá trị kích hoạt (activation) của mạng nơ-ron từ dấu phẩy động độ chính xác cao như FP32·FP16 sang số nguyên bit thấp như INT8·INT4 (hoặc dấu phẩy động độ chính xác thấp như FP8·FP4), giảm dung lượng bộ nhớ, khối lượng tính toán, độ trễ suy luận và mức tiêu thụ điện của mô hình trong khi giảm thiểu tổn thất độ chính xác.

Quy mô tham số của các mô hình học sâu, đặc biệt là mô hình ngôn ngữ lớn (LLM), đã bùng nổ từ hàng trăm triệu lên hàng trăm tỷ, và hiệu năng được cải thiện tỷ lệ với quy mô. Sự tăng trưởng quy mô này mang lại năng lực biểu diễn phong phú hơn và hiệu năng tác vụ cao hơn, nhưng đồng thời đẩy cao cả "chi phí huấn luyện" lẫn "chi phí thực sự đưa lên dịch vụ để suy luận" của mô hình. Đặc biệt, suy luận phát sinh lặp lại trong suốt vòng đời dịch vụ, nên xét về chi phí tích lũy nó thường trở thành gánh nặng lớn hơn huấn luyện.

Tuy nhiên, sự tăng trưởng này dẫn ngay đến sự bùng nổ chi phí triển khai. Lưu một tham số dưới dạng dấu phẩy động 32 bit cần 4 byte mỗi tham số, nên một mô hình 70 tỷ (70B) tham số chiếm khoảng 140GB bộ nhớ ngay cả với FP16 (2 byte). Đây là quy mô chỉ có thể nạp được một cách chật vật bằng cách ghép nhiều GPU trung tâm dữ liệu đắt tiền, và không thể triển khai nguyên bản trong các môi trường bị hạn chế bộ nhớ·điện năng như điện thoại thông minh, ECU ô tô, thiết bị biên công nghiệp. Lượng tử hóa ra đời chính để giải quyết thế lưỡng nan căn bản này: "hiệu năng đến từ mô hình lớn, nhưng triển khai phải nhỏ".

Bản thân ý tưởng lượng tử hóa không mới. Gốc rễ của nó nằm ở khái niệm lượng tử hóa khi lấy mẫu tín hiệu analog thành dạng số trong xử lý tín hiệu, và trong lĩnh vực nhúng từ lâu suy luận nhẹ đã được hiện thực bằng phép toán dấu phẩy tĩnh (fixed-point). Tuy nhiên, khi quy mô mô hình bùng nổ và chi phí suy luận chi phối chi phí vận hành dịch vụ, lượng tử hóa đã được nâng vị thế từ "tối ưu tùy chọn" lên "điều kiện tiên quyết của triển khai". Các ngăn xếp phục vụ LLM thương mại ngày nay hầu như không ngoại lệ đều mặc định giả định định dạng độ chính xác thấp, và chất lượng lượng tử hóa trực tiếp quyết định năng lực cạnh tranh về đơn giá dịch vụ.

Nguyên lý cốt lõi khiến lượng tử hóa phát huy hiệu quả nằm ở thực tế thực nghiệm rằng phân phối trọng số của một mạng nơ-ron đã huấn luyện xong nhìn chung tập trung trong một khoảng hẹp gần 0 và không đòi hỏi độ chính xác số cực cao. Tức là trong khoảng 4,2 tỷ mức phân giải mà 32 bit biểu diễn, cái thực sự cần là ít mức hơn nhiều, nên dù xấp xỉ bằng một lưới (grid) số nguyên được thiết kế phù hợp thì xu hướng phán đoán của mô hình vẫn được bảo toàn phần lớn. Thực tế, đổi trọng số từ FP32 sang INT8 giảm không gian lưu trữ xuống còn một phần tư, cải thiện thông lượng (throughput) 2~4 lần trên phần cứng hỗ trợ phép toán số nguyên, và với suy luận LLM vốn bị chi phối bởi nút thắt băng thông bộ nhớ thì hiệu quả tăng tốc cảm nhận được còn lớn hơn. Vì vậy, ngày nay lượng tử hóa đã trở thành phương tiện tinh gọn tiêu chuẩn trên thực tế cho AI trên thiết bị (on-device), phục vụ sLLM (mô hình ngôn ngữ nhẹ) và dịch vụ suy luận thời gian thực.

2. Nguyên lý cơ bản và cấu trúc công thức của lượng tử hóa

flowchart LR
  R["Trọng số thực (phân phối FP32)"] --> SC["Tính scale và zero-point"]
  SC --> Q["Lượng tử hóa: q = round(r/scale) + zero_point"]
  Q --> QI["Biểu diễn số nguyên (lưu dưới dạng INT8/INT4)"]
  QI --> DQ["Giải lượng tử: r' = scale * (q - zero_point)"]
  DQ --> O["Giá trị thực khôi phục (xấp xỉ, có sai số)"]
  O --> ERR["Sai số lượng tử hóa (quantization error)"]

Bản chất toán học của lượng tử hóa là ánh xạ (mapping) một khoảng số thực liên tục vào một số hữu hạn các điểm lưới số nguyên. Khi đó, việc quyết định đặt phạm vi nào của phân phối thực vào lưới được gọi là thiết lập phạm vi (clipping/calibration); nếu đặt phạm vi quá rộng thì độ phân giải của các giá trị thường gặp giảm (sai số clipping nhỏ nhưng sai số làm tròn lớn), còn nếu đặt quá hẹp thì các giá trị cực đoan bị cắt bỏ (sai số làm tròn nhỏ nhưng sai số clipping lớn). Do đó thiết lập phạm vi là một bài toán tối ưu tìm điểm cực tiểu hóa tổng hai sai số, và thay vì cách đơn giản dùng thẳng giá trị lớn nhất·nhỏ nhất, người ta dùng rộng rãi các kỹ thuật định ngưỡng theo phân vị của phân phối hoặc theo tiêu chí cực tiểu hóa độ phân kỳ KL. Khi đổi giá trị thực r thành số nguyên q, dùng hai tham số: scale và zero-point. Scale là độ phân giải xác định 1 đơn vị giá trị thực tương ứng bao nhiêu mức số nguyên, còn zero-point là điểm tham chiếu xác định giá trị thực 0 tương ứng số nguyên nào. Lượng tử hóa được tính bằng q = round(r / scale) + zero_point, còn giải lượng tử (dequantization) bằng r' = scale × (q - zero_point). Khi đó, trong quá trình làm tròn, sai số lượng tử hóa — hiệu giữa r gốc và giá trị khôi phục r' — phát sinh không thể tránh khỏi, và việc kìm sai số này nhỏ đến đâu trở thành nhiệm vụ cốt lõi của mọi kỹ thuật lượng tử hóa.

Thiết lập phạm vi này đặc biệt nhạy cảm ở giá trị kích hoạt. Trọng số được cố định sau khi huấn luyện xong nên chỉ cần định phạm vi một lần, nhưng giá trị kích hoạt có phân phối thay đổi theo từng lần suy luận tùy đầu vào, nên phải ước lượng trước "phạm vi điển hình" bằng dữ liệu hiệu chỉnh có tính đại diện. Nếu dữ liệu hiệu chỉnh xa rời đầu vào vận hành thực tế thì các giá trị vượt phạm vi khi suy luận trở nên thường xuyên và chất lượng giảm, nên việc cấu thành tập hiệu chỉnh trở thành tử huyệt thực tiễn quyết định chất lượng PTQ.

Tùy theo cách xử lý zero-point, lượng tử hóa chia thành lượng tử hóa đối xứng (Symmetric) và lượng tử hóa bất đối xứng (Asymmetric, Affine). Lượng tử hóa đối xứng cố định zero-point bằng 0 và giả định phạm vi giá trị đối xứng quanh 0 nên phép toán đơn giản và nhanh, nhưng lãng phí phạm vi biểu diễn khi phân phối lệch về một phía. Lượng tử hóa bất đối xứng đặt zero-point tự do nên chứa chính xác hơn các phân phối lệch (ví dụ giá trị kích hoạt không có số âm như đầu ra ReLU) nhưng thêm phép hiệu chỉnh zero-point. Nói chung, người ta dùng nhiều chiến lược hỗn hợp áp dụng lượng tử hóa đối xứng cho trọng số phân phối quanh 0 và lượng tử hóa bất đối xứng cho giá trị kích hoạt có phân phối bất đối xứng.

Tùy theo việc có giữ khoảng cách lưới đều hay không, lượng tử hóa còn được phân thành lượng tử hóa đều (uniform) và lượng tử hóa không đều (non-uniform). Lượng tử hóa đều giữ khoảng cách thực giữa các mức số nguyên đều như nhau nên hợp với phép toán số nguyên phần cứng và được dùng rộng rãi nhất. Ngược lại, lượng tử hóa không đều đặt lưới dày ở vùng gần 0 nơi giá trị tập trung và thưa ở vùng ngoài thưa thớt, thu được sai số nhỏ hơn với cùng số bit. NF4 (NormalFloat4) mà QLoRA áp dụng là ví dụ tiêu biểu của lượng tử hóa không đều, trong đó lưới được thiết kế sao cho khối lượng xác suất của mỗi khoảng bằng nhau dưới giả định trọng số tuân theo phân phối chuẩn, giảm thiểu tổn thất thông tin ngay cả ở điều kiện cực hạn 4 bit.

Ngoài ra, độ chính xác thay đổi lớn tùy theo đơn vị chia sẻ scale. Lượng tử hóa theo tensor (per-tensor) dùng một scale cho toàn bộ một lớp nên nhẹ, nhưng nếu phạm vi giá trị của một kênh nào đó đặc biệt rộng thì độ phân giải tổng thể bị kéo theo kênh đó và sai số tăng. Ngược lại, lượng tử hóa theo kênh (per-channel) đặt scale riêng cho mỗi kênh đầu ra và hấp thụ khác biệt phân phối theo từng kênh, nâng cao đáng kể độ chính xác trong lượng tử hóa trọng số. Ví dụ, tổ hợp lượng tử hóa trọng số của lớp tích chập·tuyến tính theo kênh và giá trị kích hoạt theo tensor được áp dụng rộng rãi như điểm cân bằng giữa độ chính xác và hiệu quả.

Trục phân loại Loại Đặc điểm Đối tượng áp dụng chính
Xử lý zero-point Đối xứng / Bất đối xứng Đối xứng đơn giản·nhanh; bất đối xứng chính xác cho phân phối lệch Trọng số / Giá trị kích hoạt
Chia sẻ scale per-tensor / per-channel Theo kênh chính xác, theo tensor nhẹ Giá trị kích hoạt / Trọng số
Độ chính xác INT8·INT4·FP16·BF16·FP8·FP4 Bit càng thấp càng nhẹ·nhanh, sai số tăng Chọn theo yêu cầu phục vụ

3. Các loại phương thức lượng tử hóa — PTQ và QAT

flowchart TB
  M["Mô hình đã tiền huấn luyện (FP32/FP16)"] --> B{"Khả năng tái huấn luyện và mục tiêu độ chính xác"}
  B -->|"Nhanh, không tái huấn luyện"| PTQ["PTQ: Lượng tử hóa sau huấn luyện"]
  B -->|"Ưu tiên độ chính xác, bit thấp"| QAT["QAT: Huấn luyện nhận biết lượng tử hóa"]
  PTQ --> CAL["Ước lượng phạm vi bằng ít dữ liệu hiệu chỉnh (calibration)"]
  CAL --> PQ["Cố định phạm vi trọng số·kích hoạt rồi chuyển số nguyên"]
  QAT --> FQ["Chèn lượng tử hóa giả (fake quant) trong huấn luyện"]
  FQ --> RT["Học và hiệu chỉnh cả sai số lượng tử qua lan truyền ngược"]
  PQ --> DEP["Triển khai mô hình nhẹ"]
  RT --> DEP

Tồn tại hai dòng lớn tùy theo thời điểm áp dụng lượng tử hóa. PTQ (Post-Training Quantization, lượng tử hóa sau huấn luyện) áp dụng lượng tử hóa hậu kỳ cho mô hình đã huấn luyện xong. Không cần tái huấn luyện toàn bộ, và chỉ bằng vài trăm~vài nghìn dữ liệu hiệu chỉnh (calibration data) để ước lượng phạm vi giá trị của mỗi lớp mà tính scale·zero-point. Vì chi phí rất thấp và nhanh nên nó tạo thành dòng chủ lưu của triển khai LLM hiện nay. Tuy nhiên, vì không thể hiệu chỉnh sai số qua tái huấn luyện, độ chính xác có thể giảm rõ rệt ở bit thấp quyết liệt từ 4 bit trở xuống. PTQ lại được phân nhỏ thành phương thức động (Dynamic) tính phạm vi giá trị kích hoạt theo thời gian thực tại thời điểm suy luận, và phương thức tĩnh (Static) cố định phạm vi từ trước ở giai đoạn hiệu chỉnh. Phương thức động dễ hiện thực và chính xác nhưng có chi phí phụ khi suy luận, còn phương thức tĩnh không có phép toán thêm nên nhanh hơn nhưng nhạy với tính đại diện của dữ liệu hiệu chỉnh.

QAT (Quantization-Aware Training, huấn luyện nhận biết lượng tử hóa) chèn các nút lượng tử hóa giả (fake quantization) mô phỏng lượng tử hóa vào chính quá trình huấn luyện, để mô hình "biết trước" rằng nó sẽ được biểu diễn ở bit thấp và thích nghi tham số cho phù hợp. Ở lượt truyền xuôi dùng các giá trị đã đi qua lượng tử hóa·giải lượng tử, nhưng vì phép làm tròn không khả vi nên ở lượt lan truyền ngược, gradient được xấp xỉ và cho đi qua bằng STE (Straight-Through Estimator). Làm vậy thì mô hình phản ánh sai số lượng tử vào hàm mất mát và tự hiệu chỉnh, nên đặc biệt với bit cực thấp như INT4 hay các tác vụ nhạy cảm độ chính xác thì giảm mạnh tổn thất so với PTQ. Đổi lại, nhược điểm là cần chi phí tái huấn luyện toàn bộ (hoặc phần lớn) cùng dữ liệu·pipeline huấn luyện, nên thành lập sự đánh đổi điển hình giữa chi phí và độ chính xác.

Trên thực tiễn, chiến lược theo giai đoạn "thử PTQ trước, nếu không đạt độ chính xác mục tiêu thì chuyển sang QAT" là phổ biến. Ngoài ra, lượng tử hóa chỉ trọng số (weight-only) vốn chỉ hạ trọng số xuống bit thấp còn giữ giá trị kích hoạt ở bit tương đối cao được dùng rộng rãi trong phục vụ LLM, vì suy luận LLM bị chi phối bởi băng thông đọc trọng số từ bộ nhớ hơn là khối lượng tính toán. Tức là chỉ cần hạ trọng số xuống INT4 cũng làm giảm mạnh lượng nạp bộ nhớ và gánh nặng băng thông, cải thiện hiệu năng cảm nhận được.

Một dự án lượng tử hóa thực tế nhìn chung tiến hành theo các bước sau.

  1. Xác định mục tiêu: Trước hết cố định phần cứng triển khai, sàn độ chính xác cho phép (SLA), ngân sách bộ nhớ·độ trễ.
  2. Chọn kỹ thuật: Chọn ứng viên sơ bộ giữa PTQ (động/tĩnh) và QAT theo khả năng tái huấn luyện và bit mục tiêu.
  3. Hiệu chỉnh·huấn luyện: PTQ tính phạm vi bằng dữ liệu hiệu chỉnh đại diện, còn QAT chèn lượng tử hóa giả và tái huấn luyện.
  4. Đánh giá·tinh chỉnh: Đo độ chính xác·độ trễ trên tập đánh giá, và nâng bit cho các lớp nhạy cảm bằng độ chính xác hỗn hợp.
  5. Chuyển đổi định dạng·engine: Xuất sang định dạng mà engine suy luận mục tiêu yêu cầu (như GGUF) và kiểm chứng tương thích kernel.
  6. Triển khai·giám sát: Liên tục quan sát sự suy giảm chất lượng do dịch chuyển phân phối đầu vào trong vận hành và đặt chu kỳ hiệu chỉnh lại.

Như một vùng trung gian giữa hai phương thức, lượng tử hóa độ chính xác hỗn hợp (mixed-precision) vốn khai thác việc mỗi lớp có độ nhạy khác nhau được coi trọng. Thay vì hạ mọi lớp đều xuống 4 bit, nếu giữ các lớp nhạy cảm có ảnh hưởng lớn đến sai số đầu ra (ví dụ một số lớp chiếu của attention hay lớp đầu·cuối) ở 8 bit và hạ phần còn lại xuống 4 bit thì có thể hạ bit trung bình tổng thể mà vẫn tránh sụp đổ độ chính xác. Khi đó độ nhạy của mỗi lớp được đo trước bằng mức tăng mất mát khi lượng tử hóa hoặc bằng chỉ số dựa trên đạo hàm bậc hai (Hessian) để phân bổ bit khác nhau, và phân tích độ nhạy (sensitivity analysis) này trở thành công cụ cốt lõi để đẩy an toàn việc lượng tử hóa bit thấp quyết liệt.

4. Kỹ thuật lượng tử hóa đặc thù cho LLM và vấn đề giá trị ngoại lai

Nguyên nhân căn bản khiến lượng tử hóa LLM khó hơn so với mạng nơ-ron thông thường là giá trị ngoại lai (outlier) của kích hoạt. Ở một số kênh nhất định (feature dimension) của transformer, các giá trị kích hoạt lớn gấp hàng chục~hàng trăm lần các kênh khác xuất hiện một cách hệ thống, và trong lượng tử hóa theo tensor, việc khớp phạm vi theo giá trị khổng lồ này làm nhòe độ phân giải của đại đa số giá trị còn lại và khiến sai số bùng nổ. Điểm thú vị là các giá trị ngoại lai này không ngẫu nhiên mà tập trung lặp lại·có cấu trúc vào một số ít chiều cụ thể, và điều này nghịch lý thay lại là manh mối cho giải pháp rằng "chỉ cần xử lý riêng các giá trị ngoại lai thì phần còn lại có thể hạ xuống bit thấp an toàn". Để giải quyết hiện tượng này, nhiều kỹ thuật chuyên dụng đã được phát triển như dưới đây.

flowchart TB
  LLM["Mô hình ngôn ngữ lớn (trọng số và kích hoạt)"] --> OUT["Vấn đề giá trị ngoại lai của kích hoạt"]
  OUT --> M1["LLM.int8(): ngoại lai để FP16, còn lại INT8 độ chính xác hỗn hợp"]
  OUT --> M2["SmoothQuant: chuyển độ khó của kích hoạt sang trọng số"]
  OUT --> M3["GPTQ: lượng tử hóa bù sai số bằng thông tin bậc hai (Hessian)"]
  OUT --> M4["AWQ: bảo toàn kênh quan trọng theo kích hoạt (scale per-channel)"]
  M3 --> FMT["Đóng gói định dạng lưu trữ (như GGUF), nạp vào engine suy luận"]
  M4 --> FMT
  M1 --> FMT
  M2 --> FMT

LLM.int8() là phân rã độ chính xác hỗn hợp (mixed-precision) tính riêng ở FP16 chỉ một số ít chiều ngoại lai trong giá trị kích hoạt vượt ngưỡng, còn xử lý phần lớn còn lại ở INT8, gần như triệt tiêu tổn thất độ chính xác trong khi giảm bộ nhớ xuống còn khoảng một nửa. SmoothQuant chuyển "độ khó" của các giá trị kích hoạt khó lượng tử hóa, thông qua một phép biến đổi tương đương về mặt toán học, sang phía trọng số tương đối dễ lượng tử hóa, hạ ổn định cả kích hoạt lẫn trọng số xuống INT8.

Trong lĩnh vực bit thấp chỉ trọng số, GPTQ và AWQ là tiêu chuẩn trên thực tế. GPTQ lượng tử hóa trọng số theo từng lớp, nhưng dùng thông tin đạo hàm bậc hai (xấp xỉ Hessian) để cập nhật các trọng số còn lại chưa lượng tử hóa sao cho bù sai số phát sinh khi lượng tử hóa một khối, kìm hãm suy giảm hiệu năng ngay cả ở 3~4 bit. AWQ (Activation-aware Weight Quantization) xuất phát từ nhận định "không phải mọi trọng số đều quan trọng như nhau", và áp dụng việc định tỷ lệ theo kênh bảo vệ chọn lọc một số ít kênh có độ quan trọng cao dựa trên độ lớn của giá trị kích hoạt. Các trọng số được lượng tử hóa như vậy thường được đóng gói thành định dạng lưu trữ như GGUF (dòng llama.cpp) và nạp vào nhiều engine suy luận. Mặt khác, QLoRA là kỹ thuật đóng băng trọng số ở NF4 (NormalFloat4) 4 bit rồi chỉ huấn luyện một số ít bộ chuyển đổi hạng thấp (LoRA), cho phép tinh chỉnh các mô hình hàng chục tỷ tham số trên một GPU duy nhất, và được đánh giá là trường hợp tiêu biểu kết hợp lượng tử hóa với tinh chỉnh hiệu quả.

Một cơ chế cốt lõi khác mà các kỹ thuật lượng tử hóa LLM này đều áp dụng chung là lượng tử hóa theo nhóm (group-wise). Buộc toàn bộ một kênh bằng một scale thì vẫn còn sai số lớn, còn đặt scale cho từng giá trị thì làm giảm hiệu quả lưu trữ, nên thường chia trọng số thành các nhóm nhỏ 32·64·128 đơn vị và gán cho mỗi nhóm một scale (và zero-point) riêng. Kích thước nhóm càng nhỏ thì độ chính xác càng cao nhưng số bit phụ (overhead) để lưu scale càng tăng, nên, như các biến thể "k-quant" đa dạng của GGUF, nhiều hồ sơ với tổ hợp kích thước nhóm và bit khác nhau được cung cấp để người dùng cân đối ngân sách bộ nhớ với chất lượng. Rốt cuộc, chất lượng thực tế của lượng tử hóa LLM được quyết định không chỉ bởi "bao nhiêu bit" mà còn bởi "lượng tử hóa ở đơn vị nào, cùng với cách xử lý ngoại lai nào".

5. So sánh và các trường hợp ứng dụng thực tế

So sánh đặc tính theo từng độ chính xác làm rõ sự đánh đổi của lựa chọn. INT8 giảm bộ nhớ xuống một phần tư so với FP32 mà vẫn giữ tổn thất độ chính xác nhìn chung dưới 1%, nên được xem là "mặc định an toàn". INT4, khi kết hợp với GPTQ·AWQ, giữ tổn thất trên các benchmark tiêu chuẩn ở mức khoảng 1~3%p, và được đánh giá là điểm tối ưu thực dụng (sweet spot) cho phục vụ LLM nơi nút thắt bộ nhớ nghiêm trọng. Lý do là giảm một nửa số bit thì số mức biểu diễn được giảm theo cấp số nhân nên sai số tăng (INT8 có 256 mức, INT4 có 16 mức), nhưng độ dư thừa (redundancy) của trọng số LLM lớn nên hiệu năng chịu được đến một mức nhất định.

Độ chính xác Bit Bộ nhớ so với FP32 Đặc điểm·công dụng Tổn thất độ chính xác (xu hướng)
FP32 32 1 lần (chuẩn) Mặc định huấn luyện, độ chính xác cao Không (chuẩn)
FP16/BF16 16 1/2 Độ chính xác hỗn hợp huấn luyện·suy luận; BF16 có số mũ rộng Không đáng kể
FP8 8 1/4 GPU mới nhất hỗ trợ gốc, gần với BF16 Nhỏ
INT8 8 1/4 Chuẩn suy luận phổ dụng, phần cứng hỗ trợ rộng rãi Nhìn chung dưới 1%
INT4 4 1/8 Chỉ trọng số LLM (GPTQ/AWQ) Khoảng 1~3%p
FP4 (NVFP4, v.v.) 4 1/8 Suy luận độ chính xác thấp trên GPU lớp Blackwell Nhỏ, tùy trường hợp

Về trường hợp cụ thể, một LLM cỡ 7 tỷ (7B) tham số chiếm khoảng 1314GB ở FP16, chật chội với GPU tiêu dùng, nhưng lượng tử hóa sang INT4 giảm xuống khoảng 3,54GB, trở nên chạy được ngay cả trên laptop thông thường·thiết bị biên. Mô hình cỡ 70 tỷ (70B) cũng cần khoảng 140GB ở BF16, bắt buộc nhiều GPU, nhưng hạ xuống INT4 thì còn mức khoảng 35~40GB, mở rộng phạm vi phục vụ tới một GPU cao cấp duy nhất. Trong lĩnh vực di động, Qualcomm Hexagon NPU, Apple Neural Engine, v.v. tăng tốc phép toán INT8 bằng phần cứng, nên nhận dạng giọng nói·dịch·AI camera trên thiết bị hoạt động thời gian thực. Ở trung tâm dữ liệu, thế hệ NVIDIA Hopper (H100) bắt đầu hỗ trợ FP8 nguyên bản trong các tensor core, và điều này duy trì chất lượng gần với BF16 trong khi nâng cao thông lượng và hiệu suất điện năng, trở thành phương tiện cốt lõi hạ đơn giá của các dịch vụ suy luận quy mô lớn.

Điểm tinh tế cần lưu ý ở đây là lượng tử hóa INT4 chỉ trọng số gần với việc "giảm lượng dữ liệu đọc từ bộ nhớ" hơn là "làm chính phép toán nhanh bằng số nguyên". Nhiều kernel suy luận LLM đọc vào trọng số lưu dưới dạng INT4 rồi giải lượng tử sang FP16 ngay trước khi tính để thực hiện phép nhân. Tức là lưu trữ·truyền tải ở 4 bit nhưng tính toán thực tế diễn ra ở độ chính xác cao, nên lợi ích nổi bật hơn ở phục vụ lô nhỏ·độ trễ thấp nơi băng thông bộ nhớ là nút thắt, so với tình huống lô lớn (batch) bị chi phối bởi khối lượng tính toán. Ngược lại, con đường hạ cả giá trị kích hoạt xuống INT8 để tăng tốc chính phép nhân ma trận số nguyên lại cho hiệu quả lớn hơn ở các khối lượng công việc thâm dụng tính toán. Do đó, "lượng tử hóa nào nhanh hơn" thay đổi tùy đặc tính khối lượng công việc, và điều này nhất thiết phải được cân nhắc khi thiết kế.

Trong các lĩnh vực thị giác·gợi ý, lượng tử hóa cũng đã được đưa vào thực chiến từ lâu. Dòng MobileNet dùng cho nhận dạng vật thể di động, khi lượng tử hóa INT8, kìm mức giảm độ chính xác quanh 1%p trong khi giảm mạnh độ trễ suy luận và kích thước mô hình, cho phép xử lý thời gian thực trên thiết bị dùng pin. Trong các hệ thống gợi ý quy mô lớn cũng vậy, do đặc tính bảng nhúng chiếm phần lớn bộ nhớ, trường hợp lượng tử hóa phần nhúng sang INT8·INT4 để tiết giảm chi phí phục vụ đã trở nên phổ biến. Như vậy có thể thấy điểm mà lợi ích của lượng tử hóa thể hiện rõ nhất, một cách chung, là môi trường phục vụ nơi "bộ nhớ·băng thông là nút thắt và nhiều yêu cầu suy luận lặp lại".

6. Chuyên sâu — Xu hướng mới của định dạng độ chính xác thấp và sự đồng tiến hóa với phần cứng

Xu hướng mới nhất của lượng tử hóa có thể tóm tắt là "từ số nguyên (INT) sang dấu phẩy động độ chính xác thấp (FP8·FP4)" và "sự đồng tiến hóa giữa kỹ thuật phần mềm với lệnh phần cứng". Lượng tử hóa trước đây chủ yếu dựa vào phép toán số nguyên INT8, nhưng gần đây, khi các tensor core trực tiếp hỗ trợ dấu phẩy động độ chính xác thấp như FP8 của thế hệ NVIDIA Hopper và FP4 (NVFP4·MXFP4) của thế hệ Blackwell, nó đang tiến hóa theo hướng bảo đảm dải động rộng bằng cách tận dụng phần mũ ngay cả ở cùng độ rộng bit. Theo các báo cáo của ngành, suy luận FP4 trên dòng Blackwell cho thấy cải thiện thông lượng vài lần so với thế hệ FP8 trước đó và giảm mạnh mức tiêu thụ điện trên mỗi token, trong khi trên một số mô hình suy luận lớn, mức giảm điểm benchmark như MMLU được báo cáo chỉ dừng ở mức khoảng 0,1%p (tuy nhiên các con số này thay đổi tùy nhà cung cấp·mô hình cụ thể·ngăn xếp phục vụ, nên khó khẳng định như một cải thiện hiệu năng chung).

Cùng với xu hướng này, sự chuẩn hóa·hình thành hệ sinh thái của các định dạng độ chính xác thấp cũng đang tiến triển. Trước đây, mỗi nhà cung cấp có cách phân bổ bit (mũ/định trị) của FP8 khác nhau khiến khó tương tác, nhưng gần đây, thông qua các hiệp hội ngành, dòng định dạng FP8·FP4 họ MX (Microscaling) đã được chỉnh lý, và các ngăn xếp suy luận chủ chốt như Hugging Face·vLLM·TensorRT-LLM đang hội tụ theo hướng có thể dùng chung các checkpoint GPTQ·AWQ·FP8. Điều này cho thấy lượng tử hóa đang định hình thành một lớp tiêu chuẩn cho trao đổi·triển khai mô hình chứ không phải một mẹo lệ thuộc vào một thư viện cụ thể.

Ở tuyến đầu nghiên cứu, lượng tử hóa nhị phân·tam phân (binary/ternary) bit cực thấp cũng sôi động. Dòng BitNet biểu diễn trọng số bằng ba giá trị {-1, 0, +1} là nỗ lực tối đa hóa hiệu suất năng lượng bằng cách thay phép nhân bằng phép cộng, và có trường hợp báo cáo hiệu năng gần với FP16 ở một quy mô nhất định, nhưng còn quá sớm để xem là đã tổng quát hóa. Hàm ý quan trọng từ góc nhìn Kỹ sư chuyên nghiệp quản lý thông tin là lượng tử hóa không còn dừng ở một kỹ thuật hậu xử lý phần mềm mà đã mở rộng thành một bài toán cấp hệ thống nơi thiết kế chip·tập lệnh·trình biên dịch·engine suy luận được thiết kế cùng nhau. Do đó, chiến lược tinh gọn mô hình phải trở thành một quyết định tích hợp, vượt khỏi việc chọn một thuật toán lượng tử hóa cụ thể, cân nhắc cả việc phần cứng mục tiêu tăng tốc nguyên bản định dạng độ chính xác thấp nào.

7. Điểm cần cân nhắc và hàm ý (Góc nhìn Kỹ sư chuyên nghiệp)

  • Quản lý định lượng sự đánh đổi độ chính xác–hiệu quả: Lượng tử hóa không phải bữa trưa miễn phí mà là một cuộc trao đổi, nhường một phần độ chính xác để lấy hiệu quả. Do đó, trước khi áp dụng nhất thiết phải đo hiệu năng theo từng bit trên tập đánh giá dựa trên tác vụ đại diện·dữ liệu thực, xác định trước sàn độ chính xác (SLA) mà dịch vụ cho phép, rồi ra quyết định dựa trên dữ liệu để chọn bit thấp nhất trong phạm vi đó. Cách tiếp cận theo giai đoạn "INT8 đã kiểm chứng → nếu không đạt thì QAT·độ chính xác hỗn hợp" an toàn hơn là "dùng INT4 ngay".

  • Kiểm chứng tính phù hợp với phần cứng·engine suy luận: Dù định dạng lượng tử hóa tốt đến đâu, nếu phần cứng mục tiêu không thể tăng tốc phép toán đó thì lợi ích lý thuyết không chuyển thành hiệu năng thực tế. Phải kiểm tra trước độ chính xác·tập lệnh mà đối tượng triển khai (GPU trung tâm dữ liệu, NPU di động, MCU biên) hỗ trợ cùng phạm vi hỗ trợ kernel của engine suy luận (TensorRT, ONNX Runtime, llama.cpp, v.v.) và suy ngược ra định dạng cùng kỹ thuật.

  • Dữ liệu hiệu chỉnh và khả năng tái lập·quản trị: Vì chất lượng PTQ bị chi phối lớn bởi tính đại diện của dữ liệu hiệu chỉnh, việc cấu thành tập hiệu chỉnh phản ánh phân phối vận hành thực tế và quản lý nguồn gốc·giấy phép của nó là quan trọng. Ngoài ra, mô hình đã lượng tử hóa cũng nên được đưa vào quản trị MLOps ghi lại cùng phiên bản·hash·chỉ số đánh giá, để các thay đổi hiệu năng do tinh gọn có thể truy vết·kiểm toán được.

  • Kết hợp bổ trợ lẫn nhau giữa các kỹ thuật tinh gọn: Lượng tử hóa không ở quan hệ loại trừ với chưng cất tri thức (Knowledge Distillation)·tỉa (Pruning)·phân rã hạng thấp mà kết hợp trực giao·bổ trợ. Ví dụ, một pipeline đa giai đoạn lấy mô hình trò đã làm nhỏ bằng chưng cất, rồi lượng tử hóa sang INT4 và tinh chỉnh bằng QLoRA, cho hiệu quả tối ưu trên thực tiễn. Kỹ sư chuyên nghiệp phải có khả năng thiết kế không phải một kỹ thuật đơn lẻ mà là một danh mục chiến lược tinh gọn tổng hợp hiệu năng yêu cầu·chi phí·môi trường triển khai.

  • Cân nhắc về mặt rủi ro·an ninh: Lượng tử hóa bit thấp quyết liệt có thể giữ độ chính xác trung bình nhưng khiến dự đoán bất ổn trên một số ít đầu vào nhạy cảm, hoặc làm xấu đi các chỉ số công bằng·an toàn. Đặc biệt ở các lĩnh vực rủi ro cao như y tế·tài chính·lái xe tự động, phạm vi đánh giá phải bao gồm cả các trường hợp biên·độ bền vững đối kháng (robustness) trước và sau lượng tử hóa.

  • Triển vọng từ góc nhìn tổng chi phí sở hữu (TCO) và tính bền vững: Giá trị tối hậu của lượng tử hóa không nằm ở việc thu nhỏ mô hình đơn thuần mà ở việc giảm đơn giá suy luận và tiêu thụ năng lượng. Khi các dịch vụ AI tạo sinh trở nên quy mô lớn·thường trực, chi phí suy luận đang trở thành hạng mục chi phối trong chi phí vận hành, và phép toán độ chính xác thấp hạ mức tiêu thụ điện trên mỗi token xuống một phần nhỏ, giảm cả phát thải carbon lẫn chi phí làm mát. Do đó, Kỹ sư chuyên nghiệp phải định vị lượng tử hóa như một phần của chiến lược IT xanh·bền vững vượt khỏi một kỹ thuật tối ưu hiệu năng, và có khả năng giải thích hiệu quả đầu tư tinh gọn từ góc nhìn TCO trên toàn vòng đời mô hình.

Tài liệu tham khảo


Tóm tắt một câu: Lượng tử hóa mô hình là kỹ thuật tinh gọn cốt lõi chuyển đổi trọng số·giá trị kích hoạt sang số nguyên bit thấp·dấu phẩy động độ chính xác thấp để giảm bộ nhớ·tính toán·điện năng, và phải được thiết kế·kiểm chứng từ góc nhìn đánh đổi độ chính xác–hiệu quả qua PTQ·QAT, các kỹ thuật đặc thù cho LLM như GPTQ·AWQ·QLoRA, cùng sự đồng tiến hóa phần cứng hướng tới FP8·FP4.