5장. 양자화, 모델 다이어트의 마법
이 장의 목표
Q4_K_M,Q5_K_M,Q8_0같은 파일 이름이 무슨 뜻인지 모두 읽히게 됩니다.그리고 어떤 양자화를 받아야 하는지 자신 있게 고를 수 있게 됩니다.
5.1 양자화가 뭔가?
모델 안의 숫자(파라미터)는 원래 고정밀 실수 입니다.
3.141592653589793
-0.000273841920
2.718281828459045
...
이런 숫자가 수십~수백억 개 들어있습니다.
문제는 이걸 고정밀로 저장하면 너무 큽니다.
그래서 사람들이 생각했습니다.
“어차피 마지막 자리 몇 개는 결과에 영향이 거의 없는데, 좀 잘라서 저장하면 안 될까?”
이게 양자화입니다.
[원본 FP16] [Q4 양자화]
3.141592653589793 → 3.14
-0.000273841920 → 0
2.718281828459045 → 2.72
비유하자면:
사진을 16비트 RAW로 저장하다가 JPEG로 압축한 것과 비슷합니다.
약간의 화질 손실은 있지만, 사람이 보기엔 거의 차이가 없습니다.
5.2 비트 수와 메모리
4장에서 본 식의 핵심 변수입니다.
필요 메모리 ≈ 파라미터 수 × 비트 수 / 8
| 양자화 | 한 숫자가 차지하는 크기 | 32B 기준 가중치 |
|---|---|---|
| FP16 / BF16 | 16비트 | 약 64GB |
| Q8 | 8비트 | 약 32GB |
| Q6 | 6비트 | 약 24GB |
| Q5 | 5비트 | 약 20GB |
| Q4 | 4비트 | 약 16GB |
| Q3 | 3비트 | 약 12GB |
| Q2 | 2비트 | 약 8GB |
비트가 줄면 메모리가 줄지만 품질 손실도 커집니다.
5.3 품질-메모리 그래프
대충 이런 모양입니다.
품질
↑
│ FP16 ●━━━━━━━━━━━━━━━━━ (거의 100%)
│ │
│ Q8 ● (99%+)
│ │
│ Q6 ● (98%)
│ │
│ Q5 ● (96%)
│ │
│ Q4 ● (93%) ★ 실사용 균형점
│ │
│ Q3 ● (85%)
│ │
│ Q2 ● (60~70%, 종종 망가짐)
│ │
└───────●─────────────────────→ 메모리 사용량
여기서 보이는 게 있죠.
- FP16 → Q8 으로만 줄여도 메모리가 절반
- 품질 손실은 1~2% 수준에 불과
- Q4 까지는 거의 일직선 으로 효율적
- Q3 이하 부터는 손실이 가파르게 커짐
5.4 Q4_K_M 같은 이름은 또 뭔가
GGUF 파일을 받다 보면 이런 이름을 봅니다.
Qwen3-32B-Instruct-Q4_K_M.gguf
Q4 까지는 알겠는데 K_M 이 뭘까요?
같은 4비트여도 압축 방법이 여러 가지이기 때문입니다.
| 접미사 | 의미 | 한 줄 평 |
|---|---|---|
Q4_0 | 가장 단순한 4비트 | 옛날 방식, 잘 안 씀 |
Q4_1 | 약간 개선 | 거의 안 씀 |
Q4_K_S | K-quant Small | 작지만 품질 약간 손해 |
Q4_K_M | K-quant Medium | 표준 권장 |
Q4_K_L | K-quant Large | Q5에 가까움 |
고민될 때 답
Q4_K_M또는Q5_K_M둘 중 하나만 받으세요. 95% 경우 정답입니다.
K 는 일종의 “더 똑똑한 양자화 알고리즘“이고,
S/M/L 은 그 안에서도 더 적게/중간/많이 정보를 보존한다는 뜻입니다.
5.5 그러면 뭘 받아야 하는가
내 맥 메모리에 따라 답이 정해집니다.
핵심 원칙
메모리에 여유가 있으면 한 단계 위 양자화를 선택 같은 모델이라면 Q5_K_M > Q4_K_M > Q3_K_M 순으로 더 좋음
모델 크기별 추천
| 내 맥 메모리 | 7B | 14B | 32B | 70B |
|---|---|---|---|---|
| 16GB | Q5_K_M | Q4_K_M | ❌ | ❌ |
| 24GB | Q6_K | Q5_K_M | ❌ | ❌ |
| 32GB | Q8_0 | Q6_K | Q4_K_M | ❌ |
| 48GB | Q8_0 | Q8_0 | Q5_K_M | ❌ |
| 64GB | Q8_0 | Q8_0 | Q4_K_M~Q5_K_M | Q4_K_M (체험용) |
| 96GB+ | FP16 | Q8_0 | Q6_K | Q5_K_M |
한 줄 정리
- 이 책의 표준 환경(64GB 맥) 에서는
32B-Q4_K_M또는32B-Q5_K_M이 메인. - 빠른 응답이 필요하면
14B-Q5_K_M또는8B-Q8_0. - 70B는 체험용으로만.
5.6 양자화에 대한 흔한 오해
“Q4면 25% 성능밖에 안 나오는 거 아냐?”
아닙니다.
비트가 1/4 이 되었다고 지능이 1/4 이 되는 게 아닙니다.
실험적으로 Q4_K_M은 FP16 대비 체감 품질의 90~93% 정도를 유지합니다.
특히 일반 대화·요약·번역·코드 설명에서는 거의 차이를 못 느낍니다.
“그럼 Q2 받으면 70B도 돌릴 수 있겠네?”
이론상 가능하지만, Q2부터는 답이 자주 무너집니다.
- 같은 단어 반복
- 갑자기 영어/중국어 섞임
- 한국어 어순 망가짐
특히 한국어처럼 학습량이 영어보다 적은 언어는 저비트 양자화에서 먼저 깨집니다.
“양자화는 GPU 메모리 절약용 아닌가?”
GPU·CPU 가리지 않고 효과가 있습니다.
게다가 양자화된 모델은 메모리 대역폭 도 적게 씁니다. 즉 속도까지 빨라집니다.
이건 7장에서 다시 봅니다.
5.7 Apple Silicon에서의 양자화 — MLX 양자화 한마디
맥 전용 프레임워크 MLX 는 자체 양자화 형식을 씁니다.
GGUF의 Q4_K_M 에 해당하는 게
MLX에서는 보통 4bit 또는 q4 로 표기됩니다.
mlx-community/Qwen3-32B-Instruct-4bit
mlx-community/Qwen3-32B-Instruct-8bit
GGUF의 K_M 같은 세분화는 적지만
Apple Silicon에 더 최적화되어 있어서
같은 4bit여도 더 빠를 수 있습니다.
자세한 비교는 19장(MLX), 20장(백엔드 비교)에서.
이 장에서 기억할 한 가지
양자화 = 모델 안의 숫자를 더 적은 비트로 저장하는 압축 기술.
메모리·속도가 줄고, 품질 손실은 Q4까지는 거의 무시 가능합니다.
표준 추천:
Q4_K_M또는Q5_K_M.
손으로 해볼 것
1. 같은 모델의 양자화 버전 비교
Hugging Face에서 다음을 검색해보세요.
Qwen3-32B-Instruct GGUF
bartowski 나 unsloth 같은
유명 양자화 배포자의 페이지가 나옵니다.
Files 탭을 열면 같은 모델의 양자화 종류가 죽 나열되어 있습니다.
Q2_K → 약 12GB
Q3_K_M → 약 15GB
Q4_K_M → 약 20GB
Q5_K_M → 약 23GB
Q6_K → 약 27GB
Q8_0 → 약 35GB
이걸 보면서 “내 맥에는 어떤 게 맞을까” 혼자 답을 내보세요.
2. 받을 모델 1개 결정
내 맥 메모리 기준으로 실제로 받아볼 모델을 하나 정해두세요.
추천 후보:
- 64GB 맥 →
Qwen3-32B-Instruct-Q4_K_M - 32GB 맥 →
Qwen3-14B-Instruct-Q5_K_M - 16GB 맥 →
Qwen3-8B-Instruct-Q5_K_M
이건 17장에서 Ollama로 직접 받습니다.
다음 장에서는 컨텍스트 길이와 KV Cache 를 다룹니다.
“왜 긴 문서를 넣으니까 갑자기 느려지지?” 의 답이 거기 있습니다.