정의

트랜스포머에서 하나의 토큰이 입력 임베딩부터 출력 로짓까지 거치는 일련의 변환 과정을 ‘토큰의 여정’이라 하며, 이 과정에서 KV cache는 생성된 모든 이전 토큰의 Key-Value 쌍을 저장하는 동적 메모리 구조인 ‘기억의 궁전’ 역할을 한다. 토큰은 autoregressive 방식으로 이전 토큰들의 KV cache를 참조하며 자신의 hidden state를 갱신한다.

핵심 속성

  • autoregressive 생성: 각 토큰은 이전에 생성된 모든 토큰의 정보를 바탕으로 다음 토큰을 예측하며, 이 ‘삶’이 반복되어 문장이 완성된다.
  • hidden state (residual stream): 토큰은 임베딩된 후 각 레이어를 통과하며 델타(변화량)가 누적된다. residual connection은 초기 의미를 유지하면서 정보를 추가한다.
  • KV cache: prefill 단계에서 시스템 프롬프트와 유저 프롬프트가 병렬로 처리되어 쌓이며, 이후 각 생성 단계마다 새로운 K, V가 추가된다. 이는 시퀀스 길이에 비례하여 커지는 기억 구조물이다.
  • soft lookup: attention과 feed-forward network 모두 하나의 정답을 고르는 hard lookup이 아니라, 여러 후보를 가중합하여 혼합물을 만든다. (Andrej Karpathy의 표현)
  • MoE (Mixture of Experts): 각 레이어에 다수의 expert(예: 384개)가 있고, 라우터가 현재 hidden state에 적합한 top-k(예: 8개)를 선택하여 연산한다. FFN과 유사한 soft lookup이지만 파라미터 효율적으로 확장된다.
  • KV cache vs MoE: MoE 연산은 기록을 남기지 않고, 오직 attention의 KV만이 기억 구조물을 형성한다. 이는 ‘소통(attention) → 생각(FFN/MoE)‘의 반복으로 이해할 수 있다.

관계

인용

“KV cache가 자라나는 기억의 궁전이고 파라미터는 움직이지 않는 지형인데 KV cache는 거기에서 자라나는 기억의 궁전이고 토큰은 그 둘 사이를 오가는 순례자다.”

출처

클리핑 · youtu.be