dev.Log
모델 양자화(Quantization)란? 본문
Llama 3.1 8B Q2_K.gguf 파일 크기 계산해보기
LLM을 직접 서빙하거나 llama.cpp 기반 추론을 해보다 보면
다음과 같은 파일을 자주 접하게 된다.
이런 모델을 쓰다 보면 자연스럽게 궁금해진다.
“8B 모델을 2비트로 양자화했는데,
왜 파일 크기는 정확히 이 정도가 나오는 걸까?”
이 글에서는
- 모델 양자화(Quantization)의 개념
- GGUF 포맷과 Q2_K의 의미
- LLM 양자화 모델 파일 크기 계산 방법
을 실제 Llama 3.1 8B 기준으로 정리한다.
1. 모델 양자화(Quantization)란?
모델 양자화(Quantization)는
딥러닝 모델의 가중치(Weights)와 연산을 더 적은 비트 수로 표현하는 기법이다.
일반적으로 학습된 모델은 다음과 같은 정밀도를 사용한다.
- FP32 (32비트 부동소수점)
- FP16 / BF16 (16비트)
양자화는 이를 다음과 같이 줄인다.
- INT8
- 4bit
- 3bit
- 2bit 계열
즉,
같은 모델 구조를 유지한 채
가중치 표현 방식만 바꿔
메모리 사용량과 연산 비용을 줄이는 것
이 핵심이다.
2. 왜 LLM에서 양자화를 할까?
대규모 언어 모델(LLM)에서는 양자화가 거의 필수다.
1️⃣ 모델 크기 축소
- 8B, 70B 같은 모델은 FP16 기준으로도 수십~수백 GB
- 양자화 없이는 개인 서버나 단일 GPU에서 실행 불가
2️⃣ 메모리 사용량 감소
- GPU VRAM / 시스템 RAM 요구량 감소
- 온프렘, 엣지, 단일 노드 환경에서 중요
3️⃣ 추론 속도 개선 (환경에 따라)
- 메모리 대역폭 병목이 큰 경우 효과적
- 특히 CPU 추론에서 체감 큼
4️⃣ 전력·운영 비용 절감
- 더 작은 인스턴스로 서비스 가능
3. 파일명으로 보는 Llama 양자화 모델 구조
예시 모델:
| Meta-Llama-3.1 | Meta에서 공개한 LLaMA 3.1 모델 |
| 8B | 파라미터 수 약 80억 (8 Billion) |
| Instruct | 사용자 질문 응답용으로 fine-tuning된 모델 |
| Q2_K | llama.cpp의 K-quant 계열 2bit 양자화 |
| .gguf | GGUF 포맷 (llama.cpp 추론용 포맷) |
4. GGUF와 Q2_K 양자화의 실제 의미
여기서 가장 많이 오해되는 부분이 있다.
❌ “Q2_K = 모든 가중치를 2비트로 저장”
⭕ “블록 단위 2bit 압축 + 메타데이터 포함”
Q2_K는 llama.cpp의 K-quant 계열 중 하나로,
- 가중치를 블록 단위로 묶고
- 각 블록마다
- 스케일(scale)
- 보정 값
- 클러스터 정보
를 함께 저장한다.
즉,
가중치 자체는 2bit 수준으로 줄이지만
품질을 유지하기 위한 부가 정보가 반드시 포함된다.
그래서 “2bit × 파라미터 수”로 계산한 값보다
실제 파일 크기는 항상 더 커진다.
5. Llama 3.1 8B Q2_K 모델 파일 크기 계산
5-1. 이론적 최소 크기 (비현실적인 값)
- 파라미터 수: 8B
- 2bit 가정 시:
👉 이 값은 이론적 최저치다.
실제 GGUF 모델에는 해당되지 않는다.
5-2. 현실적인 계산 방식 (실무 기준)
실제 모델 크기는 이렇게 생각하는 게 정확하다.
- BPW (Bits Per Weight):
실제 가중치 1개당 평균 비트 수 - Q2_K는 “2bit 계열”이지만
실제 BPW는 2보다 크다 - 이유: 블록 스케일, 클러스터, 메타데이터
그래서 결과적으로:
Q2_K 8B 모델은
대략 2GB 초반 ~ 3GB 전후 크기가 되는 것이 정상
(정확한 값은 모델 구조/텐서 분해 방식에 따라 달라진다)
6. 파일 크기 ≠ 실행 시 메모리 사용량
이건 반드시 짚고 가야 한다.
✔ 모델 파일 크기
- 디스크에 저장된 GGUF 파일 크기
- 가중치 + 메타데이터
✔ 실행 시 메모리 사용량
- 모델 로드 메모리
- KV Cache
- 런타임 버퍼 / 워크스페이스
특히 LLM에서는:
- 컨텍스트 길이 (8k / 16k / 32k)
- 동시 세션 수
- batch size
에 따라 KV Cache 메모리가 급격히 증가한다.
그래서 흔히 이런 상황이 발생한다.
“모델 파일은 3GB인데
실행하면 10GB 이상 메모리를 사용한다”
이는 정상이다.
7. 정리
- Q2_K는 “단순 2bit 모델”이 아니다
- 실제 파일 크기는
- 파라미터 수
- 실제 BPW
- 블록 메타데이터
영향을 받는다
- 모델 파일 크기와 실행 메모리는 완전히 다른 개념
- LLM 운영에서는 KV Cache까지 포함해 메모리를 설계해야 한다
마무리
LLM 양자화 모델의 크기를 이해하면
- 어떤 양자화 레벨을 선택할지
- 어떤 하드웨어에서 운영 가능한지
- 성능과 품질의 트레이드오프를 어디서 가져갈지
를 훨씬 명확하게 판단할 수 있다.
'인공지능' 카테고리의 다른 글
| RAG 캐시 (0) | 2025.11.21 |
|---|---|
| 임베딩 생성과 모달 정렬의 차이 (RAG와 LLM-ASR 관점에서) (0) | 2025.07.14 |
| 프롬프팅 확장 테크닉 (2) | 2024.12.14 |
| 프롬프팅테크닉 (1) | 2024.11.19 |
| CTC (Connectionist Temporal Classification) (2) | 2024.11.18 |