지연된 키·값 캐싱(Delayed KV Caching)이란, 일반적인 트랜스포머 디코딩 과정에서 매 토큰 생성마다 바로바로 키(Key)·값(Value) 행렬을 캐시에 추가·갱신하는 대신, 이 갱신 시점을 일부러 “지연”시켜 한 번에 묶어서 처리함으로써 메모리 I/O와 연산 오버헤드를 줄이는 기법입니다.
• 일반 KV 캐싱
트랜스포머 디코더는 새 토큰을 생성할 때마다 이전까지 계산된 모든 키·값 행렬을 다시 계산하지 않고, 캐시(특히 GPU 메모리)에 저장된 과거의 키·값을 재사용함으로써 매 단계의 연산량을 대폭 줄입니다. 이로 인해 5배 이상의 속도 향상이 가능해집니다.  
• 지연된 KV 캐싱의 핵심 아이디어
1. 버퍼링(Buffering): 새로 생성된 토큰의 키·값을 즉시 캐시에 반영하지 않고, 일정 개수(또는 일정 시간)만큼 모아서 한꺼번에 갱신
2. 메모리·연산 절감: 토큰 하나마다 GPU↔CPU 메모리 전송과 커널 호출을 반복하는 대신, 묶음 단위로 처리해 동기화·전송 횟수를 줄임
3. 성능 최적화: 오버헤드가 큰 빈번한 캐시 업데이트를 줄여 전체 추론 비용을 20–30% 정도 절감하면서도, 모델의 언어 이해·생성 성능에는 거의 영향이 없습니다.  

이러한 지연된 KV 캐싱 기법은 특히 “짧은 응답”을 빠르게 반복 생성하거나, 대용량 문맥을 자주 참조해야 하는 대화형 시스템에서 유용하며, Gemini 2.5 Flash처럼 비용과 응답 속도 최적화가 중요한 상업용 API에 적용되어 추론 비용을 크게 낮추는 데 기여합니다.

반응형

+ Recent posts