EXL2
EXL2
GPTQ 최적화 방법에 기반하지만 혼합 양자화 레벨(mixed quantization levels)을 사용하는 더 최신 포맷이에요. GPTQ와 같거나 비슷한 비트레이트를 유지하면서 더 작은 오류로 평균 목표 비트레이트를 달성해요. VRAM 사용량은 약간 더 높을 수 있지만 추론 속도와 품질이 더 좋아요.
출처: 문서
본문
exllamav2로 양자화하기
짧은 데모로 Mistral 7B를 양자화해 볼게요!
exllamav2와 필요한 의존성을 설치할게요.
!git clone https://github.com/turboderp/exllamav2
!(cd exllamav2 && pip install -r requirements.txt && pip install .)
모든 게 설치되면 모델을 다운로드할 수 있어요.
model_id = "mistralai/Mistral-7B-Instruct-v0.3"
user_name = "huggingface_username"
hf_token = "read_token"
!git lfs install
!git clone https://{user_name}:{hf_token}@huggingface.co/{model_id}
이제 양자화할 차례예요! 비트레이트 4.0으로 진행해 볼게요.
model_name = model_id.split('/')[-1]
quant_bpw = 4.0
!mkdir temp
!python exllamav2/convert.py \
-i {model_name} \
-o temp/ \
-cf {model_name}-exl2/{quant_bpw}bpw/ \
-b {quant_bpw}
모델이 양자화되어 저장됐어요! 다음과 같이 테스트해 볼 수 있어요:
!python exllamav2/test_inference.py -m {model_name}-exl2/{quant_bpw}bpw -p "Once upon a time,"