피드로 돌아가기
Dev.toAI/ML
원문 읽기
KV Cache 최적화를 통한 LLM 추론 속도 향상 및 메모리 병목 해결
Why KV Cache Matters — How MQA, GQA, and MLA Make LLM Inference Faster
AI 요약
Context
Autoregressive generation 특성상 매 토큰 생성 시 이전 컨텍스트의 중복 계산이 발생하는 비효율성 존재. 단순 KV Cache 도입으로 계산 비용은 줄였으나, 컨텍스트 길이 증가에 따라 GPU 메모리 점유율이 급증하는 새로운 병목 지점 발생.
Technical Solution
- KV Cache 도입을 통한 이전 토큰의 Key/Value 텐서 재사용 및 신규 토큰의 QKV만 계산하는 구조 설계
- MHA의 개별 헤드별 K/V 저장 방식에서 탈피하여 메모리 오버헤드 최소화 추구
- 모든 헤드가 단일 K/V 쌍을 공유하는 MQA 설계를 통해 캐시 크기를 극단적으로 축소
- 헤드를 그룹 단위로 나누어 K/V를 공유하는 GQA를 통해 MHA의 표현력과 MQA의 효율성 간 균형 확보
- K/V 정보를 압축된 Latent form으로 저장하고 필요 시 복원하는 MLA 구조로 Long-context 추론 효율 극대화
- 메모리 제약 조건에 따른 K/V 공유 전략 선택으로 Serving Cost 및 Max Context Length 최적화
실천 포인트
- GPU 메모리 부족 시 MHA에서 GQA/MQA로의 아키텍처 전환 검토 - Long-context 지원이 필수적인 서비스의 경우 Latent Compression 기반의 MLA 도입 고려 - 추론 시스템 설계 시 단순 Latency뿐 아니라 Batch Size와 KV Cache 간의 메모리 트레이드오프 분석