Transformers documentation
방법 선택
시작하기
기본 클래스
모델
Preprocessors
추론
Pipeline API
Generate API
최적화
모델과 대화하기
서빙
학습
하드웨어
양자화
생태계 통합
리소스
API
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).
방법 선택
체크포인트가 이미 양자화되어 있다면, 체크포인트가 메서드를 결정합니다. 사전 양자화 체크포인트 로드에 나와 있는 대로 로드하세요. 그렇지 않다면, 하드웨어와 로드 후 모델에 수행할 작업에 따라 메서드를 선택하세요.
목표에서 시작
각 행은 먼저 시도할 첫 번째 방법을 권장합니다. 하나를 선택하기 전에 전체 비교 테이블을 확인하세요.
| 목표 | 시작하기 | 왜 |
|---|---|---|
| 최소한의 설정으로 더 적은 메모리에 모델을 학습시키세요 | bitsandbytes | 로딩 시 보정 없이 4비트 또는 8비트로 양자화하며, CUDA, XPU, HPU, CPU에서 실행되고 저장 및 미세 조정을 지원합니다. |
| QLoRA로 Fine-tune | bitsandbytes | PEFT와 함께 4-bit NF4를 지원합니다. HQQ, EETQ, GPTQ, SINQ, Quanto도 fine-tuning을 지원합니다. |
torch.compile로 추론 속도 향상 | torchao | generate는 정적 캐시를 사용하여 torchao 모델을 자동으로 컴파일하며, torchao에는 CUDA, XPU, CPU를 위한 int4, int8, FP8 스킴이 있습니다. |
| 4-bit 정확도를 최대한 확보하는 방법 | GPTQ | 로딩 중에 데이터셋으로 보정합니다. 대신 AWQ 또는 AutoRound를 사용하려면 해당 라이브러리로 양자화한 후 체크포인트를 로드하세요. |
| Ada, Hopper 또는 Intel XPU에서 FP8 실행 | 세밀한 FP8 | CUDA 컴퓨트 기능 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-tensors | compressed-tensors 형식의 FP8, int4, int8 체크포인트를 로드합니다. |
| 4비트 미만으로 압축 | HQQ 또는 SINQ | 교정 없이 로딩 중에 2비트 또는 3비트로 양자화합니다. AQLM, VPTQ, SpQR 체크포인트는 더 낮은 비트 수로 양자화할 수 있지만, 각자의 라이브러리를 사용하여 양자화해야 합니다. |
Show the full comparison table
| 메서드 | quant_method | 워크플로 | Bits | 하드웨어 | 저장 | 파인튜닝 | 자동 컴파일 |
|---|---|---|---|---|---|---|---|
| AQLM | aqlm | 사전 양자화 전용 | 1–2 | CUDA, CPU | ✅ | ✅ aqlm>=1.0.2 사용 시 | ❌ |
| AutoRound | auto-round | 사전 양자화 전용 | 2–8 | CUDA, XPU, CPU | ✅ | ❌ | ❌ |
| AWQ | awq | 사전 양자화 전용 | 4 | CUDA, ROCm, XPU, CPU | ✅ ExLlama 백엔드 제외 | ✅ gptqmodel>=5.0.0 사용 시 | ❌ |
| BitNet | bitnet | 사전 양자화 전용 | 1.58 | CUDA | ✅ | online 모드에서 autobitlinear만 | ❌ |
| bitsandbytes | bitsandbytes | 로딩 중 | 4, 8 | CUDA, XPU, HPU, CPU | ✅ | ✅ | ❌ |
| compressed-tensors | compressed-tensors | 사전 양자화 전용 | 체크포인트로 설정 | CUDA, XPU, MPS, CPU | ✅ | ✅ FP8 커널 제외 | ✅ |
| EETQ | eetq | 로딩 중 | 8 | CUDA | ✅ | ✅ | ❌ |
| FBGEMM FP8 | fbgemm_fp8 | 로딩 중 | 8 | CUDA (compute capability 9.0 이상), XPU | ✅ | ❌ | ❌ |
| 세밀한 FP8 | fp8, mxfp8 | 로딩 중 | 8 | CUDA(컴퓨트 기능 8.9 이상), XPU | ✅ | ❌ | ✅ |
| Four Over Six | fouroversix | 로딩 중 | 4 | CUDA(Blackwell에서 가장 빠름), CPU | ✅ | keep_master_weights=True인 경우에만 | ❌ |
| FP-Quant | fp_quant | 로딩 중 | 4 | CUDA, XPU | ✅ | store_master_weights=True인 경우에만 | ❌ |
| GGUF | gguf | 사전 양자화 전용 | 1–8 | CUDA, MPS, XPU, CPU | ❌ | ❌ | ✅ |
| GPTQ | gptq | 로딩 중, 교정 사용 | 2, 3, 4, 8 | CUDA, ROCm, XPU, CPU | ✅ | ✅ | ❌ |
| HIGGS | higgs | 로딩 중 | 2, 3, 4 | CUDA | ✅ | ❌ | ❌ |
| HQQ | hqq | 로딩 중 | 1, 2, 3, 4, 8 | CUDA, XPU | ✅ | ✅ | ❌ |
| Metal | metal | 로딩 중 | 2, 4, 8 | MPS | ✅ | ❌ | ❌ |
| MXFP4 | mxfp4 | 로딩 중 | 4 | CUDA (compute capability 7.5 이상), XPU, CPU | ✅ | ❌ | ❌ |
| NVFP4 | nvfp4 | 로딩 중 | 4 | Blackwell GPU 1개 | ❌ | ❌ | ✅ |
| Quanto | quanto | 로딩 중 | 2, 4, 8 | CUDA, MPS, XPU, CPU | ❌ | ✅ | ❌ |
| Quark | quark | 사전 양자화 전용 | 체크포인트로 설정 | CUDA, ROCm, CPU | ❌ | ❌ | ❌ |
| SINQ | sinq | 로딩 중 | 2, 3, 4, 6, 8 | CUDA GPU 1개, CPU | ✅ | ✅ | ❌ |
| SpQR | spqr | 사전 양자화 전용 | 3 | CUDA | ✅ | ❌ | ❌ |
| torchao | torchao | 로딩 중 | 4, 8 | CUDA, XPU, CPU | ✅ | 8비트 방식만 | ✅ |
| VPTQ | vptq | 사전 양자화 전용 | 1–8 | CUDA | ✅ | ❌ | ❌ |
양자화 선택기로 메모리 확인
양자화 선택기는 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 | 정확도 |
|---|---|---|---|
| 8 | bitsandbytes int8, HQQ, Quanto, torchao, FP8 | 약 2배 더 작음 | bf16과 매우 유사 |
| 4 | AWQ, GPTQ, HQQ, bitsandbytes NF4, SINQ | 약 4배 더 작음 | 높음. AWQ와 GPTQ가 종종 앞서지만 보정이 필요합니다. |
| 4 미만 | VPTQ, AQLM, 2-bit GPTQ | 4배 이상 작음 | 2비트에서 특히 눈에 띄는 성능 저하가 발생합니다. AQLM과 VPTQ는 양자화에 상당한 시간이 소요됩니다. |
Update on GitHub프로덕션에 사용할 방법을 선택하기 전에, 자체 작업 및 하드웨어에서 정확도와 속도를 벤치마크하세요.