Intel 양자화 지원
Intel 양자화 지원 (Intel Quantization Support)
인텔 플랫폼에서 모델을 돌리는 분들, 특히 2~3비트 극저비트 양자화에도 정확도를 유지하고 싶다면 AutoRound를 눈여겨볼 만해요. AutoRound는 인텔이 대형 언어 모델(LLM)용으로 만든 고급 양자화 알고리즘으로, Intel® Neural Compressor의 일부이기도 하죠. 이 페이지에서 vLLM에서 AutoRound 모델을 만들고 배포하는 흐름을 살펴볼게요.
주요 특징 (Key features)
AutoRound는 효율적인 INT2, INT3, INT4, INT8, MXFP8, MXFP4, NVFP4, 그리고 GGUF 양자화 모델을 만들어내는데, 정확도와 추론 성능의 균형이 좋아요. 핵심 특징만 정리하면:
- ✅ 2~3비트에서도 강한 정확도 (예시 모델)
- ✅ 빠른 혼합
Bits/Dtypes스킴 생성 (몇 분 안에 자동 구성) - ✅ AutoRound, AutoAWQ, AutoGPTQ, GGUF 포맷 내보내기 지원
- ✅ 10개 이상의 비전-언어 모델(VLM) 지원
- ✅ 세밀한 제어를 위한 레이어별 혼합 비트 양자화
- ✅ 정확도 손실이 약간 있는 빠른 양자화용 RTN(Round-To-Nearest) 모드
- ✅ 여러 양자화 레시피(best, base, light)
- ✅ 즉시 패킹과 10개 이상 백엔드 지원 같은 고급 유틸리티
Intel 플랫폼의 지원 레시피 (Supported recipes on Intel platforms)
Intel 플랫폼에서는 AutoRound 레시피가 포맷과 하드웨어별로 점진적으로 활성화되고 있어요. 현재 vLLM이 지원하는 것은:
W4A16: 웨이트 온리, 4비트 웨이트 + 16비트 활성화W8A16: 웨이트 온리, 8비트 웨이트 + 16비트 활성화
추가 레시피와 포맷은 향후 릴리스에서 지원될 예정이에요.
모델 양자화 (Quantizing a model)
설치 (Installation)
uv pip install auto-round
CLI로 양자화 (Quantize with CLI)
auto-round \
--model Qwen/Qwen3-0.6B \
--scheme W4A16 \
--format auto_round \
--output_dir ./tmp_autoround
Python API로 양자화 (Quantize with Python API)
from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "Qwen/Qwen3-0.6B"
autoround = AutoRound(model_name, scheme="W4A16")
# 주석 처리된 줄들은 상황에 따른 옵션이에요.
# # 최고 정확도, 4-5X 느림, low_gpu_mem_usage는 ~20G 절약하지만 ~30% 느림
# # autoround = AutoRound(model, tokenizer, nsamples=512, iters=1000, low_gpu_mem_usage=True, bits=bits, group_size=group_size, sym=sym)
# # 2-3X 속도 향상, W4G128에서 정확도 약간 하락
# # autoround = AutoRound(model, tokenizer, nsamples=128, iters=50, lr=5e-3, bits=bits, group_size=group_size, sym=sym)
output_dir = "./tmp_autoround"
# format='auto_round'(기본), 'auto_gptq', 'auto_awq'
autoround.quantize_and_save(output_dir, format="auto_round")
vLLM에서 배포하기 (Deploying AutoRound models)
vllm serve Intel/DeepSeek-R1-0528-Qwen3-8B-int4-AutoRound \
--gpu-memory-utilization 0.8 \
--max-model-len 4096
참고: Intel GPU/CPU에서
wNa16모델을 배포할 때는 지금--enforce-eager를 추가해 줘야 해요.
vLLM으로 정확도 평가하기 (Evaluating the quantized model)
lm_eval을 vLLM 백엔드로 사용해서 정확도를 평가할 수 있어요.
lm_eval --model vllm \
--model_args pretrained="Intel/DeepSeek-R1-0528-Qwen3-8B-int4-AutoRound,max_model_len=8192,max_num_batched_tokens=32768,max_num_seqs=128,gpu_memory_utilization=0.8,dtype=bfloat16,max_gen_toks=2048,enforce_eager=True" \
--tasks gsm8k \
--num_fewshot 5 \
--batch_size 128