Transformers documentation

VPTQ

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

VPTQ

Vector Post-Training Quantization (VPTQ) là một phương pháp Post-Training Quantization (PTQ) sử dụng vector quantization để lượng tử hóa các LLM ở độ rộng bit cực thấp (<2-bit). VPTQ có thể nén một mô hình 70B, thậm chí 405B, xuống 1-2 bit mà không cần huấn luyện lại và vẫn duy trì độ chính xác cao. Đây là một thuật toán lượng tử hóa nhẹ, mất khoảng 17 giờ để lượng tử hóa một mô hình 405B. VPTQ có khả năng suy luận lượng tử hóa linh hoạt với chi phí giải mã thấp và thông lượng cao cùng Time To First Token (TTFT).

Chạy lệnh bên dưới để cài đặt VPTQ, cung cấp các kernel hiệu quả cho suy luận trên GPU NVIDIA và AMD.

pip install vptq

VPTQ-community cung cấp một bộ sưu tập các mô hình đã được lượng tử hóa VPTQ. Tên mô hình chứa thông tin về độ rộng bit (không bao gồm cookbook, tham số và chi phí đệm). Hãy xem xét mô hình [Meta-Llama-3.1-70B-Instruct-v8-k65536-256-woft] như một ví dụ.

  • Tên mô hình là Meta-Llama-3.1-70B-Instruct.
  • Số lượng tâm được cho bởi 65536 (2^16).
  • Số lượng tâm dư được cho bởi 256 (2^8).

Công thức tính độ rộng bit tương đương được cho bởi biểu thức sau.

  • index: log2(65536) = 16 / 8 = 2-bit
  • chỉ số phần dư: log2(256) = 8 / 8 = 1-bit
  • tổng số bit: 2 + 1 = 3-bit

Từ đây, hãy ước tính kích thước mô hình bằng cách nhân 70B * 3-bits / 8-bits/byte để có tổng cộng 26.25GB.

Tải một mô hình đã lượng tử hóa VPTQ bằng from_pretrained().

from transformers import AutoTokenizer, AutoModelForCausalLM

quantized_model = AutoModelForCausalLM.from_pretrained(
    "VPTQ-community/Meta-Llama-3.1-70B-Instruct-v16-k65536-65536-woft",
    dtype="auto", 
    device_map="auto"
)

Để lượng tử hóa mô hình của riêng bạn, hãy tham khảo hướng dẫn VPTQ Quantization Algorithm Tutorial.

Benchmarks

VPTQ đạt độ chính xác tốt hơn và thông lượng cao hơn với chi phí lượng tử hóa thấp hơn trên các mô hình có kích thước khác nhau. Các kết quả thực nghiệm sau đây chỉ mang tính tham khảo; VPTQ có thể đạt được kết quả tốt hơn với các tham số hợp lý, đặc biệt là về độ chính xác của mô hình và tốc độ suy luận.

Mô hìnhbitwidthW2↓C4↓AvgQA↑tok/s↑mem(GB)chi phí/h↓
LLaMA-2 7B2.026.138.0758.239.92.282
2.265.957.8759.435.72.483.1
LLaMA-2 13B2.025.327.1562.426.94.033.2
2.185.287.0463.118.54.313.6
LLaMA-2 70B2.073.935.7268.69.719.5419
2.113.925.7168.79.720.0119

Tài nguyên

Xem một ví dụ demo của VPTQ trên Space Demo Trực Tuyến VPTQ hoặc thử chạy notebook suy luận VPTQ.

Để biết thêm thông tin, hãy đọc bài báo về VPTQ.

Update on GitHub