name: llm-model-sizer description: > LLM 모델 파일 크기를 파라미터 수, 양자화 정밀도(FP32/FP16/BF16/INT8/GGUF Q4_K_M/Q5_K_M/Q8_0/GPTQ/AWQ), 파일 포맷(safetensors/GGUF/GPTQ/AWQ) 기반으로 계산. 양자화 옵션별 비교표 생성 및 PVC 스토리지 권장 크기 제공. MoE(Mixture of Experts) 모델의 총 파라미터와 활성 파라미터 분리 지원. 사용 시점: (1) Kubernetes LLM 배포용 PVC 스토리지 계획, (2) 모델 다운로드 전 양자화 트레이드오프 비교, (3) HuggingFace/Ollama 모델 스토리지 요구사항 추정, (4) vLLM, llama.cpp 등 LLM 서빙 플랫폼용 파일 크기 계산.
LLM Model Sizer
파라미터 수, 양자화, 파일 포맷 기반으로 LLM 모델 파일 크기 및 스토리지 요구사항 계산.
빠른 시작
모델 파라미터 수로 계산 스크립트 실행:
# 기본 7B 모델 비교
python scripts/calculate_model_size.py 7
# MoE 모델 (예: Mixtral 8x7B: 총 47B, 활성 13B)
python scripts/calculate_model_size.py 47 --moe --active-params 13
# 특정 양자화 선택
python scripts/calculate_model_size.py 3 --quants BF16 Q4_K_M GPTQ-4bit
# 사용 가능한 양자화 방법 목록
python scripts/calculate_model_size.py --list-quants
출력 내용:
- 각 양자화별 모델 가중치 크기
- 파일 포맷 메타데이터 오버헤드
- PVC 최소(1.5x) 및 권장(2.5x) 크기
사용 시점
다음 상황에서 사용:
- PVC 스토리지 계획: Kubernetes LLM 배포
- 양자화 옵션 비교: 모델 다운로드 전
- 비용 추정: 클라우드 스토리지 (AWS EBS, GCP PD, Ceph RBD)
- 인프라 사이징: Phase 3 동적 모델 온보딩
지원 포맷
Full Precision:
- FP32 (4 bytes/param): 연구/학습용
- FP16 (2 bytes/param): 표준 PyTorch
- BF16 (2 bytes/param): HuggingFace 기본값
GGUF (llama.cpp/Ollama):
- Q4_K_M (0.62 bytes/param): 권장 기본값
- Q5_K_M (0.74 bytes/param): 프리미엄 품질
- Q8_0 (1.14 bytes/param): 거의 무손실
GPU 양자화 (vLLM):
- GPTQ-4bit (0.55 bytes/param): 빠른 추론
- AWQ-4bit (0.55 bytes/param): 더 나은 품질
MoE 모델 지원
Mixture of Experts 모델 (예: Qwen2-57B-A14B, Mixtral-8x7B):
--moe와--active-params둘 다 지정- 파일 크기 = 총 파라미터 (스토리지 요구사항)
- VRAM 사용량 = 활성 파라미터 (추론 메모리)
예시:
# Qwen2-57B-A14B (총 57B, 토큰당 활성 14B)
python scripts/calculate_model_size.py 57 --moe --active-params 14
참조 파일
상세 정보:
- quantization-reference.md: 모든 양자화 방법의 파라미터당 바이트, 품질 손실 지표
- format-overhead.md: 포맷별 메타데이터 오버헤드, PVC 사이징 공식
- real-world-examples.md: HuggingFace/Ollama 실제 모델 크기 (검증된 측정값)
Kubernetes PVC 사이징
최소 (모델 크기의 1.5x):
- 단일 모델 버전에 딱 맞음
- 다운로드 버퍼 여유 없음
권장 (모델 크기의 2.5x):
- 20% 다운로드 버퍼 포함
- 모델 업데이트 공간
- 프로덕션에 안전
보수적 (모델 크기의 3x):
- 여러 모델 버전
- A/B 테스트 시나리오
예시 워크플로우
Issue #44 PVC 전략 배포 계획 시:
- 모델 식별: "Llama-3.2-3B-Instruct"
- 파라미터 확인: 3B
- 계산 실행:
python scripts/calculate_model_size.py 3 - 출력 검토:
- BF16 safetensors: 5.59 GB → PVC 권장: 14.15 Gi
- Q4_K_M GGUF: 1.73 GB → PVC 권장: 4.33 Gi
- GPTQ-4bit: 1.54 GB → PVC 권장: 4.21 Gi
- 결정: vLLM용 GPTQ-4bit 사용 → 10 Gi PVC 할당 (보수적)
주요 모델 빠른 참조
| 모델 | 파라미터 | GPTQ 4-bit | BF16 | 권장 PVC |
|---|---|---|---|---|
| Llama-3.2-3B | 3B | ~1.5 GB | ~5.6 GB | 10 Gi |
| Mistral-7B | 7B | ~3.6 GB | ~13 GB | 15 Gi |
| Qwen3-4B | 4B | ~2.0 GB | ~7.5 GB | 10 Gi |
| Gemma2-9B | 9B | ~4.5 GB | ~17 GB | 20 Gi |
전체 검증된 크기 표는 real-world-examples.md 참조.