Transformers documentation

Chọn một phương pháp

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

and get access to the augmented documentation experience

to get started

Chọn một phương pháp

Nếu checkpoint của bạn đã được lượng tử hóa, checkpoint sẽ quyết định phương pháp. Hãy tải nó như được minh họa trong Tải checkpoint đã lượng tử hóa trước. Ngược lại, hãy chọn một phương pháp dựa trên phần cứng của bạn và những gì bạn cần làm với mô hình sau khi tải nó.

Bắt đầu từ mục tiêu của bạn

Mỗi hàng đề xuất một phương pháp đầu tiên để thử. Hãy kiểm tra bảng so sánh đầy đủ trước khi bạn quyết định chọn một phương pháp.

Mục tiêuBắt đầu vớiTại sao
Đào tạo mô hình với ít bộ nhớ hơn và ít cấu hình nhấtbitsandbytesThực hiện lượng tử hóa xuống 4 hoặc 8 bit trong quá trình tải mà không cần hiệu chuẩn, chạy trên CUDA, XPU, HPU và CPU, đồng thời hỗ trợ lưu và tinh chỉnh.
Tinh chỉnh với QLoRAbitsandbytesHỗ trợ 4-bit NF4 với PEFT. HQQ, EETQ, GPTQ, SINQ và Quanto cũng hỗ trợ fine-tuning.
Tăng tốc suy luận với torch.compiletorchaogenerate tự động biên dịch các mô hình torchao với bộ nhớ đệm tĩnh, và torchao có các phương án int4, int8 và FP8 cho CUDA, XPU và CPU.
Đạt độ chính xác 4-bit tốt nhấtGPTQHiệu chuẩn trên một tập dữ liệu trong khi tải. Để sử dụng AWQ hoặc AutoRound thay thế, hãy lượng tử hóa bằng thư viện của chúng và tải checkpoint.
Chạy FP8 trên Ada, Hopper hoặc Intel XPUFP8 chi tiếtYêu cầu khả năng tính toán CUDA 8.9 trở lên, hoặc một XPU. FBGEMM FP8 yêu cầu khả năng tính toán 9.0 trở lên, hoặc một XPU.
Chạy FP4 trên BlackwellNVFP4Thực hiện lượng tử hóa xuống định dạng số float 4-bit của NVIDIA trong khi tải. MXFP4 chạy trên compute capability 7.5 trở lên, XPU và CPU.
Chạy trên Apple siliconMetalThực hiện lượng tử hóa xuống 2, 4 hoặc 8 bit trên MPS trong khi tải. Các tệp GGUF cũng được tải trên MPS.
Tải các checkpoint được tạo bằng llm-compressorcompressed-tensorsTải các checkpoint FP8, int4 và int8 ở định dạng compressed-tensors.
Nén xuống dưới 4 bitHQQ hoặc SINQThực hiện lượng tử hóa xuống 2 hoặc 3 bit khi tải mà không cần hiệu chuẩn. Các checkpoint AQLM, VPTQ và SpQR có thể đạt mức thấp hơn nhưng phải được lượng tử hóa bằng thư viện riêng của chúng.
Show the full comparison table
Phương phápquant_methodQuy trình làm việcBitsPhần cứngLưuTinh chỉnhTự động biên dịch
AQLMaqlmChỉ dành cho đã lượng tử hóa1–2CUDA, CPU✅✅ với aqlm>=1.0.2❌
AutoRoundauto-roundChỉ dành cho đã lượng tử hóa2–8CUDA, XPU, CPU✅❌❌
AWQawqChỉ dành cho đã lượng tử hóa4CUDA, ROCm, XPU, CPU✅ ngoại trừ các backend ExLlama✅ với gptqmodel>=5.0.0❌
BitNetbitnetChỉ dành cho đã lượng tử hóa1.58CUDA✅Chỉ autobitlinear ở chế độ online❌
bitsandbytesbitsandbytesTrong khi tải4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensorsChỉ dành cho đã lượng tử hóaĐặt theo checkpointCUDA, XPU, MPS, CPU✅✅ ngoại trừ với các kernel FP8✅
EETQeetqTrong khi tải8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8Trong khi tải8CUDA (khả năng tính toán 9.0+), XPU✅❌❌
FP8 chi tiếtfp8, mxfp8Trong khi tải8CUDA (khả năng tính toán 8.9+), XPU✅❌✅
Bốn trên SáufouroversixTrong khi tải4CUDA (nhanh nhất trên Blackwell), CPU✅Chỉ với keep_master_weights=True❌
FP-Quantfp_quantTrong khi tải4CUDA, XPU✅Chỉ với store_master_weights=True❌
GGUFggufChỉ dành cho đã lượng tử hóa1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptqTrong khi tải, với hiệu chuẩn2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggsTrong khi tải2, 3, 4CUDA✅❌❌
HQQhqqTrong khi tải1, 2, 3, 4, 8CUDA, XPU✅✅❌
MetalmetalTrong khi tải2, 4, 8MPS✅❌❌
MXFP4mxfp4Trong khi tải4CUDA (khả năng tính toán 7.5+), XPU, CPU✅❌❌
NVFP4nvfp4Trong khi tải4Một GPU Blackwell❌❌✅
QuantoquantoTrong khi tải2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
QuarkquarkChỉ dành cho đã lượng tử hóaĐặt theo checkpointCUDA, ROCm, CPU❌❌❌
SINQsinqTrong khi tải2, 3, 4, 6, 8Một GPU CUDA, CPU✅✅❌
SpQRspqrChỉ dành cho đã lượng tử hóa3CUDA✅❌❌
torchaotorchaoTrong khi tải4, 8CUDA, XPU, CPU✅Chỉ các phương án 8-bit✅
VPTQvptqChỉ dành cho đã lượng tử hóa1–8CUDA✅❌❌

