LLM 양자화 크기 계산기
GGUF 파일 크기 = 파라미터 × 비트당 실효값 ÷ 8입니다. llama.cpp가 측정한 4.89비트로 계산하면 Llama 3.1 8B Q4_K_M은 4.58 GiB, Q8_0은 7.95 GiB, F16은 14.96 GiB입니다(llama.cpp quantize README, 2026년 10월 16일 확인).
사용 방법
- 모델을 고르면 파라미터, 레이어, KV 헤드, 헤드 차원이 채워집니다. config.json 값을 직접 넣어도 됩니다.
- 컨텍스트 길이, KV 캐시 정밀도, 오버헤드 비율을 정합니다.
- 표에서 양자화별 비트당 실효값, 파일 크기, 총 메모리를 봅니다. 이름 옆 퍼센트는 F16 대비 크기입니다.
계산 방법
파일 크기 = 파라미터 × 비트당 실효값 ÷ 8. llama.cpp가 Llama 3.1 8B에서 잰 값을 씁니다: F16 16.00, Q8_0 8.50, Q6_K 6.56, Q5_K_M 5.70, Q4_K_M 4.89, Q3_K_M 4.00, Q2_K 3.16. 출처: ggml-org/llama.cpp 저장소 tools/quantize/README.md, 2026년 10월 16일 확인.
이름의 숫자보다 큰 이유는 K-quant가 가중치 블록마다 배율과 최솟값을 따로 저장하고, 임베딩·출력층 같은 일부 텐서를 더 높은 정밀도로 남기기 때문입니다. 파라미터 80.3억 개로 계산하면 Q4_K_M은 4.58 GiB로 README 값과 같습니다.
메모리 = 파일 크기 + KV 캐시 + 오버헤드. KV 캐시 = 2 × 레이어 × KV 헤드 × 헤드 차원 × 컨텍스트 × 값당 바이트로, GPU VRAM 계산기와 같은 식입니다. 오버헤드는 버퍼와 런타임 몫으로 직접 정하는 비율입니다.
결과는 GiB(2^30바이트)입니다. 다른 모델은 텐서 구성이 달라 실제 파일이 몇 퍼센트 다를 수 있습니다.
모델별 파일 크기
| 양자화 | Llama 3.1 8B | Qwen2.5 32B | Llama 3.1 70B |
|---|---|---|---|
| F16 | 14.96 GiB | 61.02 GiB | 131.41 GiB |
| Q8_0 | 7.95 GiB | 32.42 GiB | 69.82 GiB |
| Q6_K | 6.14 GiB | 25.03 GiB | 53.91 GiB |
| Q5_K_M | 5.33 GiB | 21.75 GiB | 46.84 GiB |
| Q4_K_M | 4.58 GiB | 18.67 GiB | 40.20 GiB |
| Q3_K_M | 3.74 GiB | 15.24 GiB | 32.82 GiB |
| Q2_K | 2.95 GiB | 12.05 GiB | 25.95 GiB |
무엇을 고를까
- Q4_K_M이 흔한 기본값입니다. 크기는 F16의 약 31%입니다.
- Q5_K_M과 Q6_K는 Q4_K_M보다 메모리를 16%, 34% 더 쓰고 원본 모델에 더 가깝습니다.
- Q8_0은 F16의 약 절반이며 품질이 F16에 가장 가깝습니다.
- Q3_K_M과 Q2_K는 큰 모델을 작은 카드에 올릴 때 쓰지만 품질 손실이 더 큽니다. llama.cpp README에 형식별 퍼플렉서티가 있습니다.
자주 묻는 질문
7B 모델은 Q4_K_M으로 얼마인가요?
파라미터 10억 개당 약 0.57 GiB라 70억 개면 약 3.99 GiB입니다. 72.5억 개인 Mistral 7B v0.3은 약 4.13 GiB입니다.
Q4_K_M은 왜 4비트보다 큰가요?
가중치 블록마다 배율 값을 따로 저장하고 일부 텐서는 높은 정밀도로 남기기 때문입니다. llama.cpp는 Llama 3.1 8B에서 가중치당 4.89비트를 측정했습니다.
70B 모델이 Q4_K_M으로 48 GB에 들어가나요?
파일이 약 40.2 GiB입니다. 컨텍스트 8,192토큰이면 KV 캐시 2.5 GiB가 더해지고 오버헤드 10%를 붙이면 약 47 GiB라 매우 빠듯합니다.
GPU VRAM 계산기와 무엇이 다른가요?
같은 메모리 식을 쓰지만 모든 GGUF 형식을 측정된 비트당 실효값으로 한 표에 놓아 한눈에 비교하게 했습니다.