멀티모달 LLM 추론에서 KV Cache 양자화 탐구
Exploring KV Cache Quantization in Multimodal Large Language Model Inference
TL;DR Highlight
이미지 포함 멀티모달 LLM의 KV Cache를 양자화해 첫 토큰 응답속도 1.7배, 출력속도 4.3배 빠르게 만드는 방법.
Who Should Read
고해상도 이미지 처리 시 GPU 메모리 부족이나 응답 지연을 겪는 멀티모달 LLM 서비스 개발자. KV Cache 오프로드 비용을 줄이고 싶은 MLOps 엔지니어.
Core Mechanics
- 멀티모달 LLM은 고해상도 이미지 처리 시 KV Cache(어텐션 연산 중간 결과 저장소)가 폭발적으로 커져 GPU 메모리를 초과, CPU로 오프로드하면서 지연이 발생함
- 텍스트 토큰 위주 보존 전략: 전체 토큰 중 10%만 고정밀도(FP16)로 유지하고, 나머지 90%(주로 이미지 토큰)는 낮은 비트 수로 양자화
- 이미지 토큰은 텍스트 토큰보다 정밀도 손실에 덜 민감하다는 특성을 활용해 선택적 양자화를 적용
- CPU-GPU 혼합 시스템에서 KV Cache 전송량을 줄여 TTFT(첫 토큰 응답 시간)와 TPOT(토큰 생성 간격) 모두 대폭 단축
- 정확도 손실은 무시할 수준으로, 성능을 희생하지 않고 속도·메모리 효율을 동시에 개선
Evidence
- TTFT(Time-To-First-Token, 첫 토큰까지 걸리는 시간) 1.7배 단축
- TPOT(Time-Per-Output-Token, 토큰당 생성 시간) 4.3배 단축
- 전체 토큰의 10%만 고정밀도로 유지해도 정확도 손실이 무시할 수준
How to Apply
- 멀티모달 추론 파이프라인에서 KV Cache 저장 시, 텍스트 토큰은 FP16 유지, 이미지 토큰은 INT4/INT8로 양자화하는 혼합 정밀도 전략을 도입
- CPU 오프로드를 사용하는 heterogeneous 시스템이라면, 이미지 토큰 KV Cache를 양자화해 CPU-GPU 전송 데이터량을 줄이고 대역폭 병목을 완화
- 고해상도 이미지를 많이 처리하는 VQA, 문서 이해, 영상 분석 서비스에서 응답 지연 개선을 위해 우선 적용 검토
Code Example
# 개념적 적용 예시 (PyTorch pseudo-code)
import torch
def mixed_precision_kv_cache(keys, values, text_token_mask, quant_bits=4):
"""
text_token_mask: True인 위치는 텍스트 토큰 (상위 10%)
이미지 토큰은 낮은 비트로 양자화
"""
# 텍스트 토큰: 고정밀도 유지
keys_text = keys[text_token_mask] # FP16 그대로
values_text = values[text_token_mask]
# 이미지 토큰: INT4 양자화
keys_img = keys[~text_token_mask]
values_img = values[~text_token_mask]
scale_k = keys_img.abs().max() / (2 ** (quant_bits - 1) - 1)
keys_img_q = (keys_img / scale_k).round().to(torch.int8)
scale_v = values_img.abs().max() / (2 ** (quant_bits - 1) - 1)
values_img_q = (values_img / scale_v).round().to(torch.int8)
return {
"keys_text": keys_text,
"values_text": values_text,
"keys_img_quantized": keys_img_q,
"keys_img_scale": scale_k,
"values_img_quantized": values_img_q,
"values_img_scale": scale_v,
}Terminology
Original Abstract (Expand)
Multimodal large language models (MLLMs) have demonstrated strong performance across modalities, such as image, video, and audio understanding, by leveraging large language models (LLMs) as a backbone. However, a critical challenge in MLLM inference is the large memory capacity required for the key–value (KV) cache, particularly when processing high-resolution images. This pressure often forces heterogeneous CPU–GPU systems to offload the KV cache to CPU memory, introducing substantial transfer latency. KV cache quantization is a promising way to reduce this memory demand, yet it remains underexplored for MLLM inference. In this work, we characterize MLLM inference and present a text-centric KV cache quantization method that retains only 10% of tokens in high precision while quantizing the rest. Our method reduces Time-To-First-Token (TTFT) by <inline-formula><tex-math notation="LaTeX">$1.7\times$</tex-math><alternatives><mml:math><mml:mrow><mml:mn>1</mml:mn><mml:mo>.</mml:mo><mml:mn>7</mml:mn><mml:mo>×</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="rhu-ieq1-3646170.gif"/></alternatives></inline-formula> and Time-Per-Output-Token (TPOT) by <inline-formula><tex-math notation="LaTeX">$4.3\times$</tex-math><alternatives><mml:math><mml:mrow><mml:mn>4</mml:mn><mml:mo>.</mml:mo><mml:mn>3</mml:mn><mml:mo>×</mml:mo></mml:mrow></mml:math><inline-graphic xlink:href="rhu-ieq2-3646170.gif"/></alternatives></inline-formula>, with negligible accuracy loss.