Kiểm tra bộ nhớ bằng trình chọn lượng tử hóa

Trình chọn lượng tử hóa ước tính xem một mô hình có vừa với phần cứng của bạn ở mỗi độ chính xác hay không, bao gồm cả bộ đệm KV. Hãy chọn một mô hình, phần cứng của bạn và những gì bạn cần phương pháp đó thực hiện, sau đó giao diện So sánh sẽ liệt kê các phương pháp phù hợp.

Benchmarks

Các benchmark dưới đây so sánh một số phương pháp trên Llama 3.1 8B và 70B. Chúng báo cáo độ chính xác, thông lượng tính bằng token mỗi giây, bộ nhớ đỉnh tính bằng GB và thời gian lượng tử hóa.

Llama 3.1 70B ở bf16 được chạy trên 2 GPU NVIDIA A100 80GB. Các phương pháp FP8 được chạy trên 1 GPU NVIDIA H100 80GB, và tất cả các phương pháp còn lại được chạy trên 1 GPU NVIDIA A100 80GB. Thông lượng được đo ở batch size 1, tạo ra 64 token. Kết quả bao gồm torch.compile và các kernel Marlin khi phương pháp hỗ trợ chúng.

Kết quả được nhóm thành ba khoảng bit.

BitsCác phương pháp được đánh giáBộ nhớ so với bf16Độ chính xác
8bitsandbytes int8, HQQ, Quanto, torchao, FP8Nhỏ hơn khoảng 2 lầnRất gần với bf16
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQNhỏ hơn khoảng 4 lầnCao. AWQ và GPTQ thường dẫn đầu nhưng cần hiệu chuẩn.
Dưới 4VPTQ, AQLM, 2-bit GPTQNhỏ hơn hơn 4 lầnGiảm hiệu suất rõ rệt, đặc biệt ở 2 bits. AQLM và VPTQ mất rất nhiều thời gian để lượng tử hóa.

Đo lường độ chính xác và tốc độ trên chính tác vụ và phần cứng của bạn trước khi chọn phương pháp cho môi trường sản xuất.

Update on GitHub