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,"

더 알아보기 (Learn more)