피드로 돌아가기
Dev.toAI/ML
원문 읽기
MTP 최적화를 통한 llama.cpp 추론 처리량 1.7배 개선
Why MTP doesn't speed up your llama.cpp inference (and how to actually fix it)
AI 요약
Context
Speculative Decoding 방식의 MTP 도입을 통해 단일 Forward Pass에서 다수 토큰 생성을 통한 추론 가속을 시도함. 그러나 Acceptance Rate 저하, VRAM 부족, CUDA Graph 재캡처 등의 병목으로 인해 실제 환경에서 기대 성능 미달 및 속도 저하 현상이 발생함.
Technical Solution
- Acceptance Rate 60% 미만 시 발생하는 추가 연산 비용 제거를 위한 Draft Window 최적화
- KV Cache Thrashing 방지를 위한 Context Length 축소 및 Quantization 레벨 조정을 통한 VRAM Headroom 확보
- Dynamic Shape으로 인한 CUDA Graph 재캡처 오버헤드 해결을 위한 최신 패딩 캡처 로직 적용
- Draft-max 설정을 4에서 2로 하향 조정하여 예측 정확도 및 수락률을 70% 이상으로 상향
- Quantization으로 인한 MTP Head 성능 저하를 방지하기 위한 모델 가중치-헤드 간 정밀도 정합성 검증
실천 포인트
1. Verbose 로그를 통해 n_accept 비율이
0.6 이상인지 확인
2. VRAM 사용률 95% 초과 시 Context Size 축소 또는 Q4_K_M 등 더 공격적인 Quantization 적용
3. GGML_CUDA_DISABLE_GRAPHS=1 설정 후 성능 변화를 측정하여 CUDA Graph 재캡처 여부 진단
4. Draft length를 1~2개로 낮춰 Acceptance Rate 상승 여부 검토