용어 해설
- 키-값 캐시(KV Cache)
- — Transformer의 autoregressive 디코딩에서 이전 토큰의 key와 value를 저장해 재계산을 피하는 구조이다. 토큰 수에 비례해 메모리가 선형 증가하므로 긴 컨텍스트에서는 메모리 병목이 된다. 이 논문에서는 해당 캐시를 고정 예산으로 압축하는 문제를 다룬다.
- 미래 주의 질량(Future-Attention)
- — 어떤 과거 토큰이 보호 윈도우를 벗어난 이후 향후 쿼리들로부터 받는 누적 attention 확률의 합이다. 이 값이 크면 해당 토큰이 장기적 유용성을 가진 것으로 간주된다. KVpop은 이 값을 학습 타깃으로 사용해 어떤 토큰을 유지할지 결정한다.
- 전치 주의 연산(Transposed-Attention)
- — 쿼리와 키의 역할을 바꿔 열 단위의 합산을 계산하는 추가적인 attention 호출이다. 이 방식을 통해 전체 S×S 밀집 행렬을 만들지 않고도 각 키에 대한 미래 주의 질량을 병렬로 복구한다. 학습 단계에서만 호출되어 추론 오버헤드를 남기지 않는다.
- 펜윅 트리(Fenwick Tree)
- — 정적 우선순위에 따라 토큰 순위를 유지하고 쿼리별로 k번째 컷오프 순위를 온라인으로 계산하는 자료구조이다. 단일 토큰이 참여할 때마다 순위를 삽입·조회하여 쿼리마다 재정렬 비용을 피한다. KVpop은 이를 이용해 running top-k를 효율적으로 구현한다.
코드 예제
1: student model f_theta, dense teacher f_theta_bar
2: sequence x_{1:S}, budget (s,w,k)
3: H^0 <- Embed(x_{1:S})
4: L_score <- 0
5: for l = 1,...,L do
6: (Q^l,K^l,V^l) <- Proj^l(H^{l-1})
7: rhat^l <- Scorer^l(K^l,V^l)
8: r^l(q) <- ApplyDecay(rhat^l,q)
9: M^l <- TopKMask(r^l,s,w,k)
10: (H^l, LSE_tilde^l) <- SparseAttn(Q^l,K^l,V^l,M^l)
11: r_tgt^l <- FutureTarget(Q^l,K^l,LSE_tilde^l,w)
12: L_score <- L_score + BndLoss(r^l, r_tgt^l, s, w, k)
13: end for
14: L_score <- L_score / L
15: L <- KL(f_theta_bar(x_{1:S}) || LMHead(H^L)) + L_score
16: Update theta using grad_theta L
17: return L이 코드는 논문의 Algorithm 1에 해당하는 훈련 스텝 의사코드로, KVpop 스코어러 학습 루프와 경계 손실 계산, 전치 주의로 타깃을 계산하는 흐름을 보여준다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.




