Transformers documentation

방법 선택

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

방법 선택

체크포인트가 이미 양자화되어 있다면, 체크포인트가 메서드를 결정합니다. 사전 양자화 체크포인트 로드에 나와 있는 대로 로드하세요. 그렇지 않다면, 하드웨어와 로드 후 모델에 수행할 작업에 따라 메서드를 선택하세요.

목표에서 시작

각 행은 먼저 시도할 첫 번째 방법을 권장합니다. 하나를 선택하기 전에 전체 비교 테이블을 확인하세요.

목표시작하기왜
최소한의 설정으로 더 적은 메모리에 모델을 학습시키세요bitsandbytes로딩 시 보정 없이 4비트 또는 8비트로 양자화하며, CUDA, XPU, HPU, CPU에서 실행되고 저장 및 미세 조정을 지원합니다.
QLoRA로 Fine-tunebitsandbytesPEFT와 함께 4-bit NF4를 지원합니다. HQQ, EETQ, GPTQ, SINQ, Quanto도 fine-tuning을 지원합니다.
torch.compile로 추론 속도 향상torchaogenerate는 정적 캐시를 사용하여 torchao 모델을 자동으로 컴파일하며, torchao에는 CUDA, XPU, CPU를 위한 int4, int8, FP8 스킴이 있습니다.
4-bit 정확도를 최대한 확보하는 방법GPTQ로딩 중에 데이터셋으로 보정합니다. 대신 AWQ 또는 AutoRound를 사용하려면 해당 라이브러리로 양자화한 후 체크포인트를 로드하세요.
Ada, Hopper 또는 Intel XPU에서 FP8 실행세밀한 FP8CUDA 컴퓨트 기능 8.9 이상 또는 XPU가 필요합니다. FBGEMM FP8은 컴퓨트 기능 9.0 이상 또는 XPU가 필요합니다.
Blackwell에서 FP4 실행NVFP4로딩 시 NVIDIA의 4비트 부동소수점 형식으로 양자화합니다. MXFP4는 compute capability 7.5 이상, XPU, CPU에서 실행됩니다.
Apple silicon에서 실행Metal로딩 시 MPS에서 2, 4, 또는 8비트로 양자화합니다. GGUF 파일도 MPS에서 로드할 수 있습니다.
llm-compressor로 만든 체크포인트를 로드합니다compressed-tensorscompressed-tensors 형식의 FP8, int4, int8 체크포인트를 로드합니다.
4비트 미만으로 압축HQQ 또는 SINQ교정 없이 로딩 중에 2비트 또는 3비트로 양자화합니다. AQLM, VPTQ, SpQR 체크포인트는 더 낮은 비트 수로 양자화할 수 있지만, 각자의 라이브러리를 사용하여 양자화해야 합니다.
Show the full comparison table
메서드quant_method워크플로Bits하드웨어저장파인튜닝자동 컴파일
AQLMaqlm사전 양자화 전용1–2CUDA, CPU✅✅ aqlm>=1.0.2 사용 시❌
AutoRoundauto-round사전 양자화 전용2–8CUDA, XPU, CPU✅❌❌
AWQawq사전 양자화 전용4CUDA, ROCm, XPU, CPU✅ ExLlama 백엔드 제외✅ gptqmodel>=5.0.0 사용 시❌
BitNetbitnet사전 양자화 전용1.58CUDA✅online 모드에서 autobitlinear만❌
bitsandbytesbitsandbytes로딩 중4, 8CUDA, XPU, HPU, CPU✅✅❌
compressed-tensorscompressed-tensors사전 양자화 전용체크포인트로 설정CUDA, XPU, MPS, CPU✅✅ FP8 커널 제외✅
EETQeetq로딩 중8CUDA✅✅❌
FBGEMM FP8fbgemm_fp8로딩 중8CUDA (compute capability 9.0 이상), XPU✅❌❌
세밀한 FP8fp8, mxfp8로딩 중8CUDA(컴퓨트 기능 8.9 이상), XPU✅❌✅
Four Over Sixfouroversix로딩 중4CUDA(Blackwell에서 가장 빠름), CPU✅keep_master_weights=True인 경우에만❌
FP-Quantfp_quant로딩 중4CUDA, XPU✅store_master_weights=True인 경우에만❌
GGUFgguf사전 양자화 전용1–8CUDA, MPS, XPU, CPU❌❌✅
GPTQgptq로딩 중, 교정 사용2, 3, 4, 8CUDA, ROCm, XPU, CPU✅✅❌
HIGGShiggs로딩 중2, 3, 4CUDA✅❌❌
HQQhqq로딩 중1, 2, 3, 4, 8CUDA, XPU✅✅❌
Metalmetal로딩 중2, 4, 8MPS✅❌❌
MXFP4mxfp4로딩 중4CUDA (compute capability 7.5 이상), XPU, CPU✅❌❌
NVFP4nvfp4로딩 중4Blackwell GPU 1개❌❌✅
Quantoquanto로딩 중2, 4, 8CUDA, MPS, XPU, CPU❌✅❌
Quarkquark사전 양자화 전용체크포인트로 설정CUDA, ROCm, CPU❌❌❌
SINQsinq로딩 중2, 3, 4, 6, 8CUDA GPU 1개, CPU✅✅❌
SpQRspqr사전 양자화 전용3CUDA✅❌❌
torchaotorchao로딩 중4, 8CUDA, XPU, CPU✅8비트 방식만✅
VPTQvptq사전 양자화 전용1–8CUDA✅❌❌

양자화 선택기로 메모리 확인

양자화 선택기는 KV 캐시를 포함하여 각 정밀도에서 모델이 사용자의 하드웨어에 맞는지 추정합니다. 모델, 하드웨어, 그리고 해당 메서드가 수행해야 할 작업을 선택하면 비교 뷰에서 조건에 맞는 메서드들이 나열됩니다.

벤치마크

아래 벤치마크는 Llama 3.1 8B와 70B에서 여러 방법을 비교합니다. 정확도, 초당 토큰 수로 측정된 처리량, GB 단위의 피크 메모리, 양자화 시간을 보고합니다.

Llama 3.1 70B는 bf16로 2개의 NVIDIA A100 80GB GPU에서 실행되었습니다. FP8 방법은 1개의 NVIDIA H100 80GB GPU에서, 그 외 모든 방법은 1개의 NVIDIA A100 80GB GPU에서 실행되었습니다. Throughput은 batch size 1, 64 tokens 생성 조건에서 측정되었습니다. 결과는 해당 방법이 지원하는 경우 torch.compile과 Marlin kernels을 포함합니다.

결과는 세 개의 비트 범위로 그룹화됩니다.

Bits벤치마크된 방법메모리 vs. bf16정확도
8bitsandbytes int8, HQQ, Quanto, torchao, FP8약 2배 더 작음bf16과 매우 유사
4AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQ약 4배 더 작음높음. AWQ와 GPTQ가 종종 앞서지만 보정이 필요합니다.
4 미만VPTQ, AQLM, 2-bit GPTQ4배 이상 작음2비트에서 특히 눈에 띄는 성능 저하가 발생합니다. AQLM과 VPTQ는 양자화에 상당한 시간이 소요됩니다.

프로덕션에 사용할 방법을 선택하기 전에, 자체 작업 및 하드웨어에서 정확도와 속도를 벤치마크하세요.

Update on GitHub