피드로 돌아가기
Dev.toAI/ML
원문 읽기
KV Cache 분석을 통한 LLM VRAM OOM의 구조적 원인 규명
How much VRAM do you actually need to run Llama 3 or Gemma locally?
AI 요약
Context
단순 모델 파라미터 기반의 VRAM 예측으로 인한 런타임 OOM 발생 빈번. Weights 크기 외에 Context Length에 비례하여 증가하는 KV Cache의 메모리 점유 특성을 간과한 설계 한계 존재.
Technical Solution
- Weights, KV Cache, Overhead(CUDA context, Activations)의 3단계 메모리 모델 정의
- Weights 계산 시 Quantization(FP16, Q4_K_M 등) 수준에 따른 Byte/weight 가중치 적용
- KV Cache 규모를 (2 × layers × kv_dim × context_length × bytes_per_element) 공식으로 정량화
- Grouped-Query Attention 적용 여부에 따른 KV dimension 차이가 VRAM 점유율에 미치는 영향 분석
- Llama 3와 Gemma 2의 아키텍처 차이(Layer 수, Head dimension)로 인한 메모리 프로파일 불일치 검증
- 예측 가능성 확보를 위한 전체 메모리 요구량에 10%의 Overhead 버퍼 설계
실천 포인트
- [ ] 모델 다운로드 전 Quantization 레벨에 따른 Weights 크기 산정 - [ ] 최대 허용 Context Length에 따른 KV Cache 필요량 계산 - [ ] CUDA context 및 fragmentation 대비 10% 이상의 메모리 여유 공간 확보 - [ ] OOM 발생 시 Context Window 축소 또는 KV Cache FP8 양자화 적용 검토