파인튜닝 하드웨어의 모든 질문은 하나의 산수로 환원된다: 파라미터당 몇 바이트를 쓰는가. 이 시리즈는 "내 CPU/GPU로 뭐가 되나"를 숫자로 답하는 실전편이다. 첫 글은 그 기초 대수 — 이것만 알면 어떤 모델이 어떤 하드웨어에 들어가는지 암산할 수 있다.
파라미터당 바이트 사다리
- 추론: fp16 = 2B/파라미터 (7B 모델 → 14GB), 4비트 양자화(Q4/GGUF) = ~0.57B (7B → ~4.6GB). 출처: EleutherAI Transformer Math 101.
- Full fine-tuning: 혼합정밀 기준 ~18B/파라미터 — 가중치 6B(fp16 사본 2 + fp32 마스터 4) + Adam 상태 8B + 그래디언트 4B (HF 공식 분해). 즉 7B 모델 full FT = 126GB+, 4B 모델을 배치 16으로 돌리면 ~85GB. 소비자 GPU에서는 불가능하다.
- LoRA (16-bit): ~2.5B/파라미터 (7B → ~19GB). 어댑터만 학습하므로 12B/파라미터짜리 Adam 세금이 거의 0이 된다 — 이것이 LoRA가 통하는 이유의 전부다 (LoRA 논문: 학습 파라미터 1/10000, 어댑터 파일은 수십 MB).
- QLoRA (4-bit): ~0.6-0.75B/파라미터. base를 NF4로 동결하고 그 위에 어댑터 (QLoRA: 65B를 48GB GPU 한 장에, 33B를 24GB에).
암기할 표 — QLoRA/LoRA 최소 VRAM (Unsloth 공식)
- 3B → 3.5 / 8 GB · 7B → 5 / 19 GB · 8B → 6 / 22 GB
- 14B → 8.5 / 33 GB · 32B → 26 / 76 GB · 70B → 41 / 164 GB (앞이 QLoRA, 뒤가 16-bit LoRA)
- 어림법: QLoRA VRAM ≈ 파라미터(B) × 0.6 GB. OOM의 최다 원인은 배치 크기 — 1~3에서 시작하라.
학습이 아니라 서빙이 문제일 때 — KV 캐시
추론 VRAM의 복병은 가중치가 아니라 KV 캐시다. 토큰당 비용 = 2 × 레이어 수 × KV 헤드 수 × 헤드 차원 × 정밀도 바이트 (NVIDIA 공식 공식). 예: Llama-3-8B(GQA)는 토큰당 128KB → 8K 컨텍스트 ≈ 1GB, 128K ≈ 17GB. vLLM의 PagedAttention이 유명해진 이유가 이것이다 — 순진한 할당은 KV 메모리의 60-80%를 낭비한다(vLLM).
속도의 물리학 — 대역폭이 전부다
배치 1 생성 속도는 계산이 아니라 메모리 대역폭에 묶인다: tokens/s ≈ (대역폭 × ~0.65) ÷ 모델 파일 크기 (추론 광속 유도). 듀얼채널 DDR4(51GB/s)로 7B Q4 → 7-8 t/s, RTX 4090(1,008GB/s) → 10배. 이 공식 하나가 시리즈 전체를 관통한다.
정리
한 줄 교훈: 학습 메모리의 주범은 옵티마이저 상태와 활성화, 서빙 메모리의 주범은 KV 캐시다 — 가중치가 제일 싸다. 그래서 처방은 QLoRA + gradient checkpointing + 배치 1-2, 그리고 서빙에서는 파라미터 수가 아니라 컨텍스트 길이를 예산하라. 다음 글: 그럼 CPU만으로는 어디까지 되나.
— LoRA 실전 시리즈 ① / 다음 글: CPU로 어디까지 되나
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.