LLM 인터뷰 단골 질문: KV 캐시에는 왜 K와 V만 저장하고 Q는 저장하지 않을까?
KV 캐시의 구조적 이유를 설명하는 기술적 인사이트. 모델 최적화 및 추론 아키텍처 이해에 유용함.
요약
LLM은 자기회귀(autoregressive) 모델 특성상 이전 토큰들을 바탕으로 다음 토큰을 순차적으로 생성한다. 추론 과정은 전체 프롬프트를 한 번에 처리하는 'Prefill' 단계와 이후 토큰을 하나씩 생성하는 단계로 나뉘는데, 마지막 생성 단계에서는 오직 마지막 토큰의 은닉 상태(hidden state)만 필요하다. 어텐션 연산 시 마지막 행의 출력은 해당 시점의 Query와 이전 모든 토큰의 Key, Value 벡터에 의해 결정된다. 즉, 새로운 토큰 생성 시점마다 새로운 Query 벡터가 필요하고 이전 Query들은 재사용되지 않기 때문에 KV 캐시는 Key와 Value 벡터만 저장한다. 이를 통해 불필요한 계산을 줄이고 효율적인 다음 토큰 생성이 가능하다.
AI가 원문을 요약한 내용으로, 부정확할 수 있습니다.
원문 제목 @_avichawla: Why KV cache stores K and V vectors but never Q? (a popular technical LLM interview question) LLMs are autoregressive so each toke
원문 보기 ↗