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일 확인).

비트당 실효값은 llama.cpp(Llama 3.1 8B) 기준, 확인일 2026-10-16. 추정치입니다.

문제가 해결됐나요?
Google 선호 출처로 추가

사용 방법

  1. 모델을 고르면 파라미터, 레이어, KV 헤드, 헤드 차원이 채워집니다. config.json 값을 직접 넣어도 됩니다.
  2. 컨텍스트 길이, KV 캐시 정밀도, 오버헤드 비율을 정합니다.
  3. 표에서 양자화별 비트당 실효값, 파일 크기, 총 메모리를 봅니다. 이름 옆 퍼센트는 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 8BQwen2.5 32BLlama 3.1 70B
F1614.96 GiB61.02 GiB131.41 GiB
Q8_07.95 GiB32.42 GiB69.82 GiB
Q6_K6.14 GiB25.03 GiB53.91 GiB
Q5_K_M5.33 GiB21.75 GiB46.84 GiB
Q4_K_M4.58 GiB18.67 GiB40.20 GiB
Q3_K_M3.74 GiB15.24 GiB32.82 GiB
Q2_K2.95 GiB12.05 GiB25.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 형식을 측정된 비트당 실효값으로 한 표에 놓아 한눈에 비교하게 했습니다.