[AI] llama-quantize로 직접 양자화 실행

늘 공부하는 괴짜·2025년 6월 2일
1

AI : Quantization

목록 보기
3/3
post-thumbnail

이전에는 gguf 로 변환하면서 양자화를 옵션으로 추가할 수 있었다.
이와 똑같이 llama-quantize 로 양자화를 할 수 있다.

1. 허깅페이스에서 받은 모델을 gguf 로 변환

--outtype 옵션 없이 그대로 진행

% ./convert_hf_to_gguf.py ./models/EXAONE-3.5-2.4B-Instruct --outfile ./models/EXAONE-3.5-2.4B-Instruct/EXAONE-3.5-2.4B-Instruct.gguf

2. 양자화 진행

% ./bin/llama-quantize models/EXAONE-3.5-2.4B-Instruct/EXAONE-3.5-2.4B-Instruct.gguf models/EXAONE-3.5-2.4B-Instruct/EXAONE-3.5-2.4B-Instruct.Q8_0.gguf Q8_0  

2-1. 양자화 옵션

용도에 따라서 Legacy Quant 나 K‑Quants 를 사용하면 되겠다.

분류예시 옵션비트특징
Floating-pointF32, F1632,16비양자화
Legacy QuantQ8_0, Q4_0, Q4_1, Q5_0, Q5_14–8블록 기반 단순 양자화
K‑QuantsQ2_K_S, Q3_K_S, Q4_K_M, Q5_K_M, Q6_K2‑6개선 스케일 + 블록 구조
I‑QuantsIQ2_XXS, IQ2_XS, IQ3_S, IQ3_M2‑4테이블룩업 + 고정밀
실험적row-wise, non-linear, k-means연구 단계

2-2. 변환 결과

Legacy Quant 나 K‑Quants 중 몇개 골라서 변환해 보았다.

3. 결과

quant size 가 2437.71MB 로 약 2GB 정도 줄었다.

4. 양자화 모델 추론 테스트

4-1. Q8_0

4-2. Q4_0

지리적 특징 정보에 오답이 많이 발견되었다.

4-3. Q4_K_M

4-4. Q5_K_M

5. 모델 벤치마크 - llama-bench

% ./bin/llama-bench -m ./models/EXAONE-3.5-2.4B-Instruct/EXAONE-3.5-2.4B-Instruct_<양자화 옵션>.gguf
modelsizeparamsbackendthreadspp512 t/stg128 t/s
exaone ?B Q4_01.32 GiB2.41 BMetal,BLAS4207.21 ± 0.0633.23 ± 0.10
exaone ?B Q4_K - Medium1.39 GiB2.41 BMetal,BLAS4191.75 ± 0.8530.26 ± 0.05
exaone ?B Q5_K - Medium1.61 GiB2.41 BMetal,BLAS4183.32 ± 0.7826.84 ± 0.02
exaone ?B Q8_02.38 GiB2.41 BMetal,BLAS4206.59 ± 0.0320.60 ± 0.02
exaone ?B F164.48 GiB2.41 BMetal,BLAS4214.79 ± 0.9911.83 ± 0.14

모델 선택 시 tg128이 너무 낮으면 실사용 시 "버벅임"을 느낀다.
tg128 ≥ 15 tok/s 정도면 인터랙티브 대화가 꽤 부드럽고,
pp512 ≥ 100 tok/s이면 긴 지시문도 빠르게 소화한다.

profile
인공지능이라는 옷을 입었습니다. 뭔가 멋지면서도 잘 맞습니다.

0개의 댓글