Intel 양자화 지원

Intel 양자화 지원 (Intel Quantization Support)

인텔 플랫폼에서 모델을 돌리는 분들, 특히 2~3비트 극저비트 양자화에도 정확도를 유지하고 싶다면 AutoRound를 눈여겨볼 만해요. AutoRound는 인텔이 대형 언어 모델(LLM)용으로 만든 고급 양자화 알고리즘으로, Intel® Neural Compressor의 일부이기도 하죠. 이 페이지에서 vLLM에서 AutoRound 모델을 만들고 배포하는 흐름을 살펴볼게요.

출처: vLLM 공식 문서 — Intel Quantization Support

주요 특징 (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

더 알아보기 (Learn more)