Transformers documentation

HQQ

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

HQQ

Half-Quadratic Quantization (HQQ) hỗ trợ lượng tử hóa nhanh ngay khi chạy cho 8, 4, 3, 2 và thậm chí 1-bit. Nó không yêu cầu dữ liệu hiệu chuẩn và tương thích với mọi loại mô hình (LLM, thị giác, v.v.).

HQQ còn hỗ trợ fine-tuning với PEFT và tương thích hoàn toàn với torch.compile để suy luận và huấn luyện nhanh hơn nữa.

Cài đặt HQQ bằng lệnh sau để có phiên bản mới nhất và để xây dựng các kernel CUDA tương ứng nếu bạn đang sử dụng thiết bị cuda. Nó cũng hỗ trợ Intel XPU với triển khai thuần pytorch.

pip install hqq

Bạn có thể chọn thay thế tất cả các lớp tuyến tính trong một mô hình bằng cùng một cấu hình lượng tử hóa, hoặc chỉ định một cấu hình lượng tử hóa cụ thể cho các lớp tuyến tính cụ thể.

thay thế tất cả các lớp
chỉ các lớp cụ thể

Thực hiện lượng hóa một mô hình bằng cách tạo một HqqConfig và chỉ định nbits cùng group_size để thay thế cho tất cả các lớp tuyến tính (torch.nn.Linear) của mô hình.

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, HqqConfig

quant_config = HqqConfig(nbits=8, group_size=64)
model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B", 
    dtype=torch.float16, 
    device_map="auto", 
    quantization_config=quant_config
)

Các backend

HQQ hỗ trợ nhiều backend khác nhau, bao gồm PyTorch thuần và các kernel CUDA khử lượng hóa tùy chỉnh. Các backend này phù hợp với các GPU đời cũ và huấn luyện PEFT/QLoRA.

from hqq.core.quantize import *

HQQLinear.set_backend(HQQBackend.PYTORCH)

Để suy luận nhanh hơn, HQQ hỗ trợ các kernel hợp nhất 4-bit (torchao và Marlin) sau khi mô hình được lượng tử hóa. Các kernel này có thể đạt tới 200 token/giây trên một card 4090. Ví dụ bên dưới minh họa cách bật backend torchao_int4.

from hqq.utils.patching import prepare_for_inference

prepare_for_inference("model", backend="torchao_int4")

Tham khảo hướng dẫn Backend để biết thêm chi tiết.

Tài nguyên

Đọc bài đăng trên blog Half-Quadratic Quantization of Large Machine Learning Models để biết thêm chi tiết về HQQ.

Update on GitHub