CriticalKV: 출력 섭동 관점에서 KV 캐시 축출을 최적화하기
📜

CriticalKV: 출력 섭동 관점에서 KV 캐시 축출을 최적화하기

Tags
KVcache
Attention
NLP
AI
Published
August 25, 2026
Author

초록

대규모 언어 모델은 자연어 처리에 혁신을 가져왔지만, 트랜스포머 아키텍처가 셀프 어텐션에 의존하는 탓에, 특히 긴 시퀀스 추론에서 KV 캐시가 커지면서 저장 비용과 실행 비용이 크게 늘어나는 문제를 안고 있다. 최근에는 어텐션 가중치를 근거로 덜 중요한 항목을 솎아내 KV 캐시 크기를 줄이려는 시도가 이어졌으나, 이들은 경험적 수준에 머물러 형식적 근거가 없다. 이 논문은 어텐션 출력 섭동(output perturbation)을 분석함으로써 중요(critical) KV 캐시 항목을 식별하는 문제를 형식적으로 다룬다. 우리의 분석이 밝혀낸 바에 따르면, 어텐션 가중치를 넘어 KV 항목 내부의 값 상태(value state)와 사전학습된 파라미터 행렬 또한 결정적인 역할을 한다. 이를 토대로 우리는 최악의 경우 출력 섭동을 최적화해 중요 항목을 식별하는 섭동 제약 선택(perturbation-constrained selection) 알고리즘을 제안한다. 우리 알고리즘은 계산 부담이 거의 없는 범용 플러그앤플레이 개선책임을 보인다. 서로 다른 세 LLM에서 최신 캐시 축출 기법 세 가지와 결합했을 때, 우리 알고리즘은 Ruler와 LongBench 벤치마크의 29개 데이터셋 전반에 걸쳐 압축 손실을 평균 절반 이상 줄였다. 헤드 수준과 층 수준 모두에서 수행한 추가 섭동 분석은 우리 방법이 효과를 내는 원리를 뒷받침한다. 이 연구는 캐시 축출에 형식적으로 근거를 갖춘 새로운 관점을 제시하며, 앞으로의 연구에 유망한 길을 연다. 코드는 https://github.com/FFY0/DefensiveKV에서 공개한다.

1. 서론

트랜스포머 아키텍처를 쓰는 대규모 언어 모델(LLM)은 챗봇(Achiam et al., 2023; Yi et al., 2024)이나 지능형 에이전트(Wang et al., 2024) 같은 여러 과제에서 뛰어난 성과를 냈다. 그러나 트랜스포머의 셀프 어텐션 메커니즘에 내재된 이차(quadratic) 계산 비용은 실제 배포에 큰 걸림돌이 된다. 이를 완화하려고 LLM은 흔히 키-값(Key-Value, KV) 캐시를 쓴다. KV 캐시는 셀프 어텐션의 중간 결과를 저장하는 장치로, 각 KV 캐시 항목은 과거 토큰 하나의 KV 상태에 대응하며, 덕분에 자기회귀 생성 과정에서 재계산을 건너뛸 수 있다. 그런데 시퀀스 길이가 늘어나면 캐시 항목 수가 급격히 불어난다. 이는 GPU 메모리 부담을 키울 뿐 아니라 I/O 지연도 크게 늘려, 실제 배포를 어렵게 만든다(Sun et al., 2024a; Zhang et al., 2026).
최근 연구는 KV 캐시 항목 가운데 일부만이 셀프 어텐션 출력에 실질적으로 기여한다는 사실을 밝혀냈다(Zhang et al., 2024b; Liu et al., 2024b; Tang et al., 2024a). 그 결과 캐시 축출(cache eviction)이라 불리는 여러 기법이 개발됐다. 이들은 추론 중 중요하지 않은 항목을 버려서 KV 캐시 크기를 주어진 예산 안에 맞춘다. 이 방법들은 GPU 메모리를 효과적으로 아끼고 이후 디코딩 속도를 높인다. 특히 H2O(Zhang et al., 2024b)와 Scissorhands(Liu et al., 2024b)는 어텐션 가중치가 멱법칙(power-law) 분포를 따른다는 점을 관찰했다. 소수의 KV 캐시 항목이 어텐션 가중치의 대부분을 일관되게 차지하는데, 이는 추론 과정에서 캐시 항목이 얼마나 중요한지와 밀접하게 맞물린다. 이들 방법은 누적 어텐션 가중치를 활용해 중요 캐시 항목을 식별하고 보존하는 틀을 제시했다. 이를 발전시킨 후속 연구들(Adnan et al., 2024; Li et al., 2024; Feng et al., 2024; Fu et al., 2024)은 어텐션 가중치 누적 방식을 다듬고 풀링이나 예산 배분 같은 연산을 더해 핵심 정보를 더 잘 보존하려 했다. 하지만 이들은 대체로 어텐션 가중치가 높은 항목—KV 캐시의 키 상태와 대상 쿼리 상태 사이의 유사도로 정해지는—이 곧 중요한 항목이라고 가정할 뿐, “중요 캐시 항목”이 무엇인지 식별하고 규정하는 작업은 형식화되지 않은 채로 남아 있다. 이 가정은 두 가지 핵심 질문을 부른다.
Figure 1
Figure 1
Figure 1
그림 1. 우리 알고리즘은 기존 캐시 축출 기법 세 가지의 손실을 평균 절반 이상 줄인다. (캐시 크기 40%에서 측정했으며, 다른 크기는 실험 절 참조.) (a) Ruler 13개 데이터셋 평균 손실. (b) Longbench 16개 데이터셋 평균 손실.
무엇이 중요 KV 캐시를 결정하는 기준인가?어텐션 가중치만으로 중요 캐시 항목을 식별하기에 충분한가?
이 논문에서 우리는 캐시 축출에서의 중요 항목 식별 문제를 출력 섭동의 관점에서 정의한다. 이 접근은 KV 캐시 축출 손실이 어텐션 출력의 변화에서 비롯된다는 핵심 통찰에 근거한다. 따라서 우리의 일차 목표는 전체 KV 캐시를 중요 항목만으로 대체할 때 생기는 이 섭동을 최소화하는 것이다. 이를 형식화하려고 우리는 최악의 경우 섭동을 상계로 묶어 실제 최적화를 이끄는 이론적 틀을 도입한다. 구체적으로는 섭동을 정량화하려고 단순한 거리를 채택하고 그 상계를 유도하는데1, 이 상계가 곧 최악의 경우 섭동에 해당한다. 우리의 분석이 드러내듯이 이 상계는 어텐션 가중치와 파라미터 행렬을 거쳐 투영된 값 상태 양쪽 모두의 영향을 받는다. 이 통찰을 바탕으로 우리는 유도된 상계를 최소화하도록 설계된 섭동 제약 선택 알고리즘을 제안한다. 이 알고리즘은 어텐션 가중치에만 기대는 방식을 넘어서며, 그동안 간과돼 온 값 상태와 사전학습 파라미터 행렬의 중요성을 부각한다.
우리는 이 알고리즘을 최신(SOTA) 캐시 축출 기법 세 가지—SnapKV(Li et al., 2024), AdaKV(Feng et al., 2024), HeadKV(Fu et al., 2024)—에 이식해, 어텐션 가중치에만 의존하던 이들의 전략을 대체했다2. Ruler와 LongBench의 29개 데이터셋에 대한 종합 평가 결과는 그림 1에 정리했는데, 우리 방법이 범용 개선책으로 작동해 축출 후 생성 품질을 크게 끌어올림을 보여준다. 이어지는 실증 분석은 우리 알고리즘의 실질적 이점을 확인하고 그 이유를 설명한다. (1) Llama 모델 어텐션 헤드의 92% 이상에서 출력 섭동을 효과적으로 줄인다. (2) 그 이점이 층을 거치며 누적되어, 최종 층 은닉 상태의 섭동을 크게 낮춘다. (3) 다양한 캐시 크기에서 일관되게 잘 작동하여, 실제 응용의 서로 다른 자원 제약 아래에서도 품질 손실을 견고하게 완화한다. 우리의 기여를 정리하면 다음과 같다.
  1. 우리는 현행 캐시 축출 기법들이 중요 KV 캐시 항목을 식별하는 결정적 문제를 소홀히 다뤄 왔음을 짚는다. 이를 해결하려고 중요도를 판정하는 기준으로 출력 섭동을 쓸 것을 제안한다. 우리 분석은 어텐션 가중치만으로는 불충분하며, 파라미터 행렬로 투영된 값 상태 또한 필수임을 보인다.
  1. 최악의 경우 출력 섭동이라는 제약을 토대로, 우리는 범용 개선책으로 쓸 수 있는 새로운 중요 항목 선택 알고리즘을 제안한다. 최신 축출 기법 세 가지와 결합했을 때, Ruler와 LongBench 벤치마크의 29개 데이터셋에서 세 LLM에 걸쳐 압축 손실을 평균 절반 이상 줄임을 확인했다(그림 1).
  1. 추가 실증 분석으로 섭동 제약 선택 알고리즘의 이점을 검증하고 확인한다. 이 분석은 또한 출력 섭동이라는 이론적 관점에서 중요 캐시 선택을 최적화할 여지가 상당함을 부각한다.

2. 관련 연구

섭동 기반 분석(Perturbation-based analysis) 은 신경망 해석과 가지치기(pruning) 분야에서 눈에 띄는 성과를 거뒀다. 예컨대 Catformer(Davis et al., 2021)와 Admin(Liu et al., 2020)은 출력 섭동 분석을 활용해 더 안정적인 네트워크 구조를 만들고 학습 기법을 개선한다. 마찬가지로 가지치기 기법들(Han et al., 2015; Frantar & Alistarh, 2023)은 Wanda(Sun et al., 2024b)를 대표 사례로 하여, 제거해도 출력에 미치는 영향이 가장 작은 뉴런을 식별해 네트워크 파라미터를 줄이는 것을 목표로 한다. 이 논문에서 우리는 효율적 LLM 추론에서 캐시 축출을 위한 더 효과적인 선택 지표를 개발하려는 목적으로 출력 섭동을 분석한 첫 사례를 제시한다.
KV 캐시 축출(KV cache eviction) 은 중요한 KV 캐시 항목만 남기고 비핵심 항목을 버려 캐시 크기를 줄임으로써, LLM에서 긴 시퀀스 추론을 효율적으로 만드는 것을 목표로 한다. 초기 기법(Xiao et al., 2023)은 슬라이딩 윈도 안의 최근 항목을 보존했는데, 긴 시퀀스에서 중요한 정보를 잃을 위험이 있었다. H2O(Zhang et al., 2024b)나 Scissorhands(Liu et al., 2024b) 같은 기법은 누적 어텐션 점수를 써서 핵심 항목을 식별하고 결정적인 문맥을 유지하려 했다. 후속 연구들(Ge et al., 2024b; Adnan et al., 2024; Ge et al., 2024a; Li et al., 2024)이 이 방법들을 다듬었고, 그중 SnapKV(Li et al., 2024)는 관측 윈도 기반 어텐션 가중치 누적과 풀링 연산을 도입해 SOTA 성능을 달성했다. 그러나 이들 기법은 대체로 경험적이다. 중요 항목을 식별할 때 오직 어텐션 가중치에만 의존한다. 우리 논문은 출력 섭동 관점의 심층 분석에 기반한 새로운 섭동 제약 선택 알고리즘을 제시한다. 이 알고리즘은 기존 캐시 축출 기법의 누적 절차를 바꾸지 않고 매끄럽게 통합된다. 덧붙여, 예산 배분 최적화 분야의 최근 진전들(Yang et al., 2024a; Zhang et al., 2024a; Fu et al., 2024; Xiao et al., 2024a; Zhang et al., 2025b)—헤드 특성에 맞춰 예산을 적응적으로 배분하는 AdaKV[(Feng et al., 2024)]나, 세밀한 오프라인 프로파일링으로 배분을 이끄는 HeadKV(Fu et al., 2024) 같은—은 우리 접근법과 근본적으로 직교한다. 우리는 폭넓게 실증하려고 이 세 가지 대표적 캐시 축출 계열—SnapKV, AdaKV, HeadKV—에 우리 알고리즘을 결합했고, 셋 모두에서 상당한 이득을 관찰했다.

3. 중요 KV 캐시 항목 선택

중요 캐시 항목 선택에서 우리의 목표는, 셀프 어텐션 계산 과정에서 KV 캐시 전체를 대표하면서 동일하지는 않더라도 근사에 가까운 출력을 내는 캐시 항목을 고르는 것이다. 이 통찰에 근거해 우리는 §3.2에서 출력 섭동의 관점으로 중요 캐시 항목 식별 문제를 형식화한다(정의 3.1). 이어서 §3.3에서 출력 섭동을 형식화하고 그 상계를 유도한다. 이 상계의 안내를 받아, 우리는 최악의 경우 섭동을 제약하는 2단계 탐욕(greedy) 알고리즘을 제안하고, 그 이론적 성질을 분석하며, SOTA 기법들과 결합한다.

3.1. 예비 지식

멀티헤드 셀프 어텐션 메커니즘을 쓰는 LLM은 자기회귀 생성 방식으로 동작한다. 이 설정에서 각 디코딩 단계는 가장 최근에 생성된 토큰을 활용해 다음 토큰을 예측한다. 이 과정을 설명하려고 어텐션 헤드 하나를 예로 든다. 를 시퀀스 내 모든 토큰의 임베딩 행렬이라 하고, 를 현재 시간 단계의 입력이 되는 가장 최근 토큰의 임베딩 벡터라 하자. 파라미터 행렬 는 토큰 임베딩을 헤드 차원 의 쿼리·키·값 상태로 각각 사상하는 데 쓰이며, 그 형태는 다음과 같다.
디코딩 단계에서는 이전에 생성된 토큰들(로 표현)의 키·값 상태가 KV 캐시에 저장되어 중복 계산을 없앤다. 이에 따라 가장 최근 토큰 에서 유도된 쿼리 는 캐시된 키 에 어텐션을 걸어 어텐션 가중치 를 계산한다. 이 가중치는 다시 캐시된 값 에 적용되어 중간 출력을 만든다. 이 중간 결과는 출력 파라미터 행렬 에 의해 셀프 어텐션 메커니즘의 최종 출력 로 변환된다.

3.2. 무엇이 중요 KV 캐시를 결정하는 기준인가?

최근 연구는 중요 KV 캐시 항목 중 극히 일부만이 어텐션 출력에 실질적으로 기여함을 보였다(Zhang et al., 2024b). 이 통찰은 중요하지 않은 KV 캐시 항목을 대거 축출해 추론 비용을 줄일 유망한 기회를 제공한다(Li et al., 2024; Zhang et al., 2024a; Feng et al., 2024; Ge et al., 2024b). 그러나 가장 큰 난제는 중요 KV 캐시 항목을 정확히 식별하는 일이다. 이상적으로 보면, 상위 수준에서 중요 KV 캐시 항목의 집합은 캐시 전체를 완전히 대표해야 하며, 주어진 쿼리 상태에서 선택된 항목들이 KV 쌍 전체와 동일한 어텐션 출력을 내도록 보장해야 한다. 실제로는 선택되는 중요 캐시 항목의 개수가 미리 정해진 예산에 의해 제약되며, 이 예산은 하위 배포 환경에서 쓸 수 있는 계산 자원과 밀접하게 연결된다. 따라서 우리의 목표는 이 근사 때문에 생기는 출력 섭동을 최소화하는 것이며, 이를 다음과 같이 재정식화할 수 있다.
정의 3.1 (중요 KV 캐시 식별 문제). 중요 캐시 예산 가 주어졌을 때, 전체 개의 캐시 항목 가운데 개의 중요 KV 캐시 항목 를 선택하되 어텐션 출력 의 섭동을 최소화하는 것이 과제다. 정량화에 거리 을 사용하여 목적함수를 다음과 같이 형식화한다. , 여기서 는 선택된 가 만들어내는 어텐션 출력을 나타낸다.

3.3. 어텐션 가중치만으로 중요 캐시 항목을 식별하기에 충분한가?

정의 3.1에 따르면 중요 KV 캐시 항목 식별의 목표는 섭동 을 최소화하는 것이다. 이를 달성하려고 우리는 덧셈형 마스킹 을 도입해, 중요하지 않은 캐시 항목의 기여가 최종 출력 에서 제거되는 상황을 모사하고, 그럼으로써 를 변화시킨다.
따라서 섭동 은 다음과 같이 더 전개할 수 있다.
정리 3.2. 마스크 을 원소별 곱 으로 적용함으로써, 와 사이의 관계를 다음과 같이 확립할 수 있다.
증명. 자세한 내용은 부록 A.1 참조. □
정리 3.2는 곱셈형 마스크 을 활용해 항목 선택이 어텐션 가중치에 어떤 영향을 주는지 정량화한다. 그러나 을 직접 최소화하는 일은 복잡한 행렬 연산을 요구하기 때문에 만만치 않다. 그래서 우리는 정리 3.3에서 보이듯 상계 를 세우는 쪽으로 방향을 돌린다.
정리 3.3. 출력 섭동 은 로 상계 지을 수 있다.
여기서 는 을 나타내고, 는 파라미터 행렬 를 거쳐 투영된 모든 값 상태를 나타낸다.
증명. 자세한 내용은 부록 A.2 참조. □
가 어텐션 가중치와 투영된 값 상태 양쪽에 의존하므로, 어텐션 가중치에만 기대는 기존 기법들은 본질적으로 최적이 아니다.
입력: 예산 , 쿼리 상태 , 캐시 항목 , 파라미터 행렬 , 하이퍼파라미터 출력: 중요 캐시 항목
1: initialize empty cache K̂, V̂ 2: A = softmax(qKᵀ); 𝓥 = VW^O 3: 𝓐 = (A + ε) ⊙ (L1 norm of each rows in 𝓥) 4: b′ = b × α; b″ = b − b′ 5: for all K_i, V_i ∈ K, V that A_i ∈ Top_k(A, b′) 6: add K_i, V_i to K̂, V̂ ▷ Stage 1 7: remove 𝓐_i, K_i, V_i from 𝓐, K, V 8: for all K_i, V_i ∈ K, V that 𝓐_i ∈ Top_k(𝓐, b″): 9: add K_i, V_i to K̂, V̂ ▷ Stage 2 10: return Critical Cache Entries K̂, V̂
대의: 2행에서 어텐션 가중치 와 투영 값 상태 를 계산한다. 3행에서 두 신호를 곱해 통합 중요도 를 만든다(의 각 행의 노름을 곱하며, 희소한 어텐션 가중치로 인한 정보 손실을 막으려고 작은 을 더한다). 4행에서 예산을 비율로 쪼갠다. 1단계(5–7행)는 어텐션 가중치 상위 개를 먼저 확보해 가정 3.4를 만족시키고, 2단계(8–9행)는 남은 예산 를 통합 중요도 상위 항목에 배정한다.
[역주: 알고리즘 1 머리글의 하이퍼파라미터 기본값은 로 적혀 있으나, §3.5와 §4.1 및 부록 C.1은 모든 실험에서 를 썼다고 명시한다. 원문 표기를 그대로 두되 불일치를 밝혀 둔다.]
입력: 전체 쿼리 상태 , KV 캐시 항목 , 윈도 크기 출력: 중요 캐시 항목
1: allocate budget b across heads # AdaKV, HeadKV 2: Q̂ = Q[−n′ :, :] 3: A = softmax(Q̂Kᵀ) ; Ā = A.mean(dim = 0) 4: Ā = maxpooling(Ā) # SnapKV 5: if using regular selection then 6: select b critical entries K̂, V̂ by Top_k(Ā′, b) 7: else if using our selection then 8: select b critical entries K̂, V̂ by Algorithm 1 9: end if 10: return Critical Cache Entries K̂, V̂
[역주: 알고리즘 제목의 “Observation Win”은 “Observation Window”의 축약 또는 오기로 보인다. 또 6행의 는 3–4행에서 정의된 를 가리키는 것으로 보이나 원문 표기를 그대로 두었다.]

3.4. 최악의 경우 섭동을 제약해 중요 캐시 항목을 식별하기

기계학습의 최적화 전략에서 착안해, 우리는 섭동의 상계를 낮추는 방식을 제안한다. 이는 최악의 경우 섭동을 효과적으로 제약하여 중요 캐시 항목 식별 시 실제 섭동을 줄이는 효과를 낸다. 그런데 상계 를 최소화하는 일 자체가 여전히 만만치 않다. 복잡도와 효과 사이의 균형을 맞추려고 우리는 2단계 탐욕 선택 알고리즘 1을 도입한다. 이 알고리즘은 중요 캐시 항목 식별에서 섭동 상계를 낮추도록 특별히 설계됐다.
이 알고리즘에서 전체 예산 는 하이퍼파라미터 에 따라 두 몫으로 나뉜다. 첫 단계에서는 예산의 일부인 를 어텐션 가중치가 높은 KV 캐시 항목에 우선 배정한다. 두 번째 단계에서는 남은 예산 를 써서 투영된 값 상태의 노름과 어텐션 가중치를 함께 고려한다3. 이 2단계 선택은 Top-K 연산을 활용해 최악의 경우 섭동을 효과적으로 제약한다. 제안한 알고리즘의 효과를 뒷받침하려고 다음 절에서 이론적 분석을 제시한다.

3.5. 알고리즘 1의 이론적 분석

우리가 제안한 알고리즘은 두 단계로 구성되며, 두 단계가 협력해 중요 캐시 항목을 선택한다. 가정 3.4가 제공하는 보장 아래, 1단계의 선택은 2단계가 정리 3.5에 형식화된 섭동 제약을 지키도록 보증한다. 과 를 각각 1단계와 2단계의 선택이라 하면, 이들은 와 를 만족한다. 따라서 전체 선택은 이다.
가정 3.4. 첫 단계에서 전체 예산의 일부인 는 어텐션 가중치가 가장 높은 캐시 항목들을 수집하기에 충분하며, 그 누적 어텐션 가중치 가 전체의 절반을 넘도록 보장한다. 즉, 이다.
이 논문에서 우리는 가정 3.4의 를 두 가지 핵심 고려에 근거해 고정값 0.5로 설정한다. 첫째, 부록 C.2에서 검증했듯이 전체 예산의 50%를 배정하면 어텐션 헤드의 99% 이상에서 충분한 어텐션 가중치를 확보하기에 넉넉하며, 그 결과 다양한 설정에서 가정 3.4를 만족시킨다. 이는 어텐션 가중치의 멱법칙 분포(Zhang et al., 2024b) 덕분인데, 소수의 캐시 항목이 대부분을 차지하기 때문이다. 둘째, 이 선택은 서로 다른 캐시 예산과 모델에 걸쳐 견고하면서도 적용하기 쉽다. 특정 모델·예산·어텐션 헤드마다 다른 값을 쓰면 더 정밀한 최적화가 가능하겠지만, 그만큼 상당한 탐색 부담이 생기고 배포도 복잡해진다. 따라서 그런 세밀한 조정은 향후 과제로 미룬다. 이어지는 실험과 시각적 분석도 를 0.5로 두는 것이 단순하면서 효과적인 선택임을 재차 확인해 준다4.
정리 3.5. 1단계 선택 가 주어졌을 때, 2단계의 목적함수 는 남은 예산 를 사용해 출력 섭동 의 상계 를 최소화하는 것이다.
증명. 자세한 내용은 부록 A.3 참조. □
정리 3.5는 우리의 2단계 선택이 중요 캐시를 식별하려고 출력 섭동의 상계를 직접 최소화함을 보여준다. 어텐션 가중치에만 의존하는 전통적 전략과 달리, 우리 알고리즘의 두 번째 단계는 어텐션 가중치와 파라미터 행렬을 거쳐 투영된 값 상태를 함께 활용해 최악의 경우 출력 섭동을 직접 제약한다.

4. 실험

4.1. 설정

모델. 평가를 위해 진보된 오픈소스 LLM 세 가지를 선택했다. Llama-3.1-8B-Instruct(Llama-3.1-8B)(Dubey et al., 2024), Mistral-7B-Instruct-v0.3(Mistral-7B)(Jiang et al., 2023), Qwen-2.5-32B(Team, 2024)이다. 이 모델들은 서로 다른 모델 계열과 파라미터 규모를 아우르며, 우리 알고리즘의 폭넓은 적용 가능성을 보여준다.
압축 시나리오. (Feng et al., 2024; Devoto et al., 2025)를 따라, 문맥은 질문이 주어지기 전에 독립적으로 압축된다. 이 설정은 문맥 압축 시점에 질문을 알 수 없는 현실적 시나리오를 더 잘 모사한다. 따라서 캐시 축출 기법을 더 현실적으로 평가하게 해 준다. 문맥과 질문을 함께 압축하는 단순 압축 설정은 부록 B.3을 참조하라.
베이스라인. 우리는 알고리즘을 캐시 축출 기법 세 가지—SnapKV(Li et al., 2024), AdaKV(Feng et al., 2024), HeadKV(Fu et al., 2024)—와 결합했다. 이들은 각각 예산 배분이 없는 경우, 적응적 예산 배분, 오프라인 예산 배분에서의 SOTA 캐시 축출을 대표한다. 결합 전후의 품질을 비교함으로써 우리 알고리즘이 이 기법들에 가져오는 개선을 입증한다5. 모든 실험에서 알고리즘 1의 로 설정했으며, 견고성 분석은 §C.1을 참조하라. SnapKV와 AdaKV는 원 설정을 그대로 썼다. 맥스풀링 커널 크기 7, 관측 윈도 32(Feng et al., 2024)이다. 모든 기법은 FlashAttention-2로 구현했다. 참고용으로 H2O(Zhang et al., 2024b)의 성능도 포함했다. H2O는 완전한 어텐션 가중치를 필요로 하는데—FlashAttention-2가 지원하지 않는다—OOM을 유발한다. (Xiao et al., 2024c)를 따라, 마지막 256개 토큰의 어텐션 가중치를 관측하는 방식으로 H2O를 모사했다.

4.2. Ruler 벤치마크

Ruler 벤치마크(Hsieh et al., 2024)는 긴 문맥 능력을 평가하는 13개 합성 과제로 구성된다. 캐시 축출에 도전적인 시험대다. 여기에는 단어 추출 변형 두 가지(CWE, FWE), 여덟 가지 NIAH(Needle-In-A-Haystack) 변형, 그리고 질의응답(QA)과 변수 추적(VT)이 포함되며 각각 100점 만점으로 채점된다. Mistral 모델의 32K 문맥 윈도에 맞추고 비용을 통제하려고 ruler 길이를 32K로 설정하고 과제당 100개 인스턴스를 표집했다.
표 1. 캐시 크기 40%에서 Ruler 벤치마크의 세부 결과.
모델
방법
CWE
FWE
NIAH Multikey1
NIAH Multikey2
NIAH Multikey3
NIAH Multiquery
NIAH Multivalue
NIAH Single1
NIAH Single2
NIAH Single3
QA1
QA2
VT
Avg. Score ↓loss
Llama-3.1-8B
Full Cache
44.90
95.33
100.00
100.00
100.00
98.25
99.75
100.00
100.00
100.00
84.00
62.00
99.40
91.05 ↓00.0%
ㅤ
SnapKV
20.30
90.00
93.00
36.00
31.00
92.75
87.50
100.00
97.00
46.00
41.00
52.00
96.60
67.93 ↓25.4%
ㅤ
w/ ours
33.90
92.67
100.00
50.00
32.00
99.00
99.00
100.00
100.00
80.00
63.00
53.00
97.00
76.89 ↓15.6%
ㅤ
AdaKV
26.60
92.00
98.00
66.00
71.00
97.50
98.25
99.00
100.00
75.00
43.00
54.00
98.60
78.38 ↓13.9%
ㅤ
w/ ours
52.40
94.67
100.00
93.00
65.00
99.25
98.75
100.00
100.00
97.00
64.00
58.00
99.60
86.28 ↓5.2%
ㅤ
HeadKV
17.10
92.67
99.00
66.00
75.00
97.00
93.00
100.00
98.00
94.00
56.00
54.00
98.00
79.98 ↓12.2%
ㅤ
w/ ours
56.50
93.33
100.00
93.00
90.00
99.50
99.00
100.00
100.00
99.00
72.00
59.00
99.40
89.29 ↓1.9%
Mistral-7B
Full Cache
30.00
95.67
94.00
69.00
31.00
94.25
95.00
99.00
100.00
100.00
60.00
59.00
90.60
78.27 ↓00.0%
ㅤ
SnapKV
32.20
91.67
16.00
11.00
4.00
11.25
8.00
65.00
17.00
2.00
34.00
51.00
74.80
32.15 ↓58.9%
ㅤ
w/ ours
48.50
94.67
31.00
7.00
5.00
26.00
24.25
74.00
48.00
2.00
45.00
53.00
81.80
41.56 ↓46.9%
ㅤ
AdaKV
25.30
92.33
25.00
14.00
8.00
20.00
14.25
44.00
34.00
6.00
44.00
55.00
71.60
34.88 ↓55.4%
ㅤ
w/ ours
40.50
95.33
89.00
27.00
8.00
85.00
95.00
99.00
100.00
54.00
60.00
57.00
89.40
69.17 ↓11.6%
ㅤ
HeadKV
30.60
92.67
24.00
27.00
17.00
16.25
16.50
70.00
36.00
4.00
45.00
53.00
82.60
39.59 ↓49.4%
ㅤ
w/ ours
49.50
95.00
53.00
31.00
17.00
60.50
62.25
84.00
82.00
25.00
53.00
55.00
81.40
57.59 ↓26.4%
Qwen2.5-32B
Full Cache
90.60
96.00
99.00
90.00
90.00
100.00
99.25
100.00
100.00
100.00
82.00
74.00
100.00
93.91 ↓00.0%
ㅤ
SnapKV
87.90
92.00
63.00
23.00
9.00
71.75
61.75
100.00
94.00
14.00
50.00
64.00
99.80
63.86 ↓32.0%
ㅤ
w/ ours
88.60
93.33
98.00
35.00
16.00
99.75
99.50
100.00
100.00
88.00
67.00
69.00
100.00
81.09 ↓13.7%
ㅤ
AdaKV
88.90
93.33
81.00
34.00
21.00
87.50
83.50
100.00
97.00
19.00
55.00
64.00
100.00
71.09 ↓24.3%
ㅤ
w/ ours
89.50
94.33
98.00
54.00
34.00
100.00
99.50
100.00
100.00
91.00
64.00
66.00
100.00
83.87 ↓10.7%
ㅤ
HeadKV
89.30
94.67
92.00
46.00
45.00
97.25
96.25
100.00
100.00
59.00
68.00
66.00
100.00
81.04 ↓13.7%
ㅤ
w/ ours
89.90
95.33
99.00
85.00
71.00
100.00
98.75
100.00
100.00
99.00
72.00
69.00
100.00
90.69 ↓3.4%
Figure 2
Figure 2
Figure 2
그림 2. 캐시 크기를 달리했을 때 Ruler 과제에서의 성능.
표 1은 캐시 크기 40%에서 과제별 점수를 보고한다. SnapKV, AdaKV, HeadKV 모두 캐시 축출 아래에서 성능이 떨어지지만, 우리 알고리즘을 덧붙이면 셋 다 상당한 이득을 얻는다. 예컨대 Qwen2.5-32B에서 우리 알고리즘은 세 축출 기법 모두에서 13개 과제에 걸쳐 일관된 이득을 낸다. 정량적으로 보면, 우리 알고리즘은 SnapKV의 평균 점수를 63.86에서 81.09로, AdaKV를 71.09에서 83.87로 끌어올린다. HeadKV에 적용했을 때는 평균 점수가 81.04에서 90.69로 올라, 전체 캐시 대비 손실이 13.7%에서 겨우 3.4%로 완화된다. Llama와 Mistral 모델에서도 비슷한 경향이 나타나며, 전체 사례에 걸쳐 평균 14.6점 개선됐다.
그림 2는 Llama와 Mistral 두 모델의 다양한 캐시 크기를 아우르는 종합적 조망을 제공한다. Qwen2.5-32B의 결과는 32B 규모 모델을 여러 캐시 크기에서 평가하는 비용이 지나치게 커서 생략했다. Mistral에 대한 더 많은 결과는 부록 B.4에 실었다. Llama와 Mistral 모델 모두에서 우리 방법은 모든 기저 기법을 일관되고 유의하게 개선한다. 예를 들어 Llama 모델의 캐시 크기 60%에서 AdaKV는 평균 점수 87.92를 기록하는데, 우리 알고리즘으로 강화하면 이 점수가 90.94로 올라 전체 캐시 성능 91.04에 거의 근접한다. 우리 알고리즘의 이점은 작은 캐시 크기에서 한층 두드러진다. 40%와 20%에서 우리 알고리즘은 AdaKV의 평균 점수를 각각 78.38 → 86.28, 57.48 → 68.94로 끌어올린다. 마찬가지로 Mistral에서는 60% 크기에서 AdaKV를 48.80 → 75.85로, 40% 크기에서 34.88 → 69.17로 향상시킨다. 이 결과들은 우리 알고리즘이 광범위한 기존 KV 캐시 축출 기법에 대한 범용 개선책으로서 효과적임을 부각한다.

4.3. LongBench 평가

우리는 실제 벤치마크인 LongBench도 포함했다. 이는 여섯 개 과제 도메인—단일 문서 QA, 다중 문서 QA, 요약, 퓨샷 학습, 합성, 코드—에 걸친 16개 데이터셋으로 구성된다. 표준 평가 지표를 써서 각 도메인의 평균 점수를 보고한다.
표 2. LongBench의 과제 도메인 점수.
모델
Domain
Full Cache
SnapKV 20%b base
SnapKV 20%b w/ ours
SnapKV 40%b base
SnapKV 40%b w/ ours
AdaKV 20%b base
AdaKV 20%b w/ ours
AdaKV 40%b base
AdaKV 40%b w/ ours
HeadKV 20%b base
HeadKV 20%b w/ ours
HeadKV 40%b base
HeadKV 40%b w/ ours
Llama-3.1-8B
SingleDoc. QA
43.10
28.78
30.43
35.27
38.27
31.39
32.74
36.63
39.24
31.53
33.60
39.96
40.61
ㅤ
MultiDoc. QA
46.49
33.51
35.87
40.50
43.17
34.90
35.31
41.36
45.11
34.97
36.33
43.10
44.33
ㅤ
Summarization
28.97
23.82
24.64
26.11
27.15
24.29
24.98
26.66
27.31
24.49
25.28
27.06
27.24
ㅤ
Fewshot
69.45
61.95
63.04
65.10
66.87
63.70
64.74
66.43
68.19
62.79
65.41
65.64
68.06
ㅤ
Synthetic
53.73
48.19
52.16
53.17
54.22
50.39
52.30
53.00
53.60
49.32
52.18
52.89
54.04
ㅤ
Code
57.86
60.05
60.75
60.49
60.91
61.14
61.16
60.30
60.60
61.14
58.85
61.34
57.89
ㅤ
Avg. Score
49.20
41.29
42.99
45.52
47.29
42.87
43.77
46.24
48.00
42.64
43.99
47.23
47.79
ㅤ
Avg. Loss ↓
0.00 %
16.1 %
12.6 %
7.5 %
3.9 %
12.9 %
11.0 %
6.0 %
2.4 %
13.3 %
10.6 %
4.0 %
2.9 %
Mistral-7B
Single-Doc. QA
38.37
25.13
28.24
31.64
34.33
27.25
29.06
33.42
36.06
27.94
30.95
33.90
36.21
ㅤ
Multi-Doc. QA
39.40
29.64
32.07
33.57
36.61
31.71
33.04
35.97
38.00
31.58
34.47
35.28
37.66
ㅤ
Summarization
28.76
24.18
24.61
26.24
26.94
24.18
24.83
26.24
27.06
24.49
25.63
26.76
27.72
ㅤ
Few-shot
70.33
63.89
65.54
67.95
68.57
66.00
67.08
68.67
69.79
64.73
67.58
67.46
69.78
ㅤ
Synthetic
52.50
45.25
46.53
49.75
51.05
48.00
49.25
50.75
50.84
47.79
48.02
50.50
50.20
ㅤ
Code
61.25
61.40
61.94
63.41
62.06
62.55
62.56
63.35
62.68
61.96
61.76
63.16
61.56
ㅤ
Avg. Score
47.38
40.11
41.77
44.03
45.35
41.78
42.85
45.07
46.23
41.61
43.46
44.84
46.10
ㅤ
Avg. Loss ↓
0.0 %
15.3 %
11.8 %
7.1 %
4.3 %
11.8 %
9.6 %
4.9 %
2.4 %
12.2 %
8.3 %
5.4 %
2.7 %
Qwen2.5-32B
Single-Doc. QA
43.23
26.65
28.12
32.22
37.18
26.62
29.00
32.37
35.70
29.9
32.07
38.74
40.49
ㅤ
Multi-Doc. QA
54.03
42.00
46.88
50.90
54.55
42.36
47.40
52.75
53.75
46.35
50.60
55.13
55.33
ㅤ
Summarization
27.40
23.22
24.23
25.19
26.03
23.21
24.06
24.95
25.97
23.88
24.34
26.10
26.36
ㅤ
Few-shot
68.97
65.43
66.86
67.43
67.80
66.56
67.44
68.18
68.65
65.96
68.53
68.37
69.27
ㅤ
Synthetic
56.25
44.21
53.00
55.25
55.75
46.63
52.75
54.63
55.25
50.88
53.88
55.09
55.04
ㅤ
Code
41.93
45.04
44.72
44.89
43.75
46.30
45.43
46.21
44.88
44.83
46.27
44.88
46.54
ㅤ
Avg. Score
48.58
40.65
43.36
45.47
47.23
41.38
43.75
46.03
47.03
43.11
45.43
47.81
48.59
ㅤ
Avg. Loss ↓
0.0 %
16.3 %
10.8 %
6.4 %
2.8 %
14.8 %
9.9 %
5.3 %
3.2 %
11.3 %
6.5 %
1.6 %
0.0 %
표 2에서 보듯 우리 알고리즘은 대부분의 평가 사례에서 개선을 이룬다. 널리 쓰이는 다섯 개 장기 의존성 과제 도메인(단일 문서 QA, 다중 문서 QA, 요약, 퓨샷 학습, 합성)에서 캐시 축출은 과거 정보를 훼손해 성능을 떨어뜨린다. 우리 알고리즘은 이 손실을 뚜렷하게 완화한다. 다섯 개 장기 의존성 도메인, 세 모델(Llama-3.1-8B, Mistral-7B, Qwen2.5-32B), 세 압축 기법(SnapKV, AdaKV, HeadKV), 두 캐시 크기를 아우르는 90개 테스트 사례 가운데 88건에서 개선을 관찰했다. 이 97.8%의 성공률은 우리 방법의 폭과 견고성을 보여준다. 수치적으로도 효과는 분명하다. 예를 들어 Llama-3.1-8B의 다중 문서 QA에서 40% 캐시로 AdaKV를 적용하면 점수가 46.49에서 41.36으로 떨어지는데, 우리 알고리즘을 더하면 45.11로 회복된다. Mistral-7B에서는 압축이 점수를 39.40에서 35.97로 낮추지만 우리 알고리즘이 38.00으로 되돌린다. 반면 코드 도메인은 본래 캐시 축출에 둔감하다. 캐시 크기 20%에서는 성능이 전체 캐시를 넘어서기도 하는데, 이는 선행 연구(Feng et al., 2024; Li et al., 2024; Zhang et al., 2024a)에서도 보고된 현상이다. 코드 관련 과제가 장거리 의존성에 덜 기대는 경향이 있어, KV 캐시를 압축하면 과거 문맥을 걸러냄으로써 역설적으로 정확도가 올라갈 수 있기 때문이다. 따라서 코드 도메인은 일반적으로 적합한 지표로 여겨지지 않는다.
전체 캐시 대비 평균 성능 손실을 놓고 보면, 우리 방법은 기존 캐시 축출 기법의 이러한 저하를 상당히 줄인다. 예컨대 Llama 모델의 40% 캐시 크기에서 우리 알고리즘을 AdaKV에 결합하면 평균 손실이 6.0%에서 2.4%로 낮아진다. Mistral과 Qwen 모델에서도 비슷한 이득이 관찰되어, 우리 알고리즘이 손실을 각각 4.9% → 2.4%, 5.3% → 3.2%로 줄인다. 이 결과들은 우리 알고리즘이 다양한 실제 응용에서 KV 캐시 축출이 유발하는 품질 손실을 완화하는 견고하고 일반적인 해법임을 확인해 준다.

4.4. 효율 평가

캐시 축출은 보통 프리필(prefill) 단계 이후에 적용되어 KV 캐시 사용량을 줄이고 디코딩 속도를 높인다. 통상적 관행(Feng et al., 2024; Fu et al., 2024)을 따라, 프리필 단계에는 첫 토큰까지의 시간(TTFT, 축출 과정 포함)을, 디코딩에는 단일 스텝 지연을 써서 효율을 평가했으며, 80GB A100 GPU 한 장에서 Llama-3.1-8B와 40% 캐시 크기로 측정했다. 우리 방법은 의 계산 때문에 섭동 제약 알고리즘에서 약간의 TTFT 부담이 생긴다. 이 연산은 복잡도가 선형이라 영향이 미미하다. 그림 3a에서 보듯 32K 문맥 길이에서 TTFT는 배치 크기 1의 경우 0.06초(3.54 → 3.60), 배치 크기 4의 경우 0.16초(14.20 → 14.36, 요청당 0.04초)만 늘어난다.
Figure 3
Figure 3
Figure 3
그림 3. 효율. (모두 FlashAttention-2 사용). (a) 프리필링. (b) 디코딩.
디코딩에서는 모든 캐시 축출 기법이 동일한 효율을 보이며 전체 캐시 베이스라인을 능가한다. 배치 크기 4와 32K 문맥에서 SnapKV는(우리 알고리즘 적용 여부와 무관하게) 0.0332초를 달성하는데, 이는 전체 캐시의 0.0828초 대비 2.49× 속도 향상이다. 요컨대 우리 알고리즘은 계산 효율을 거의 그대로 유지하면서 기존 캐시 축출의 품질을 크게 끌어올린다.

4.5. 실제 출력 섭동 분석

우리는 이론적 섭동 상계를 제약하는 것이 실제 출력 섭동을 효과적으로 줄이는지 더 파고들었다. MultiNews에서 200개 표본(20% 캐시 압축)을 써서 첫 번째 디코딩 토큰에 대한 어텐션 출력 섭동을 시각화했다. a. 헤드별 분석: 우리 방법은 어텐션 헤드의 92%(Llama-3.1-8B)와 86%(Mistral-7B)에서 평균 섭동을 유의하게 줄인다(그림 4). b. 층별 분석: 그림 5는 우리 알고리즘이 층을 지나며 섭동을 점진적으로 줄여 나가, 최종 층에서 상당한 감소로 이어짐을 보여준다. 이는 생성 토큰의 어휘 분포에 직접 영향을 미친다. c. 예산별 분석: 그림 6은 캐시 비율(2.5%–40%) 전반에서 일관된 감소를 보여주어, 다양한 예산 제약에 대한 견고성을 부각한다. 이 결과들은 알고리즘 1의 이론적 제약이 실제 섭동을 효과적으로 최소화함을 검증한다. 축출 후 은닉 상태를 전체 캐시의 것과 정렬시킴으로써 우리 접근법은 생성 품질을 보존한다.
Figure 4
Figure 4
Figure 4
그림 4. 헤드 전반의 섭동 감소. (a) Llama-3.1-8B. (b) Mistral-7B. (진한 녹색: 우리 섭동이 더 낮음 / 옅은 색: 우리 섭동이 더 높음)
Figure 5
Figure 5
Figure 5
그림 5. 층 전반의 섭동 감소. (a) SnapKV. (b) AdaKV.
Figure 6
Figure 6
Figure 6
그림 6. 예산 전반의 섭동 감소. (a) SnapKV. (b) AdaKV.

5. 결론

이 논문에서 우리는 현행 캐시 축출 기법의 핵심 한계—어텐션 가중치로 중요 캐시 항목을 고른다는 직관적 휴리스틱에 의존한다는 점—를 짚었다. 우리는 처음으로 중요 캐시 항목 선택 문제를 출력 섭동의 관점에서 형식화하고 이론적 분석을 제시한다. 나아가 중요 캐시를 고르려고 최악의 경우 출력 섭동을 제약하는 새로운 알고리즘을 제안하고, 이를 기존 SOTA 캐시 축출 기법에 결합했다. Ruler와 LongBench의 29개 데이터셋을 활용한 종합 평가는 우리 알고리즘이 기존 캐시 축출 기법을 유의하게 개선함을 입증한다. 추가 실증 분석은 우리 방법이 다양한 설정에서 어텐션만 쓰는 기법보다 실제 출력 섭동을 더 낮게 만든다는 사실을 확인해 주며, 관찰된 이득을 설명한다. 우리 연구는 캐시 축출 분야를 진전시키는 새로운 관점을 제시하고, 그 상당한 이점과 향후 잠재력을 부각한다.

감사의 글

이 연구는 중국 국가자연과학기금(NSFC) 과제번호 62472400 및 62271465, 중국 국가중점 R&D 프로그램 과제번호 2025YFC3408300, 그리고 쑤저우 기초연구 프로그램 과제번호 SYG202338의 지원을 받았다.

임팩트 스테이트먼트

이 논문은 기계학습 분야를 진전시키는 것을 목표로 하는 연구를 제시한다. 우리 연구에는 여러 잠재적 사회적 파급 효과가 있을 수 있으나, 여기서 특별히 부각해야 한다고 판단되는 것은 없다.

참고문헌

참고문헌은 번역 범위에서 제외한다(원문 9–12쪽 참조).

부록

A. 이론적 증명

A.1. 정리 3.2의 증명

정리. 마스크 을 원소별 곱 으로 적용함으로써, 와 사이의 관계를 다음과 같이 확립할 수 있다.
증명. 라 두면, 중요 캐시 항목 아래에서의 어텐션 가중치 를 다음과 같이 표현할 수 있다.
임을 고려하면 이다. 따라서 이다. □

A.2. 정리 3.3의 증명

정리. 출력 섭동 은 로 상계 지을 수 있다.
여기서 는 을 나타내고, 는 파라미터 행렬 를 거쳐 투영된 모든 값 상태를 나타낸다.
증명. 가 투영된 값 상태 전체를 나타낸다고 하자. 그러면
곱셈형 마스크 이 0 아니면 1이라는 점을 감안하면, 인덱스 집합 을 그 값에 따라 와 으로 나눌 수 있다. 따라서
가 —중요 항목 선택과 무관한 상수—를 나타낸다고 하자. 그러면 을 로 표현할 수 있다. 따라서
□

A.3. 정리 3.5의 증명

정리. 1단계 선택 가 주어졌을 때, 2단계의 목적함수 는 남은 예산 를 사용해 출력 섭동 의 상계 를 최소화하는 것이다.
증명. 가정 3.4로부터 1단계 선택은 다음을 보장한다. . 이는 부등식 으로 이어진다.
이라 두면, 2단계 선택 로 인수분해된 의 새로운 상계 를 유도할 수 있다. 즉 이다. 따라서 를 최소화하는 것은 값이 가장 큰 개 항목을 선택하는 것에 대응하며, 이는 2단계 선택(알고리즘 1)에 구현된 그대로다. □
[역주: 원문 A.3 마지막 문장의 은 조판 오류로 보이며, 본문 표기에 맞춰 로 읽는다.]

B. 확장 실험

B.1. 더 많은 베이스라인과의 비교

제안 기법의 효과와 견고성을 더 폭넓게 평가하려고 베이스라인 두 가지—PyramidKV(Zhang et al., 2024a)와 DuoAttention(Xiao et al., 2024b)—와의 비교를 추가했다. 주 평가와 동일한 설정을 따라 LongBench 벤치마크의 16개 데이터셋에서 실험했다. 평균 점수는 표 3에 보고한다.
표에서 보듯 우리 방법(AdaKV와 HeadKV에 적용)은 모든 설정에서 PyramidKV를 일관되게 능가한다. 더 중요한 점은, DuoAttention이 예산이 넉넉한 시나리오에서는 경쟁력 있는 성능을 보이지만 압축률이 더 엄격해지면 안정성을 잃는다는 것이다. 예컨대 Llama-3.1-8B의 40% 캐시 크기에서 DuoAttention은 48.17점을 기록해 우리 방법(AdaKV w/ ours: 48.00)에 견줄 만하다. 그러나 캐시 예산이 제한되거나 다른 LLM으로 옮겨가면 성능이 크게 떨어진다. 수치적으로 그 대비는 Mistral-7B 모델의 20% 캐시 크기에서 뚜렷하다. DuoAttention은 31.13점으로 떨어져 우리 방법(HeadKV w/ ours: 43.46)에 12점 넘게 뒤진다. 마찬가지로 AdaKV w/ ours(42.85)와 비교하면 DuoAttention은 약 11.7점 낮다. 이 뚜렷한 성능 격차는 우리 알고리즘의 견고성과 효과를 부각한다.
표 3. LongBench에서 최근 베이스라인과의 성능 비교(16개 데이터셋 평균 점수). 굵은 글씨는 최고 성능을 나타낸다.
Method
Llama 20% Cache
Llama 40% Cache
Mistral 20% Cache
Mistral 40% Cache
PyramidKV
40.22
44.20
39.77
43.30
DuoAttention
39.52
48.17
31.13
43.74
AdaKV w/ ours
43.77
48.00
42.85
46.23
HeadKV w/ ours
43.99
47.79
43.46
46.10

B.2. 극단적 압축(10% 예산)에서의 평가

이 절에서 우리는 10% 캐시 예산이라는 더 공격적인 압축 시나리오로 평가를 확장한다. 이 설정은 추론 능력을 유지하면서 과거 문맥의 90%를 버릴 것을 요구하기에 상당한 도전이 된다. 서로 다른 값에 대한 세부 결과는 표 4에 보고한다. 20% 예산에서의 관찰과 일관되게, Llama-3.1-8B 모델은 선택에 비교적 둔감하여 38.5점 부근에서 안정적인 성능을 유지한다. 이는 견고한 모델의 경우 극단적 압축조차 우리 방법이 방지하려는 실패 양상을 촉발하지 않음을 시사한다. 그러나 Mistral-7B-v0.3 모델에서는 우리가 제안한 안전장치(safeguard)의 이점이 뚜렷해진다. 안전장치가 없으면(즉 ) 성능이 35.94로 떨어진다. 로 두면 우리 방법은 성능을 37.94로 효과적으로 회복시켜 2.0점 개선을 낸다. 이는 극단적 메모리 제약 아래에서도 우리 알고리즘이 민감한 아키텍처에서 KV 캐시 축출의 품질을 보장하는 결정적 안전망 역할을 함을 보여준다.
표 4. 극단적인 10% 캐시 예산에서의 LongBench 성능.
Model / Setting
Multi-Doc
Single-Doc
Sum.
Few-Shot
Synthetic
Code
Avg.
Llama-3.1-8B (10% Cache)
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
AdaKV
26.44
24.75
21.75
60.74
27.91
60.69
36.14
AdaKV w/ ours ()
29.95
26.80
22.74
61.07
37.19
60.56
38.57
AdaKV w/ ours ()
29.88
26.71
22.67
61.39
35.95
60.46
38.43
AdaKV w/ ours ()
30.21
27.05
22.80
61.35
35.44
60.44
38.50
AdaKV w/ ours ()
29.31
26.83
22.54
61.17
31.79
60.48
37.75
Mistral-7B-v0.3 (10% Cache)
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
AdaKV
27.56
22.78
22.14
62.24
34.00
61.77
37.23
AdaKV w/ ours ()
23.31
23.29
22.27
63.61
28.34
60.42
35.94
AdaKV w/ ours ()
25.08
24.49
22.85
63.50
33.15
60.86
37.24
AdaKV w/ ours ()
28.79
25.33
22.72
63.35
32.64
60.57
37.94
AdaKV w/ ours ()
28.70
24.65
22.60
62.38
33.00
60.51
37.62

B.3. LongBench의 과제 도메인 분석(쉬운 압축 설정)

표 14는 쉬운 압축 설정—문맥과 질문이 동시에 압축 대상으로 주어지는—아래에서 LongBench 벤치마크의 도메인 점수를 보고한다. 이 설정은 특정 질문을 겨냥한 캐시 압축을 허용하므로 단순하다고 여겨지며, 20% 캐시 크기에서도 전체 캐시 사례에 거의 맞먹는 점수를 내어 품질 저하가 최소에 그친다. 그럼에도 우리가 강화한 캐시 축출 기법은 대부분의 도메인에서 품질을 개선한다. 다만 이 시나리오는 다중 턴 질의응답이나 미래 질문을 예측할 수 없는 실제 문맥에서는 통하지 않기에 실무적으로 널리 적용되지는 않는다. 따라서 우리는 실제 활용 사례를 더 잘 반영하도록, 주 실험에서 채택한 것과 같은 더 도전적인 압축 설정에서 기법들을 평가할 것을 권장한다.

B.4. Ruler 벤치마크에서 Mistral-7B의 세부 결과

그림 7은 캐시 크기를 달리했을 때 Ruler 벤치마크에서 Mistral 모델의 세부 결과를 보여준다. 전반적으로 우리 알고리즘은 세 베이스라인 기법 모두의 성능을 유의하게 개선한다.
Figure 7
Figure 7
Figure 7
그림 7. 캐시 크기를 달리했을 때 Mistral-7B-v0.3의 Ruler 과제 성능.

B.5. 다중 턴 QA 평가

장기 지평 정보를 처리하고 미래에 알 수 없는 질문을 다루는 데 있어 제안 기법의 효과를 더 검증하고자 다중 턴 대화와 긴 문맥 압축용으로 설계된 SCBench(Li et al., 2025)에서 실험을 수행했다.
설정. SCBench는 평균 문맥 길이 227K 토큰의 QA 턴 4,853개로 구성된다. 이 규모는 우리 실험에 쓴 Llama-3.1-8B(128K 문맥 윈도)를 포함해 대부분의 오픈소스 LLM의 실효 문맥 윈도를 크게 넘어선다. 이 제약을 수용하면서 다중 턴 시나리오에서 생성에 필요한 여유를 확보하려고 서로 다른 검색 범주에 걸친 대표 과제 세 가지—Retr.KV(문자열 검색), EN.QA(의미 검색), Math.Find(전역 정보)—를 선정했다. 이 과제들에서는 이후 대화 턴에 문맥이 넘치는 것을 막으려고 입력 문맥을 100K 토큰으로 잘랐다.
결과. 우리는 세 가지 캐시 예산 설정(80%, 60%, 40%)에서 바닐라 AdaKV 베이스라인과 우리 방법으로 강화한 AdaKV의 성능을 비교했다. 결과는 표 5에 정리했다. 우리 방법은 모든 과제에서 베이스라인 대비 일관된 개선을 보인다. 특히 캐시 예산이 줄어들수록 성능 이득이 더 뚜렷해진다. 예컨대 EN.QA 과제에서 40% 압축률일 때 우리 방법은 22.14점을 달성해 베이스라인의 15.71점을 크게 앞선다. 이 결과는 우리 방법이 중요 정보를 보존하는 능력을 효과적으로 강화함을 시사한다.
표 5. SCBench 다중 턴 QA 과제에서의 성능 비교.
Task (Turns)
Full Cache
80% Cache Budget AdaKV
80% Cache Budget + Ours
60% Cache Budget AdaKV
60% Cache Budget + Ours
40% Cache Budget AdaKV
40% Cache Budget + Ours
Retr.KV (5 turns)
52.20
52.00
52.60
41.20
42.00
19.40
19.80
Math.Find (6 turns)
11.67
11.33
13.67
11.67
14.17
11.50
16.83
EN.QA (7 turns)
22.86
22.14
24.29
17.86
21.43
15.71
22.14

B.6. 청크 프리필링에서의 효율

실제 배포에서 캐시 축출 정책은 청크 프리필링(chunked prefilling)과 시너지를 이루어 프리필 단계를 가속할 수 있다. DuoAttention(Xiao et al., 2024b)의 실험 프로토콜을 따라, 우리는 50% 캐시 크기의 AdaKV 베이스라인 위에서 128K 문맥 시퀀스에 청크 크기를 달리해 가며 청크 프리필링을 구현해 프리필링 가속을 달성했다. 청크를 순차 처리하는 동안 비핵심 KV 쌍을 축출함으로써 이후 청크의 계산·메모리 부담이 줄어든다. 표 6은 청크 크기별 프리필링 지연과 그에 따른 속도 향상 배율을 제시한다. 우리 방법은 AdaKV 베이스라인 대비 계산 부담이 극히 작다. 예를 들어 청크 크기 30K에서 우리 방법은 22.31초(1.37배 가속)를 달성하는데, 이는 AdaKV의 22.48초(1.36배 가속)와 견줄 만하다. 나아가 모든 청크 크기에서 지연 증가는 무시할 만하며, 일관되게 베이스라인 대비 약 0.2초 이내에 머문다. 우리 방법이 기존 베이스라인에 제공하는 상당한 품질 개선을 감안하면, 이 근소한 부담 증가는 무시할 만하다.
[역주: 본문은 청크 크기 30K에서 “우리 방법 22.31초(1.37배), AdaKV 22.48초(1.36배)”라고 서술하나, 표 6에서는 AdaKV가 22.31(1.37x), AdaKV(w/ ours)가 22.48(1.36x)로 표기되어 있다. 즉 본문 서술에서 두 값이 서로 뒤바뀐 것으로 보인다. 표의 값을 그대로 옮긴다.]
표 6. 128K 문맥 TTFT 비교(단위: 초).
Chunk Size
Full Cache
AdaKV
AdaKV (w/ ours)
Chunk Size
Full Cache
AdaKV
AdaKV (w/ ours)
30k
30.57 (1.00x)
22.31 (1.37x)
22.48 (1.36x)
90k
30.53 (1.00x)
25.99 (1.17x)
26.17 (1.17x)
50k
30.54 (1.00x)
23.46 (1.30x)
23.63 (1.29x)
110k
30.43 (1.00x)
28.04 (1.09x)
28.21 (1.08x)
70k
30.50 (1.00x)
25.09 (1.22x)
25.24 (1.21x)
128k
29.79 (1.00x)
29.98 (0.99x)
30.17 (0.99x)

C. 분석 결과

C.1. 하이퍼파라미터 의 민감도 분석

앞서 설명했듯 우리는 가정 3.4를 만족시키기 위한 안전장치로 하이퍼파라미터 를 도입했다. 이 파라미터의 민감도와 필요성을 살펴보려고, 20% 캐시 예산에서 값 범위에 대해 LongBench에서 우리 방법(AdaKV와 결합)의 성능을 평가했다6. 세부 결과는 표 8에 제시한다. [역주: 본문은 “표 8”을 가리키나, ·20% 예산의 도메인별 세부 결과를 담은 것은 표 7이다. 표 8은 의 요약 표다. 상호참조가 뒤바뀐 것으로 보인다.]
경험적으로 우리는 라는 단순한 선택만으로도 여러 모델에서 기저 기법 AdaKV 대비 견고한 성능을 확보하기에 충분함을 관찰했다. Llama-3.1-8B 모델에서는 값이 달라져도 성능이 비교적 안정적으로 유지되어 에 대한 견고성을 보인다. 그러나 Mistral-7B-v0.3의 결과는 이 안전장치가 결정적으로 필요함을 부각한다. 를 완전히 제거하면(즉 으로 두면) 일부 어텐션 헤드에서 가정이 위반되어 성능이 크게 저하된다. 구체적으로 표 7에서 보듯 Mistral에서 으로 설정하면 점수가 31.94로 떨어져, 기본 설정(, 42.85)에 10점 넘게 뒤진다.
표 7. 20% 캐시 예산에서 LongBench에 대한 하이퍼파라미터 의 민감도 분석.
Model / Setting
Multi-Doc
Single-Doc
Sum.
Few-Shot
Synthetic
Code
Avg.
Llama-3.1-8B (20% Cache)
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
AdaKV
34.03
29.54
23.74
63.56
43.90
60.94
41.39
AdaKV w/ ours ()
38.14
33.56
25.14
64.25
51.73
61.41
44.35
AdaKV w/ ours ()
36.73
33.80
24.94
63.29
50.21
61.03
43.67
AdaKV w/ ours ()
35.31
32.74
24.98
64.74
52.30
61.16
43.77
AdaKV w/ ours ()
36.95
32.20
24.70
63.36
49.14
61.38
43.29
Mistral-7B-v0.3 (20% Cache)
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
AdaKV
31.30
27.15
23.81
65.05
46.25
62.27
41.18
AdaKV w/ ours ()
26.12
22.49
23.42
39.44
31.29
56.97
31.94
AdaKV w/ ours ()
31.69
30.69
24.87
67.30
46.84
61.67
42.54
AdaKV w/ ours ()
33.04
29.06
24.83
67.08
49.25
62.56
42.85
AdaKV w/ ours ()
32.60
30.11
24.78
66.90
49.00
61.82
42.80

C.2. 가정 3.4에서 의 분석

우리는 개별 헤드에서 중요 KV 캐시 항목의 누적 어텐션 가중치 를 분석함으로써 가정 3.4의 신뢰성을 확인한다. 그림 8에서 보듯, 서로 다른 모델과 캐시 크기에 걸쳐 거의 모든 어텐션 헤드가 가정 3.4에서 말한 대로 어텐션 가중치의 절반 이상을 누적할 수 있다. 유일한 예외는 첫 번째 층의 일부 어텐션 헤드다. 이는 주로 첫 층 특정 헤드의 어텐션 가중치가 희소성이 낮기 때문인데, 여러 관련 연구에서 지적된 현상이다(Tang et al., 2024a; Zhang et al., 2024b;a). 그러나 이 영향은 무시할 만하다. 이런 헤드는 전체의 1% 미만이며, 그로 인한 사소한 부정적 영향은 조건을 만족하는 헤드에서 얻는 상당한 이득에 크게 압도되기 때문이다. 잠재적 해결책으로는 알고리즘의 임계값 를 헤드별 특성에 맞춰 설정해 더 큰 이득을 노리는 방법이 있다. 다만 그로 인해 추가될 복잡도를 고려해, 우리는 단순함과 강력한 실증 성능을 이유로 고정값 를 유지하고, 세밀한 튜닝은 향후 과제로 남긴다.
Figure 8
Figure 8
Figure 8
그림 8. 다양한 캐시 크기에 걸쳐 헤드의 99% 이상에서 가정 3.4가 성립한다. (a) Llama 캐시 10%. (b) Llama 캐시 20%. (c) Mistral 캐시 10%. (d) Mistral 캐시 20%. (각 패널 상단의 백분율은 누적 어텐션 가중치가 0.5를 넘는 헤드의 비율이다.)
표 8. Ada-KV를 기준으로 한 안전장치 가 알고리즘 성능에 미치는 영향.
Model
Ada-KV
Llama-3.1-8B
42.87
44.35
43.67
43.86
43.88
43.31
43.29
Mistral-7B-v0.3
41.78
31.94
42.54
42.76
42.88
42.98
42.80

C.3. 거리 척도 선택의 분석 ( 대 )

서로 다른 거리 척도가 우리 알고리즘에 미치는 영향을 평가하려고, 4K Ruler 벤치마크에서 흔히 쓰이는 거리와 거리를 비교했다. 그림 9에서 보듯, 더 복잡한 거리를 쓴다고 해서 더 단순한 거리에 비해 품질이 유의하게 개선되지는 않았다. 단순함을 이유로 우리는 분석에 거리 척도를 채택한다. 우리 틀 안에서 더 정교한 거리 척도를 탐색하는 일은 유망한 향후 방향으로 남아 있다.
Figure 9
Figure 9
Figure 9
그림 9. 거리 척도의 선택: 거리와 거리.

C.4. 기존 어텐션 가중치 기반 선택의 분석

우리 알고리즘이 기존의 어텐션 가중치 전용 선택 기법과 갈라지는 지점은 주로 2단계다. 구체적으로, 우리 알고리즘의 2단계를 1단계와 동일한 어텐션 가중치 기반 선택 연산으로 바꾸면 우리 접근법은 기존 기법으로 퇴화한다. 이 변형 덕분에 우리는 섭동 제약 이론을 편리하게 적용해 기존의 어텐션 가중치 기반 선택 전략을 분석할 수 있다.
정리 C.1. 기존의 어텐션 가중치 전용 선택은, 1단계 선택에 기반한 남은 예산 로 의 완화된 형태인 또 다른 상계 를 최소화하는 것과 동치이다.
증명. 를 활용해 상계 를 완화한다.
어텐션 가중치 전용 선택 전략에서 선택은 를 최대화하도록 로 수행된다. 따라서 이는 완화된 상계 를 최소화하는 것과 동치이다. □
정리 C.1은 어텐션 가중치 전용 선택 전략이 완화된 상계 를 최소화하는 것과 동치임을 보여준다. 대조적으로 우리 알고리즘은 더 조인(tighter) 상계 를 최적화한다. 이것이 우리 접근법이 반드시 엄밀하게 더 나은 해를 낸다고 보장하지는 않지만, 직관적으로 더 조인 경계를 최적화하도록 설계된 알고리즘이 흔히 더 좋은 결과를 낸다. 정리 C.1은 또한 캐시 축출 기법에서 왜 중요 KV 캐시 부분집합이 KV 캐시 전체를 대체할 수 있는지에 대한 통찰도 제공한다. 어텐션 가중치의 멱법칙 분포(Zhang et al., 2024b) 덕분에, 어텐션 가중치가 거의 0에 가까운 캐시 항목 대부분을 제거해도 이 상계에는 미미한 영향만 미친다. 결과적으로 실제 출력에 대한 섭동 역시 이 상계로 묶인다.

C.5. 상계 조임(tightness)의 실증적 검증

우리가 유도한 상계의 조임을 검증하려고, 단일 어텐션 층 안에서 이론적 섭동 경계를 실제 출력 섭동과 비교했다. 유도 과정에 완화(예: 삼각부등식)가 들어가 이론적 경계와 실제 섭동 사이에 간극이 생기지만, 기존 기법 대비 상대적 조임은 효능을 보여주는 결정적 지표다. Llama-3.1-8B를 써서 MultiNews 데이터셋의 20%·40% 캐시 예산에서 층별 평균 섭동을 평가했다. 표 9는 최적화된 우리 상계 를 기존 어텐션 가중치 전용 기법의 완화된 상계 와, 그리고 실제 섭동 과 나란히 비교한다. 이 결과들은 절대적인 경계 값은 보수적이지만 우리 방법이 기존 접근법보다 일관되게 훨씬 더 조인 경계를 달성함을 보여준다. 이 이론적 이점은 우리 방법이 일관된 성능 이득을 내는 이유에 대한 원리적 설명을 제공한다. 뚜렷하게 더 조인 섭동 상계를 최적화함으로써 우리 접근법은 더 효과적인 캐시 축출 기준을 산출한다.
표 9. MultiNews(Llama-3.1-8B)에서 이론적 경계와 실증적 섭동의 비교.
Budget
Actual
Our Bound
Prev. Bound
Ratio
20%
0.70
3.21
4.65
69.0%
40%
0.28
1.43
2.64
54.2%

D. 추가 세부사항

D.1. 추가 관련 연구

KV 캐시 축출이나 희소 어텐션 분야의 일부 적응형 기법들(Ge et al., 2024b; Jiang et al., 2024)은 서로 다른 어텐션 헤드의 특성에 맞춘 다양한 중요 캐시 선택 전략을 사용한다. 예컨대 어떤 헤드는 어텐션 가중치 기반 선택을 쓰고, 다른 헤드는 최근 윈도 기반이나 특수 토큰 기반 같은 고정 패턴을 활용한다. 우리 방법은 어텐션 가중치 기반 선택 전략을 따르는 헤드의 성능을 강화하는 데에도 적용할 수 있어, 적응형 기법에 힘을 실어 준다. 최근에는 시각 정보에 내재한 중복성을 활용해 멀티모달 시나리오에 맞춘 KV 캐시 압축을 특별히 설계한 연구들도 있다(Zeng et al., 2026; Wang et al., 2025). 우리는 이런 멀티모달 설정에서 우리 접근법을 실증 평가하지는 않았지만, 출력 섭동에 기반한 우리 분석은 그런 맥락으로도 자연스럽게 확장될 것이다. 이 탐색은 향후 과제로 남긴다.
표 10. Llama-3.1-8B(40% 캐시 예산)에서 OBCache와의 비교.
Method
LongBench Avg.
Ruler Avg.
SnapKV
45.52
67.93
SnapKV w/ OBCache (Joint)
45.92
71.53
SnapKV w/ ours
47.29
76.89
AdaKV w/ ours
47.79
86.28
HeadKV w/ ours
48.00
89.29
표 11. Llama-3.1-8B(20% 캐시 예산)에서 OBCache와의 비교.
Method
LongBench Avg.
Ruler Avg.
SnapKV
41.29
54.90
SnapKV w/ OBCache (Joint)
41.52
58.47
SnapKV w/ ours
42.99
58.70
AdaKV w/ ours
43.77
68.94
HeadKV w/ ours
43.99
70.12
표 12. Mistral-7B(40% 캐시 예산)에서 OBCache와의 비교.
Method
LongBench Avg.
Ruler Avg.
SnapKV
44.03
32.15
SnapKV w/ OBCache (Joint)
44.23
34.92
SnapKV w/ ours
45.35
41.56
AdaKV w/ ours
46.23
69.17
HeadKV w/ ours
46.10
57.59
캐시 축출을 넘어 KV 캐시 사용량을 줄이려는 다양한 기법도 탐구돼 왔다. Think(Xu et al., 2024)는 키 상태의 채널 수를 줄여 캐시를 압축한다. MiniCache 같은 기법은 층 사이의 유사성을 활용해 압축된 표현을 얻는다(Liu et al., 2024a; Yang et al., 2024b). KV 캐시 양자화(Liu et al., 2024c; Hooper et al., 2024)도 개별 항목의 정밀도를 낮추는 방식으로 기여한다. 이들 기법은 모두 캐시 축출과 직교하며 추가 개선의 여지를 제공한다.
동적 캐시 선택 기법(Jiang et al., 2024; Tang et al., 2024b; Lv et al., 2024; Zhang et al., 2025a)—quest 같은—은 이 논문에서 다룬 KV 캐시 축출 기법과 개념적으로 관련이 있다. KV 캐시 축출이 필수적인 KV 캐시 항목의 작은 부분집합만 남기는 반면, 희소 어텐션 기법은 추론 중 모든 항목을 유지한다. 다만 계산 시점에는 가장 중요한 항목만 선택적으로 희소 어텐션 메커니즘에 활용한다. 따라서 희소 어텐션 기법은 KV 캐시의 메모리 사용량은 줄이지 못하지만 추론 속도를 높이고 흔히 캐시 축출 기법보다 더 나은 출력 품질을 낸다(Tang et al., 2024b). 기존 희소 어텐션 기법은 보통 어텐션 가중치의 근사 추정에 의존해 중요 항목을 식별한다(Tang et al., 2024b; Lv et al., 2024). 향후 연구는 우리가 제안한 섭동 제약 선택 알고리즘을 결합해 중요 캐시 항목 식별의 정확도를 높임으로써 이런 기법들을 다듬는 방향을 탐색할 수 있을 것이다.

D.2. OBCache와의 비교

OBCache(Gu et al., 2026) 역시 출력 섭동의 관점에서 KV 캐시 축출을 분석한다. 그러나 우리의 이론적 틀과 구체적 접근은 근본적으로 다르다. OBCache는 2차 테일러 전개로 섭동을 모형화하고, 오직 키·값 캐시의 정보에만 의존한다. 반면 우리 방법은 값 캐시 정보와 더불어 사전학습된 가중치 행렬 를 추가로 통합해 섭동 상계를 제약하며, 그 결과 더 많은 정보를 담은 선택 지표를 만들어낸다.
우리는 OBCache의 가장 강력한 변형(SnapKV with OBCache Joint)과 LongBench 및 Ruler 벤치마크에서 40%·20% 캐시 예산으로 상세 비교를 수행했다. 표 10–13에서 보듯, 우리 방법은 동일한 기저 기법(SnapKV)과 결합했을 때 일관되게 더 높은 점수를 달성한다. 나아가 우리 접근법은 AdaKV나 HeadKV 같은 더 진보된 기저 기법과도 매끄럽게 결합되어, 모든 설정에서 상당히 더 높은 점수를 얻는다.
표 13. Mistral-7B(20% 캐시 예산)에서 OBCache와의 비교.
Method
LongBench Avg.
Ruler Avg.
SnapKV
40.11
25.60
SnapKV w/ OBCache (Joint)
40.49
25.99
SnapKV w/ ours
41.77
30.24
AdaKV w/ ours
42.85
44.13
HeadKV w/ ours
43.46
34.86

D.3. 어텐션-프리 축출 기법에 대한 논의

우리의 섭동 제약 선택 알고리즘은 SnapKV(Li et al., 2024), H2O(Zhang et al., 2024b) 및 그 변형처럼 어텐션 가중치에 의존해 중요 KV 캐시 항목을 식별하는 주류 캐시 축출 기법을 겨냥해 설계됐다. 이런 기법들은 어텐션 가중치가 쿼리 의존적 중요도 신호를 자연스럽게 제공하기에 우리 분석에 적합하다.
그러나 잦고 빠른 압축을 요구하는 극단적 메모리 제약 환경에서는 StreamingLLM(Xiao et al., 2023) 같은 일부 어텐션-프리 기법이 생성 품질보다 추론 속도를 우선한다. 이런 기법은 어텐션 기반 중요도 점수를 계산하지 않고 고정된 축출 패턴(예: 최근 토큰과 어텐션 싱크 토큰만 유지)을 쓰므로, 우리 섭동 분석 틀과 직접 호환되지 않는다. 유망한 향후 방향은 어텐션 점수에 기대지 않고 KV 캐시와 사전학습 파라미터로부터 직접 섭동 경계를 유도하는 것이다. 그렇게 하면 우리 방법을 어텐션-프리 설정으로 확장하고, 나아가 더 폭넓은 캐시 압축 기법 전반에 섭동 기반 분석을 통합할 수 있을 것이다.

D.4. Wanda와의 연결

Wanda(Sun et al., 2024b)는 우리 연구와 섭동 기반 관점을 공유하지만, 두 접근은 세 가지 핵심 측면에서 근본적으로 다르다.
서로 다른 범위. Wanda는 모델 가지치기 범주에 속한다. 학습과 추론 양쪽에서 메모리 사용량을 줄이려고 모델 가중치를 축소하는 것이 목표다. 반면 우리 연구는 KV 캐시 관리에 초점을 맞추며, LLM 추론의 자기회귀 생성 과정에서 캐시 메모리를 줄이는 것을 겨냥한다.
서로 다른 실행 방식. Wanda는 오프라인 가지치기를 수행하는데, 활성값 크기를 계산하려면 보정(calibration) 데이터가 필요하다. 우리 방법은 보정 데이터 없이 추론 중 온라인으로 작동하며, 기존 캐시 축출 파이프라인에 매끄럽게 통합되는 플러그앤플레이 모듈로 기능한다.
즉시 사용 가능한 지표 대 이론적으로 유도된 지표. Wanda는 계산 과정에서 자연스럽게 얻어지는 표준 순전파 활성값 를 그대로 재사용한다. 대조적으로 우리 지표 은 표준 계산 그래프에는 존재하지 않으며 우리의 이론적 유도를 통해 고유하게 식별된 것이다. 감당하기 어려운 중간 텐서 (7B 모델·128K 문맥 기준 층당 약 7.8 GB)를 물리적으로 만들지 않고 이 지표를 효율적으로 계산하려고, 우리는 블록 단위 온라인 누적을 수행하는 맞춤형 융합(fused) Triton 커널을 설계했다. 이로써 이론적 근거를 갖춘 발견이 실용적이고 효율적인 지표로 탈바꿈한다.

D.5. 한계

우리 연구는 거리 기반 섭동 제약 선택 알고리즘이 원래의 SnapKV와 AdaKV의 검색 점수를 효과적으로 높일 수 있음을 보인다. 우리는 거리 척도도 평가했으며 그 성능이 거리와 비슷함을 확인했다. 향후 연구에서는 이 틀 안에서 더 정교한 거리 척도를 탐색할 수 있을 것이다. 덧붙여, 현재 우리 접근법은 가정이 성립하도록 보장하려고 1단계에서 의 가장 중요한 KV 캐시 항목을 보존한다고 가정한다(부록 C.2). 그럼에도 한층 더 개선하기 위한 더 세밀한 전략들을 탐색해 볼 수 있다.

D.6. LongBench 16개 데이터셋의 세부사항

널리 쓰이는 긴 문맥 벤치마크로서(Feng et al., 2024; Li et al., 2024; Zhang et al., 2024a) LongBench는 여섯 개 과제 도메인에 걸친 16개 데이터셋으로 구성된다. 단일 문서 질의응답(QA)(Kočiský et al., 2018; Dasigi et al., 2021), 다중 문서 QA(Yang et al., 2018; Ho et al., 2020; Trivedi et al., 2022), 요약(Huang et al., 2021; Zhong et al., 2021; Fabbri et al., 2019), 퓨샷 학습(Joshi et al., 2017; Gliwa et al., 2019; Li & Roth, 2002), 합성 과제(Bai et al., 2023), 코드 생성(Guo et al., 2023; Liu et al., 2023)이다. 16개 데이터셋 전체의 평균 토큰 길이는 6,711이다. 표 15는 LongBench의 16개 데이터셋에 대한 세부 정보를 제공한다.
표 14. 쉬운 압축 설정에서 LongBench의 도메인 점수.
모델
Domain
Full Cache
AdaKV b=5% base
AdaKV b=5% w/ ours
AdaKV b=10% base
AdaKV b=10% w/ ours
AdaKV b=20% base
AdaKV b=20% w/ ours
AdaKV b=40% base
AdaKV b=40% w/ ours
Llama-3.1-8B Easy Setting
SingleDoc. QA
43.10
38.57
38.79
41.36
41.07
42.73
43.05
43.31
43.59
ㅤ
MultiDoc. QA
46.49
44.61
45.28
46.03
46.08
46.64
46.42
47.02
46.97
ㅤ
Summarization
28.97
22.85
22.97
24.17
24.63
25.49
26.05
27.24
27.79
ㅤ
Fewshot
69.45
67.06
67.49
68.65
68.72
69.19
69.03
69.36
69.40
ㅤ
Synthetic
53.73
53.49
53.36
53.25
53.56
53.57
54.45
53.96
54.59
ㅤ
Code
57.86
56.72
57.26
57.63
58.24
58.43
58.57
58.27
58.46
ㅤ
Ave. Score
49.20
46.23
46.55
47.65
47.82
48.51
48.73
49.08
49.33
ㅤ
Avg. Loss ↓
0.0 %
6.0 %
5.4 %
3.2 %
2.8 %
1.4 %
1.0 %
0.2 %
-0.3 %
표 15. LongBench의 16개 데이터셋 세부사항.
Task
Task Type
Eval metric
Avg len
Language
Sample Num
NarrativeQA
Single-Doc. QA
F1
18,409
EN
200
Qasper
Single-Doc. QA
F1
3,619
EN
200
MultiFieldQA-en
Single-Doc. QA
F1
4,559
EN
150
HotpotQA
Multi-Doc. QA
F1
9,151
EN
200
2WikiMultihopQA
Multi-Doc. QA
F1
4,887
EN
200
MuSiQue
Multi-Doc. QA
F1
11,214
EN
200
GovReport
Summarization
Rouge-L
8,734
EN
200
QMSum
Summarization
Rouge-L
10,614
EN
200
MultiNews
Summarization
Rouge-L
2,113
EN
200
TREC
Few-shot Learning
Accuracy
5,177
EN
200
TriviaQA
Few-shot Learning
F1
8,209
EN
200
SAMSum
Few-shot Learning
Rouge-L
6,258
EN
200
PassageCount
Synthetic
Accuracy
11,141
EN
200
PassageRetrieval-en
Synthetic
Accuracy
9,289
EN
200
LCC
Code
Edit Sim
1,235
Python/C#/Java
500
RepoBench-P
Code
Edit Sim
4,206
Python/Java
500
아래는 다양한 과제에 대한 프롬프트 템플릿이다. 우리는 두 시나리오—일반 압축(regular compression)과 문맥 전용 압축(context-only compression)—에서 성능을 평가한다. 입력 프롬프트 형식은 KVPress(Devoto et al., 2025)를 따르며, 입력을 문맥(context) 구획과 질문(question) 구획으로 나눈다. 질문 구획은 초록색으로 강조했고, 다른 색은 문맥 구획을 나타낸다. 일반 압축에서는 문맥과 질문 구획이 모두 모델에 입력되어 압축된다. 미래 질문을 예측할 수 없는 문맥 전용 압축에서는 문맥 구획만 압축 대상으로 입력된다. 압축 후에 질문 구획이 답변 생성을 위해 입력된다.

D.7. Ruler 템플릿

Needle-in-A-Haystack 과제에서는 “바늘(needle)”이라 불리는 키워드가 “건초더미(haystack)”라 불리는 긴 문맥 안에 박혀 있다. 이 과제의 목표는 Paul Graham의 에세이로 구성된 “건초더미”에서 “바늘”을 뽑아내는 것이다.
단일 Needle-in-A-Haystack(S-NIAH) 과제의 목표는 하나의 “바늘”을 검색하는 것이다. 마찬가지로 다중값 Needle-in-A-Haystack(MV-NIAH) 과제는 삽입된 여러 “바늘”의 추출을 요구한다. 모델이 우리 질문에 답변을 거부하는 것을 막으려고 입력 끝에 답변 접두사를 덧붙여 모델이 답을 생성하도록 유도한다.
Table 16
Table 16
Table 16
표 16. Needle-in-A-Haystack 테스트의 단일 검색·다중 검색 템플릿. (원문 색상 표기를 보존하려고 원본 이미지를 그대로 실었다. 초록색 = 질문 구획, 주황색 = 채워 넣는 값, 회색 = 건초더미 본문.)
Single retrieval — Task Template: Some special magic numbers are hidden within the following text. Make sure to memorize it. I will quiz you about the numbers afterwards. Paul Graham Essays. …… One of the special magic numbers for {word} is: {number}. …… What is the special magic number for {word} mentioned in the provided text?
The special magic number for {word} mentioned in the provided text is
Multi retrieval — Task Template: Some special magic numbers are hidden within the following text. Make sure to memorize it. I will quiz you about the numbers afterwards. Paul Graham Essays. …… One of the special magic numbers for {word} is: {number-1}. …… …… One of the special magic numbers for {word} is: {number-2}. …… …… One of the special magic numbers for {word} is: {number-3}. …… …… One of the special magic numbers for {word} is: {number-4}. …… What are all the special magic numbers for {word} mentioned in the provided text?
The special magic numbers for {word} mentioned in the provided text are

D.8. LongBench 템플릿

LongBench 템플릿의 구성은 공식 형식(Bai et al., 2024)을 따라 일반 압축과 문맥 전용 압축에서의 성능을 평가한다.
Table 17
Table 17
Table 17
표 17. LongBench 템플릿. 단일 문서 QA 과제.
NarrativeQA — Task Template: You are given a story, which can be either a novel or a movie script, and a question. Answer the question asconcisely as you can, using a single phrase if possible. Do not provide any explanation. Story: {context} Now, answer the question based on the story asconcisely as you can, using a single phrase if possible. Do not provide any explanation. Question: {question}
Qasper — Task Template: You are given a scientific article and a question. Answer the question as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write “unanswerable”. If the question is a yes/no question, answer “yes”, “no”, or “unanswerable”. Do not provide any explanation. Article: {context} Answer the question based on the above article as concisely as you can, using a single phrase or sentence if possible. If the question cannot be answered based on the information in the article, write “unanswerable”. If the question is a yes/no question, answer “yes”, “no”, or “unanswerable”. Do not provide any explanation. Question: {question}
MultifieldQA EN — Task Template: Read the following text and answer briefly. {context} Now, answer the following question based on the above text, only give me the answer and do not output any other words. Question: {question}
[역주: NarrativeQA 템플릿의 “asconcisely”는 “as concisely”의 원문 오기다. 원문 그대로 옮긴다.]
Table 18
Table 18
Table 18
표 18. LongBench 템플릿. 다중 문서 QA 과제.
HotpotQA / 2WikimQA / Musique — Task Template: (세 과제 모두 동일) Answer the question based on the given passages. Only give me the answer and do not output any other words. The following are given passages. {context} Answer the question based on the given passages. Only give me the answer and do not output any other words. Question: {question}
Table 19
Table 19
Table 19
표 19. LongBench 템플릿. 요약 과제.
Gov Report — Task Template: You are given a report by a government agency. Write a one-page summary of the report. Report: {context} Now, write a one-page summary of the report.
QMSum — Task Template: You are given a meeting transcript and a query containing a question or instruction. Answer the query in one or more sentences. Transcript: {context} Now, answer the query based on the above meeting transcript in one or more sentences. Query: {question}
Multi News — Task Template: You are given several news passages. Write a one-page summary of all news. News: {context} Now, write a one-page summary of all the news.
Table 20
Table 20
Table 20
표 20. LongBench 템플릿. 퓨샷 학습 과제.
TREC — Task Template: Please determine the type of the question below. Here are some examples of questions. {context} {question}
TriviaQA — Task Template: Answer the question based on the given passage. Only give me the answer and do not output any other words. The following are some examples. {context} {question}
SAMSum — Task Template: Summarize the dialogue into a few short sentences. The following are some examples. {context} {question}
Table 21
Table 21
Table 21
표 21. LongBench 템플릿. 합성 과제.
Passage Count — Task Template: There are some paragraphs below sourced from Wikipedia. Some of them may be duplicates. Please carefully read these paragraphs and determine how many unique paragraphs there are after removing duplicates. In other words, how many non-repeating paragraphs are there in total? {context} Please enter the final count of unique paragraphs after removing duplicates. The output format should only contain the number, such as 1, 2, 3, and so on.
Passage Retrieval EN — Task Template: Here are 30 paragraphs from Wikipedia, along with an abstract. Please determine which paragraph the abstract is from. {context} The following is an abstract. {question} Please enter the number of the paragraph that the abstract is from. The answer format must be like “Paragraph 1”, “Paragraph 2”, etc.
Table 22
Table 22
Table 22
표 22. LongBench 템플릿. 코드 과제.
Lcc — Task Template: Please complete the code given below. {context} Next line of code:
Repobench-P — Task Template: Please complete the code given below. {context} {question} Next line of code:

보강 — 코드·생태계·해외 리서처 활용 가이드 (2026-08 Web Search 기반)

이 섹션은 논문 본문에 없는 정보로, 2026년 8월 시점 웹 조사로 확인한 내용이다. 링크는 전부 직접 접속해 봤다.

1. 논문 지위와 제목 변천

  • arXiv v1(2025-02-06) 제목은 “Identify Critical KV Cache in LLM Inference from an Output Perturbation Perspective”였고 v2(2026-05-28)에서 “CriticalKV: Optimizing KV Cache Eviction from an Output Perturbation Perspective”로 바뀌었다. 검색하면 두 제목이 다 걸리니 주의.
  • 저자진은 AdaKV(NeurIPS 2025)를 만든 USTC 그룹(Yuan Feng, Junlin Lv, Yukun Cao, Xike Xie, S Kevin Zhou)이다. AdaKV → CriticalKV → DefensiveKV로 이어지는 3부작의 가운데 작품.

2. 공식 코드 확보 경로 3종

경로
성격
비고
공식 구현(권장)
논문이 직접 안내하는 저장소. 후속작 DefensiveKV(ICLR 2026)와 통합돼 있어 CriticalKV 강화판까지 포함
서드파티 공식 채택
CriticalKVPress·CriticalAdaKVPress로 라이브러리에 정식 등재. 가장 쓰기 쉬움
선행작 저장소
AdaKV 원본. head-wise budget allocation 코드
공식 저장소(DefensiveKV) 설치·실행:
git clone https://github.com/FFY0/DefensiveKV.git cd defensive_kvpress pip install -e . cd kvpress/csrc/ && make # CUDA 커널 빌드 pip install flash-attn --no-build-isolation # 평가 (환경변수 KVPRESS_DATASETS, MODELS_DIR 설정 필요) cd evaluation bash quick_evaluate.sh # 약 1시간짜리 빠른 검증 bash evaluate.sh # LongBench + RULER 전체 bash efficiency_evaluate.sh # 지연·메모리 측정

3. 해외 리서처의 진입로 — NVIDIA kvpress

해외에서 KV 캐시 압축 실험을 시작할 때 사실상 표준 진입로로 쓰는 게 NVIDIA의 kvpress 라이브러리다(PyPI, HF 블로그). HuggingFace transformers 위에 “press”라는 플러그인 형태로 20종 가까운 압축 기법을 얹어 쓰는 구조라 논문 저장소를 일일이 빌드하지 않고도 방법 간 비교가 된다.
pip install kvpress
from transformers import pipeline from kvpress import CriticalKVPress, KnormPress pipe = pipeline("kv-press-text-generation", model="Qwen/Qwen3-8B", device_map="auto", dtype="auto") # CriticalKV는 래퍼(wrapper) — 임의의 ScorerPress를 감싸 점수를 보정한다 press = CriticalKVPress(KnormPress(compression_ratio=0.5)) answer = pipe(context, question=question, press=press)["answer"]
논문의 플러그 앤 플레이 주장 그대로, kvpress에서도 CriticalKV는 독립 press가 아니라 기존 scorer를 감싸는 래퍼로 구현돼 있다. CriticalAdaKVPress를 쓰면 AdaKV의 head-wise 예산 할당까지 한 번에 붙는다.
criticalkv_press.py 구현 요점:
  1. 1단계: 감싼 scorer(예: SnapKV)의 점수로 예산 일부(first_stage_ratio)만 우선 확보
  1. 재점수화: 헤드별로 V @ Wo[head]의 L1 norm(=value 상태를 출력 투영에 통과시킨 크기)을 곱해 (초기점수 + ε) × 투영norm으로 보정 — 논문의 “attention weight만으론 부족하고 value·파라미터 행렬까지 봐야 한다”는 주장이 코드 두 줄로 압축된 부분
  1. 2단계: 보정된 점수로 잔여 예산 선택 (1단계 선택분은 최댓값 부여로 보존)
프리필·디코딩을 함께 쓰거나 양자화 캐시와 묶는 것도 지원한다:
from kvpress import CriticalKVPress, KnormPress, DecodingPress, PrefillDecodingPress combined = PrefillDecodingPress( prefilling_press=CriticalKVPress(KnormPress()), decoding_press=DecodingPress(base_press=KnormPress(compression_ratio=0.2), compression_interval=5, target_size=256), )

4. 표준이 된 리더보드 평가

  • KVPress Leaderboard (HF Space): RULER 4k 컨텍스트 기준으로 press별·압축률별 성능을 표준 프로토콜로 비교한다. 새로 나오는 압축 논문들은 대체로 자기 방법을 여기 등재해 재현 가능한 비교를 만든다.
  • 트레이드오프 실측(HF 블로그): Llama 3.1-8B, 128k 컨텍스트에서 50% 압축하면 피크 메모리 45GB → 37GB, 디코딩 속도 11 → 17 tok/s. 압축률을 올릴수록 정확도 손실이 커져서 과제마다 스윕이 따로 필요하다.
  • 평가 CLI와 speed_and_memory.ipynb 노트북이 저장소에 들어 있다. 지원 모델은 Llama·Mistral·Phi-3·Qwen2/3·Gemma3 계열이다.

5. baseline 인용 계보

2026년에 나온 KV 캐시 eviction 논문들에서 CriticalKV는 value-aware scoring의 표준 baseline으로 자리 잡았다:
  • DefensiveKV (ICLR 2026, 동일 저자진): 생성 품질 손실을 CriticalKV 11.1% → 4.8%/2.6%로 줄였다고 보고. worst-case 관점을 “방어적 집계” 두 줄로 계승
  • OBCache: Optimal Brain Damage 관점 pruning에서 value-aware baseline으로 비교
  • QEvict: 양자화 결합 eviction에서 비교 대상
  • CapKV: 정보이론 통합 목적함수 제안 시 비교

6. 재현 시 주의점

  • 공식 저장소는 CUDA 커널 빌드(csrc/ && make)와 flash-attn 설치가 전제다. 아이디어만 간단히 검증할 거면 kvpress 쪽이 훨씬 빠르다.
  • kvpress의 두 변형 중 CriticalAdaKVPress가 논문 표의 “Ada-CriticalKV”에 대응한다. 논문 수치를 재현하려면 감싸는 scorer(SnapKV/AdaKV)와 압축률을 논문 설정에 맞춰야 한다.
  • RULER 리더보드 1위는 (2026-08 현재) AdaKVPress + ExpectedAttentionPress 조합으로, CriticalKV 계열이 모든 셀에서 최강은 아니다. “기존 방법을 절반의 손실로 개선하는 범용 애드온”이라는 위치로 읽는 게 정확하다.

부록 Z. ARS / W1-Rebound / SDA 반영 분석

이 부록은 원 논문의 일부가 아니다. CriticalKV(arXiv 2502.03805v2)를 우리 프로젝트에 반영할 자산으로 해부한 기록이다. 모든 프로젝트 수치·경로·라인번호는 실제 파일을 읽어 확인한 것이며, 확인하지 못한 것은 “미확인”이라고 적었다. 판정 어휘는 프로젝트 관례를 따른다 — ADOPT / ADOPT-C(조건부) / HOLD / RETIRE / N-A(해당 없음).

Z.0. 먼저, 좌표부터 — 이 논문은 우리 보드에 올라오지 않는다

가장 먼저 정직하게 확인할 것이 있다. CriticalKV는 우리의 세 보드(문항내 판별 / selective / selection) 어디에도 베이스라인으로 올릴 수 없다.
이유는 단순하고 결정적이다. 종속변수가 다르다.
ㅤ
CriticalKV
ARS / W1-Rebound
단위
(모델, 데이터셋, 캐시 예산) 셀
(문항, 롤아웃) 쌍
결과
전체 캐시 대비 생성 품질 손실 %
정답/오답 이진 라벨
지표
Avg. Score, Avg. Loss ↓
AUROC, E-AURC, acc@k
문항 반복
없음(문항당 생성 1회)
있음(문항당 n 롤아웃)
표집
과제당 100 인스턴스, 1회
시드 × 문항 × 롤아웃
우리 프로젝트가 가장 아프게 배운 교훈이 “pooled는 Simpson 아티팩트를 낳는다”였고, 그 뒤로 문항내 페어링을 사전등록 수준에서 강제해 왔다. CriticalKV는 그 축 자체가 없다. 문항이라는 개념이 없으니 문항내도 문항간도 없다. 그러니 우리 표의 한 줄로 나란히 놓으려는 시도는 범주 오류다. 이 논문에서 “AUROC 0.xx”를 뽑아 우리 보드에 붙이고 싶어질 유혹이 생기면, 그건 없는 수치를 만들어내는 일이다.
판정: 베이스라인으로는 N-A.
그런데 바로 그 지점에서 이 논문의 쓸모가 갈린다. CriticalKV는 우리의 경쟁자가 아니라 공구상이다. 우리에게 없는 두 가지—① 어텐션 항목을 지웠을 때 출력이 얼마나 흔들리는지에 대한 닫힌 형태 상계, ② 그 지움을 실제로 수행하는 정확한 연산 사양—을 이미 유도해 두었고, 심지어 우리 프로젝트가 문서에 “필요하다”고 적어만 두고 구현하지 않은 양을 정확히 그 형태로 계산한다. 이 부록의 나머지는 그 이야기다.

Z.1. 각도 1 — 레퍼런스·베이스라인으로서의 가치

Z.1.1. 직접 비교표는 만들 수 없다 (그리고 만들면 안 된다)

위에서 정리한 대로다. 재현 가능성·프로토콜 차이를 표로 못 박아 둔다.
프로토콜 항목
CriticalKV
ARS_0703 / W1-Rebound-0729
호환
모델
Llama-3.1-8B-Instruct, Mistral-7B-Instruct-v0.3, Qwen-2.5-32B
Qwen3-4B-Thinking-2507 계열 (+ m2 Qwen3-8B, m3 Ministral)
✗ 교집합 0
디코딩
미명시(품질 점수 기반, 단일 생성)
temp 0.6/0.9 분리, budget forcing 계보
✗
관측 창
프리필 전체 + 관측 윈도 32 (SnapKV 관례)
p100 / p150 고정 접두
✗
페어링
없음
문항내 paired 의무
✗
길이 통제
없음 (과제별 고정 길이 32K)
길이 층화·length baseline 상시 대조
✗
결과 라벨
생성 품질 점수
정답/오답
✗
어텐션 접근
FlashAttention-2 (완전 어텐션 미보유)
output_attentions=True 보유
△
마지막 줄이 흥미롭다. CriticalKV는 FlashAttention-2를 쓰기 때문에 완전한 어텐션 행렬을 갖지 못한다. 논문 §4.1이 그 대가를 실토한다. H2O를 정직하게 돌릴 수 없어서 “마지막 256개 토큰의 어텐션 가중치를 관측하는” 방식으로 흉내 냈고, 그렇지 않으면 OOM이 난다고 적었다. 반면 우리 엔진은 replay 경로에서 output_attentions를 켜고 어텐션 행렬을 실제로 들고 있다. 즉 어텐션 전량 접근이라는 축에서는 우리가 그들보다 유리한 위치에 있다. 이건 나중에 novelty 방어에서 다시 쓴다.

Z.1.2. 진짜 레퍼런스 가치는 RULER 브리지에 있다

우리 트랙에는 사전에 선언해 둔 관문이 하나 있다. W1-Rebound-0729\docs\53_SCOPE_POWER_ICLR_0801.md 113–114행:
“Phase 1(엔진) → Phase 2(RULER, 1노드·1주)에서 ΔEA(E vs D) AUROC ≥ .60 이면 Track A, 그 미만이면 Track B 로 확정 전환.”
그리고 같은 트랙의 설계 리뷰 57_DESIGN_REVIEW_0804.md 173행에는 이렇게 적혀 있다. “RULER | 저장소·데이터 0건 | 신규 파이프라인”. 284행은 더 아프다. “RULER·MuSiQue 0건, HotpotQA 는 구세대 이력만, supporting-fact span 타입 없음”.
정리하면 우리의 운명을 가르는 관문이 RULER인데, 로컬에 RULER가 없고, 무엇보다 근거 span이 라벨된 데이터가 없다.
CriticalKV §4.2와 부록 D.7이 정확히 그 구멍을 메운다.
  • §4.2: RULER 13개 과제, ruler 길이 32K, 과제당 100 인스턴스. 이 세팅은 “왜 32K인가, 왜 100개인가”에 인용 가능한 선례를 준다(Mistral 32K 문맥 창에 맞추고 비용을 통제하려고).
  • 부록 D.7 + 표 16: NIAH 템플릿이 통째로 공개돼 있다. haystack은 Paul Graham 에세이, needle은 One of the special magic numbers for {word} is: {number}. 형태의 문장이다.
여기서 결정적인 점. 우리 E/D 설계는 50_PIVOT_SINK_OR_SEARCH_0801.md 93–94행에서 E = 데이터셋이 제공한 gold evidence span, D = 길이·위치 매칭 비근거 content distractor로 정의돼 있고, MuSR의 “지문 전체”를 E로 쓰는 것을 명시적으로 금지한다. NIAH는 이 요구를 완벽하게 만족한다.
  • E = needle 문장. 위치·길이·내용이 우리가 심었으므로 100% 정확히 안다.
  • D = 같은 haystack에서 뽑은 길이 매칭 에세이 문장. 무한히 많고, 무료다.
  • 게다가 Multi retrieval 템플릿(표 16 하단)은 needle을 4개 심는다 → 근거가 여러 개일 때 재접근이 분산되는가라는 추가 질문까지 공짜로 열린다.
즉 CriticalKV는 우리에게 “supporting-fact span 타입이 없다”는 문제의 해답을 표 16 하나로 건네준다. 이것이 이 논문의 레퍼런스 가치 중 단연 최대다.
판정: RULER 세팅·NIAH 템플릿 ADOPT. 다만 주의 하나. 그들의 RULER는 압축 성능 평가용이라 needle 위치 분포·haystack 구성 난수 시드가 공개돼 있지 않다. 우리는 자체 생성해야 하고, 그러면 “CriticalKV와 같은 데이터”가 아니라 “CriticalKV와 같은 프로토콜”이다. 논문에 쓸 때 그 차이를 흐리면 안 된다.

Z.1.3. Assumption 3.4 / 그림 8이 주는 공짜 사실

부록 C.2와 그림 8은 우리에게도 직접 쓸모 있는 실측을 제공한다. 예산 상위 50%를 배정하면 어텐션 헤드의 99% 이상에서 누적 어텐션 질량이 0.5를 넘고(Llama 10% 캐시 99.90%, Llama 20% 100.00%, Mistral 10% 99.32%, Mistral 20% 99.71%), 유일한 예외가 첫 번째 층의 소수 헤드다. 논문의 설명은 “1층 특정 헤드의 어텐션 가중치는 희소성이 낮다”이고, 이를 Tang et al. 2024a·Zhang et al. 2024b에 연결한다.
우리 트랙의 57_DESIGN_REVIEW_0804.md는 null 결과의 생존 설명으로 “per-head 해상도”를 남겨 두고 Phase 0 per-head 관문을 새로 요구했다. 그림 8은 그 관문을 설계할 때 쓸 수 있는 외부 근거다. 구체적으로 “1층 헤드는 어텐션 분포가 거의 평평해서 어떤 어텐션 기반 지표든 정보가 없다”는 사전 예측을 세울 수 있고, 그러면 per-head 스크리닝에서 1층을 사전 제외하는 결정이 사후 체리피킹이 아니라 사전등록 가능한 규칙이 된다.
판정: 그림 8 = 1층 헤드 제외 규칙의 외부 근거로 ADOPT.

Z.2. 각도 2 — 아이데이션·기법 이식 (이 부록의 심장)

Z.2.1. 비유부터: 도서관에서 무엇을 버릴 것인가

장서를 절반으로 줄여야 하는 도서관이 있다. 기존 방식(H2O, SnapKV, 그리고 사실상 우리의 s_j도)은 대출 기록만 본다. 많이 빌려 간 책은 남기고 아무도 안 빌린 책은 버린다.
CriticalKV가 던지는 반문은 이렇다. 얇은 팸플릿은 열 번 빌려 가도 버리면 그만이다. 그런데 서가 한 칸을 차지하는 백과사전은 1년에 두 번 빌려 가도 버리면 도서관의 성격이 바뀐다. 대출 횟수(어텐션 가중치) × 그 책이 실제로 실어 나르는 내용의 부피(값 상태의 크기) — 버릴지 말지는 이 곱으로 정해야 한다.
논문의 알고리즘 1, 3행이 정확히 그 문장이다.
3: 𝓐 = (A + ε) ⊙ (L1 norm of each rows in 𝓥) where 𝓥 = VW^O
가 대출 횟수, 이 부피다. 그리고 이건 직관적 발명이 아니라 정리 3.3에서 유도된 것이다. 출력 섭동의 상계
에서 를 낮추려면 로 남길 항목을 가 큰 순으로 골라야 한다. 어텐션만 보는 기존 전략은 정리 C.1이 보이듯 로 부피를 최솟값으로 뭉갠 완화 상계 를 최소화할 뿐이다. 즉 “모든 책의 두께가 가장 얇은 책과 같다고 치자”는 가정이다.

Z.2.2. 그런데 우리는 이미 같은 말을 적어 두었다 — 그리고 구현하지 않았다

여기가 이 논문 분석의 핵심 발견이다.
W1-Rebound-0729\docs\50_PIVOT_SINK_OR_SEARCH_0801.md 100행에 우리 손으로 적어 둔 노트가 있다. 헤드 평균 만으로는 부족하다면서, 필요한 양을 이렇게 명시했다.
value-aware = ‖ α_{q,j}^(ℓ,h) · V_j^(ℓ,h) · W_O^(ℓ,h) ‖
CriticalKV의 와 같은 양이다. 우리는 “이게 필요하다”까지 갔고, 그들은 여기에 정리 3.3의 유도, 안전장치, 그리고 128K 문맥에서 층당 7.8 GB짜리 중간 텐서 를 물리적으로 만들지 않고 블록 단위 온라인 누적을 수행하는 융합 Triton 커널(부록 D.4)까지 붙였다.
우리가 이걸 “새 아이디어”로 주장할 창은 닫혔다. 대신 용도가 다르다는 데서 우리 몫이 남는다. 그들에게 는 무엇을 버릴지 고르는 기준이고, 우리에게는 무엇을 얼마나 세게 건드렸는지 재는 눈금이다. 이 구분을 Z.3에서 방어선으로 세운다.
즉시 이식 항목 1 — 값 인지 싱크 점수. 현재 우리 threshold-free 싱크 점수는(50:81–86)
로 어텐션 질량만 센다. 여기에 부피를 곱한 쌍둥이를 나란히 정의한다.
이게 왜 중요한가. 우리의 2차 싱크(secondary sink) 정의는 네 조건을 동시에 요구한다(50:92) — ⓐ 상위 분위 ⓑ 지속성 ⓒ BOS 은닉 방향과의 높은 정렬 ⓓ 은닉 노름 이상치. 그런데 어텐션 싱크의 고전적 특징이 바로 “질량은 많이 받지만 실어 나르는 값은 무의미하다”는 것이다. 즉 는 크고 은 작다. 반대로 진짜 근거 재독은 질량도 받고 값도 실어야 한다. 그러면
의 대비만으로 “싱크냐 탐색이냐”를 조건 ⓒⓓ 없이도 1차 분리할 수 있을 가능성이 있다. 우리 논문 제목이 “Sink or Search?”인데, CriticalKV가 그 두 단어를 가르는 스칼라를 유도해 준 셈이다. 조건 ⓒⓓ는 은닉 상태를 요구하는데 우리는 히든 스테이트를 저장하지 않았다는 함정을 이미 겪었다(ATTRACTORS 라운드). 은 KV 캐시와 가중치만 있으면 되므로 그 함정을 우회한다.
다만 정직하게 적는다. 이건 가설이지 결과가 아니다. 우리 캐시에 가 남아 있는지, 층·헤드별로 슬라이스를 뽑는 경로가 있는지는 별도 확인이 필요하다. 그리고 CriticalKV는 이 비율을 싱크 판별에 쓴 적이 없다 — 그 논문에는 싱크 이야기가 부록 D.3에 StreamingLLM을 언급하며 한 번 스칠 뿐이다.
판정: 값 인지 싱크 점수 ADOPT-C. 조건 = ① · 접근 경로 확인 ② 기존 와 반드시 병기(대체 금지, 우리 원장에 “지표 교체 후 부호 반전” 전례가 여러 건이다) ③ exploratory 시트에서 시작.

Z.2.3. SDA H3의 KV 차폐 — 여기서 논문이 진짜 값을 한다

호출 프롬프트가 지목한 지점이다. SDA(Settling-Depth Amortization)의 인과 가설 H3는 ARS_0718\docs\DTR_NOVELTY_100H_0720_KO.md 110–117행에 이렇게 선언돼 있다.
H3 (인과, 기제) — amortization은 트레이스-메모리 매개다: 최초 유도 span(atom의 k=1 등장을 포함한 문장/구간)의 KV를 차폐(mask/ablate)하고 같은 위치를 teacher-forced replay하면, 후속 등장(k≥2)의 settling depth가 상승한다 (캐시를 뺏기면 재유도로 회귀). 대조: (i) 길이-매칭 무관 span 차폐(위치 통제), (ii) identity(무차폐) parity, (iii) 이미 재유도 중인(churn) 토큰은 차폐 효과가 작다 — 캐시 의존성의 선택성이 핵심 판별.
그리고 183–193행의 실행 블록은 사건당 forward 2–3회로 c^{00}(무차폐), c^{10}(S1 KV 차폐), c^{ctrl}(무관 span 차폐)을 뽑아 효과 을 재도록 돼 있다. 191행은 “K/V·layer 범위는 design split에서 동결”이라고 적어 차폐의 구체 연산은 아직 미결임을 밝힌다. 실제로 코드 수색 결과 SDA/DTR_N/DTR_R 관련 구현은 0건이고, 존재하는 것은 research72h/source_kv_patching.py(pre-RoPE K/V 도너 치환, k_proj·v_proj 훅), source_value_gating.py(pre-RoPE 값 투영만 스케일), causal_patching.py:128–160(잔차 블록 출력을 입력으로 대체 = residual-update 제거)뿐이다. 어텐션 로짓에 를 넣는 마스킹은 프로젝트 전체에 없다(모든 attention_mask 히트는 torch.ones_like 보일러플레이트). evict 문자열은 0건.
CriticalKV는 이 미결 지점 세 군데를 정확히 메운다.
즉 KV를 지운다 = 어텐션 로짓에 를 더한다이다. 자명해 보이지만, 우리가 지금 가진 도구는 전부 다른 연산이다. 도너 치환은 값을 바꾸고, 값 게이팅은 값을 줄이고, 잔차 절제는 층 기여를 지운다. 셋 중 어느 것도 “그 토큰이 캐시에 없었던 상황”이 아니다. H3가 주장하려는 것이 “캐시를 뺏기면 재유도로 회귀”라면, 재현해야 할 반사실은 캐시 부재이고 그 사양은 다.
판정: 마스킹 사양 ADOPT. H3의 “K/V·layer 범위 동결”에서 K/V 축의 답은 이것으로 정해진다 — K와 V를 따로 나눌 필요가 없다. 어텐션 로짓을 죽이면 그 항목의 K도 V도 출력에 기여하지 못한다.
여기가 이 부록에서 가장 실용적인 대목이다. 정리 3.2가 마스킹의 부작용을 정확히 준다.
분모를 보라. 항목을 지우면 softmax가 재정규화되어, 살아남은 모든 항목의 어텐션 가중치가 배로 균일하게 증폭된다. 예컨대 지운 집합이 원래 어텐션 질량의 30%를 갖고 있었다면 잔존 항목은 전부 배가 된다.
이것이 우리에게 왜 치명적인가. 우리 지표는 어텐션 질량의 분포를 읽는다. 첫 4개 위치가 받는 질량(프로젝트의 sink 버킷은 verifiers.py:367–370에서 문맥 첫 4토큰을 무조건 "sink"로 라벨하며, 문서 47:138은 이를 “first-4 sink positions”로 개명할 것을 요구한다), content 위치가 받는 질량, 그 변화량 . 그런데 H3에서 span S1을 차폐하면 재정규화만으로도 나머지 전부의 질량이 올라간다. 즉
H3 개입 후 관찰되는 나 의 변화는, 아무 기제 없이도 재정규화 산술만으로 발생한다.
이건 우리가 이미 한 번 데인 유형의 함정이다. 0711 라운드의 2-Stage 해부에서 placebo draw가 +2.88★를 생산해 “★기계 오탐”을 실측한 전례가 있다. 매칭이 어긋난 대조는 가짜 효과를 만든다.
그리고 CriticalKV는 보정식까지 준다. 식 (5)의 분모가 곧 아티팩트의 정확한 크기이므로, 개입 후 어텐션을 비교할 때는 잔존 질량으로 되나누어 정규화를 원복하면 된다.
즉 위에서 계산한 sink / content만이 재정규화와 독립인 양이다. 원시 위에서 계산하면 기제가 아니라 산술을 측정하게 된다. 이 한 줄이 H3 분석 계획에 들어가야 한다.
판정: 재정규화 보정식 ADOPT (필수). H3 분석 사전등록에 “차폐 후 어텐션 비교는 잔존 질량 재정규화를 원복한 상에서 수행한다”를 명문화.
부수적으로 이 관점은 우리가 이미 가진 두 도구의 성격도 갈라 준다.
  • 값 게이팅(source_value_gating.py): — 어텐션 분포 불변, 값만 감쇠. 재정규화 없음.
  • KV 차폐(CriticalKV 식 3): — 어텐션 분포 변화, 재정규화 있음.
두 개입은 다른 반사실을 만든다. “캐시가 없었다면”은 후자고, “그 토큰의 내용이 흐릿했다면”은 전자다. H3의 서사(캐시를 뺏김)에는 후자가 맞다. 다만 전자가 이미 구현돼 있고 재정규화 교란이 없다는 장점이 있으므로, 두 개입을 나란히 돌려 결과가 같은 방향인지 보는 것이 가장 강한 설계다. 방향이 갈리면 그 자체가 발견이다.
H3의 통제군은 “길이-매칭 무관 span 차폐”다. 그런데 길이를 맞춰도 섭동 질량은 맞지 않는다. 20토큰짜리 어텐션 쓰레기 span과 20토큰짜리 핵심 근거 span은 길이가 같아도 지웠을 때 출력에 주는 충격이 자릿수로 다르다. 이 통제로 “S1 차폐가 효과가 있었다”고 말하면, 그건 “S1이 중요한 span이었다”는 동어반복일 위험이 있다.
CriticalKV의 가 이 눈금을 준다. 집합 를 지웠을 때 상계가 얼마나 나빠지는지는
로 계산된다(정리 3.5의 목적함수를 그대로 읽은 것). 따라서 통제 span을 고를 때 길이가 아니라 를 매칭하면, “같은 세기로 때렸는데 S1일 때만 settling depth가 올라갔다”는 훨씬 강한 주장을 할 수 있다. 이게 진짜 placebo다.
판정: -매칭 placebo ADOPT. H3 대조군 정의를 length-matched → length-matched AND $\Delta\theta$-matched로 승격.
단, 사용 제약을 정직하게 붙인다. 표 9가 상계의 보수성을 실측했다. 20% 예산에서 실제 섭동 대 우리 상계 , 40%에서 대 이다. 상계가 실제의 4.6배·5.1배다. 그러므로 는 절대 크기의 해석에 쓰면 안 되고, 오직 집합끼리의 순서와 매칭에만 써야 한다. 논문 자신도 “절대적인 경계 값은 보수적”이라고 인정하며 상대적 조임(69.0%, 54.2%)만 주장한다.
로 예산을 반 갈라 1단계는 어텐션 상위, 2단계는 상위로 채우는 구조는 가정 3.4()를 만족시키기 위한 안전장치다. 그 필요성은 표 7이 실증한다. Mistral에서 이면 42.85 → 31.94로 무너진다(Llama는 44.35로 오히려 최고 — 모델 의존적이다).
그런데 우리 목적은 상계를 최소화하는 게 아니라 통제하는 것이다. 우리는 “가장 좋은 축출 집합”을 원하지 않고 “정해진 세기의 개입”을 원한다. 그러면 1단계(어텐션 상위 선점)의 존재 이유가 사라진다.
판정: 2단계 예산 분할 ADOPT-C. 조건 = 우리가 CriticalKV를 선택 알고리즘으로 쓸 때만(예: 향후 “중요 KV만 남긴 채 replay” 같은 arm) 필요하고, 강도 눈금으로만 쓸 때는 불필요. 그리고 만약 알고리즘 1을 이식한다면 를 쓸 것 — 알고리즘 1 머리글에 인쇄된 는 §3.5·§4.1·부록 C.1과 모순되는 오기다(본문 [역주] 참조).

Z.2.4. 층 축에 대한 한 가지 관찰 (약함, 그러나 기록)

그림 5는 섭동 감소량이 층 인덱스를 따라 커지다가 최종 층 근처에서 급등한다고 보여준다(Llama 31층에서 약 37). 본문 §4.5-b는 이를 “이점이 층을 거치며 누적되어 최종 층 은닉 상태의 섭동을 크게 낮춘다”로 읽는다.
우리 W1-Rebound의 층축 논의(Jensen 하계, LROT와의 관계, 되튐 사이트 위치가 아키텍처에 고정된다는 0731 m2 관찰)와 표면적으로 맞물린다. 하지만 여기서 멈춰야 한다. 그림 5의 세로축은 “우리 방법이 baseline 대비 섭동을 얼마나 줄였나”이지 절대 섭동의 층 프로파일이 아니다. 층별 절대 섭동이 어떻게 생겼는지는 이 논문에 없다. 따라서 “어텐션 출력 섭동이 층을 따라 누적된다”는 우리 서사에 이 그림을 근거로 붙이면 과잉 해석이다.
판정: 층축 연결 HOLD. 근거 약함. 인용하려면 “축출 기준을 바꿨을 때의 개선폭이 후반 층에서 크다”까지만.

Z.3. 각도 3 — Novelty 위협과 방어

우리 주장 축별로 위협도를 매긴다.
축
우리 주장
CriticalKV 위협도
근거
A1. 감사 프레임 (문항내 paired, 확증/탐색 분리, 사전등록)
강
NONE
문항 개념 없음. 통계적 추론 자체가 없음(점수 비교만)
A2. Sink or Search 분해 (Content = Gold + $$2ndSink + Other)
강
NONE
싱크는 부록 D.3에서 StreamingLLM 언급 시 한 번 스칠 뿐
A3. SDA 등장차수 분해 (DTR_N / DTR_R)
중
NONE
층·깊이·등장차수 축이 전혀 없음. 단일 층 어텐션 출력만
A4. 값 인지 어텐션 특징 ()
—
M (실질)
정리 3.3이 선행. 우리 50:100 노트는 미구현
A5. KV 개입으로 DTR 깊이를 움직인다는 인과 주장
중
L
그들은 개입을 하지 않음. 축출은 배포 기법

A4가 유일한 실질 위협 — 그리고 방어는 “양보 후 재프레이밍”

만약 우리가 앞으로 어느 문서에서든 “어텐션 질량에 값 크기를 곱한 특징을 우리가 도입했다”고 쓰면, 심사자가 CriticalKV 정리 3.3을 들이대면 그 문장은 무너진다. 우리 프로젝트는 SRQ(2604.19149) 라운드에서 이미 같은 상황을 겪었고, 그때 택한 해법이 옳았다 — 선점된 관찰은 깨끗이 양보하고, 우리만의 축으로 재프레이밍한다.
문장 수준 방어 초안:
“값 가중 어텐션 질량 은 Feng et al.(2026)이 KV 캐시 축출의 최적 선택 기준으로 유도했다(그들의 정리 3.3). 우리는 이 양을 예측 특징으로 쓰지 않는다. 우리는 이를 인과 개입의 강도 눈금으로 쓴다 — 즉 어떤 KV 부분집합을 차폐할 때 그 개입이 출력에 가하는 최악 충격을 사전에 등화(equalize)하여, 길이 매칭이 보장하지 못하는 placebo 등가성을 확보한다. 축출 문헌은 이 양을 최소화하고, 우리는 이 양을 고정한다.”
“최소화 대 고정”이 우리와 그들을 가르는 한 문장이다. 이건 수사가 아니라 실제로 다른 최적화 문제다. 그들의 목적함수는 이고, 우리 제약은 다.
두 번째 방어선은 Z.1.1의 표 마지막 줄이다. 그들은 FlashAttention-2 때문에 완전 어텐션 행렬을 갖지 못해 H2O를 근사로만 돌렸다. 우리는 replay 경로에서 어텐션 전량을 들고 있고, 추가 forward 비용이 0이다(50:106, adtr/replay.py:61). 그러므로 “값 가중 어텐션을 토큰 단위·헤드 단위로 시간에 걸쳐 추적하는 일”은 그들의 배포 제약 안에서는 애초에 불가능하고, 우리 감사 설정에서만 가능하다. 같은 양을 쓰더라도 관측 해상도가 다르다.

인접 경쟁작 정리 (이 논문이 알려 준 것)

부록 D.2가 OBCache(Gu et al., 2026)를 소개한다. 역시 출력 섭동 관점이지만 2차 테일러 전개를 쓰고 K·V 캐시 정보에만 의존한다( 미사용). 우리 관점에서 OBCache는 CriticalKV보다 위협이 낮다 — 사전학습 파라미터를 안 쓰므로 우리 50:100 노트와 겹치지 않는다. 부록 D.4의 Wanda 비교도 유용하다. Wanda는 오프라인·보정 데이터 필요·표준 순전파 활성값 재사용이고, CriticalKV는 온라인·보정 불필요·이론 유도 지표다. 우리는 후자 쪽 성질(온라인, 보정 불필요)이 필요하므로 CriticalKV 계보가 맞다.

서베이 패키지의 공백 하나

우리가 보유한 Efficient Reasoning 919편 패키지(C:\Users\imtbi\Downloads\notion\Efficient-Reasoning-2026\, 471 + 288 + 160 = 919)의 “Sparse Attention & KV Cache” 범주는 7편(ER 리스트의 1.5%) 뿐이고, 그 7편은 전부 reasoning 특화다(R-KV 2505.24133, SeerAttention-R 2506.08889, Think Clearly 2507.08806, Less Is More 2508.07101, ThinKV 2510.01290, Which Heads Matter 2510.08525, Dynamic Thinking-Token Selection 2601.18383). CriticalKV는 이 목록에 없다 — long-context 일반 계보라 서베이 범위 밖이다. 그리고 프로젝트 트리 전체에서 CriticalKV·AdaKV·HeadKV·DefensiveKV·2502.03805 히트는 0건이다(유일한 SnapKV 문자열은 ARS_0718/tmp/pdfs/think_clearly.txt:635의 인용 목록에 우연히 섞인 것).
즉 이 계보 전체가 우리 코퍼스에 처음 들어온다. 서베이 패키지에 “long-context KV eviction” 축을 별도로 열지, 아니면 우리 인용 범위 밖으로 선언할지는 결정이 필요하다. 축출 기법을 개입 도구로 쓸 계획이라면 최소한 SnapKV·AdaKV·HeadKV·H2O 4편은 인용 목록에 들어와야 한다.

Z.4. 각도 4 — 구체 반영 체크리스트

각 항목은 출처 → 반영 위치 → 액션 형식이다. 우선순위 순.
#
출처(논문)
반영 위치
액션
판정
Z-1
정리 3.2 / 식 (5)
SDA H3 분석 계획 (ARS_0718\docs\DTR_NOVELTY_100H_0720_KO.md §2.5 블록 C)
차폐 후 어텐션 비교는 잔존 질량으로 재정규화를 원복한 상에서 수행한다는 조항 추가
ADOPT (필수)
Z-2
식 (3)(4)
신규 모듈 (기존 source_kv_patching.py 훅 재사용)
어텐션 로짓 마스킹 개입 구현. H3의 “K/V 범위 동결” 결정을 “로짓 마스킹이므로 K/V 분리 불요”로 종결
ADOPT
Z-3
정리 3.5 목적함수
H3 대조군 정의 (문서 110–117행 (i)항)
길이-매칭 → 길이-매칭 ∧ $\Delta\theta$-매칭으로 승격
ADOPT
Z-4
부록 D.7 표 16 + §4.2
RULER Phase 2 관문 (53_SCOPE_POWER_ICLR_0801.md:113–114), 57_DESIGN_REVIEW_0804.md:173 “RULER 0건”
NIAH 템플릿으로 E(needle 문장)/D(길이 매칭 haystack 문장) 데이터 자체 생성. 32K·과제당 100 세팅 차용
ADOPT
Z-5
알고리즘 1, 3행
metrics.py 신규 s_val (기존 s_j와 병기)
추가, exploratory 시트
ADOPT-C
Z-6
그림 8 / 부록 C.2
Phase 0 per-head 관문 (57_DESIGN_REVIEW_0804.md §9)
“1층 헤드는 어텐션 희소성이 낮아 정보 없음”을 사전등록 제외 규칙의 외부 근거로 인용
ADOPT
Z-7
부록 D.4 (Wanda 대비), 부록 D.2 (OBCache)
관련 연구 절
섭동 기반 선택의 계보 정리. 온라인·보정 불필요라는 성질이 우리 요구와 일치함을 명시
ADOPT
Z-8
표 9 (경계 보수성 4.6×·5.1×)
Z-3의 사용 제약
는 순서·매칭 전용, 절대 크기 해석 금지를 명문화
ADOPT (제약)
Z-9
알고리즘 1 2단계 분할
(조건부) 향후 “중요 KV만 남긴 replay” arm
그 arm을 만들 때만. 반드시 (머리글 0.25는 오기)
ADOPT-C
Z-10
그림 5 (층별 섭동 감소)
층축 서사
근거 약함. “개선폭이 후반 층에서 크다”까지만
HOLD
Z-11
부록 D.4 Triton 융합 커널
—
7.8 GB/층 문제는 128K 문맥 얘기. 우리는 p100/p150 창이라 무관
HOLD
Z-12
§4.2–4.3 성능표 전체
우리 3보드
종속변수가 다름. 수치 전재 금지
N-A
Z-13
축출 자체(메모리 절감)
—
우리 목적이 아님
RETIRE

사전등록·마스터 문서에 넣을 한 줄 diff 제안

ARS_0718\docs\DTR_NOVELTY_100H_0720_KO.md §2.5 블록 C (183–193행) 말미에 추가:
효과 = c^{10} − c^{00} (양수 = 캐시 의존), 선택성 = 효과(정상 amortized 토큰) ≫ 효과(이미 재유도 중 토큰). K/V·layer 범위는 design split에서 동결, attention 질량은 진단 보조로만(명명 금지 — RPT 계약 §6 승계). + 차폐 연산 = 어텐션 로짓 additive mask M_i = −inf (CriticalKV 식 3·4). K/V 분리 불요. + 대조 span 매칭 = 길이 ∧ Δθ, Δθ(S) ∝ Σ_{i∈S} A_i·‖(VW^O)_{i,:}‖_1 (동 정리 3.5). + 차폐 후 어텐션 지표는 잔존 질량 재정규화를 원복한 Ã' = A'·Σ_k N_k A_k 상에서만 계산 + (동 정리 3.2 — 원시 A' 위 Δsink/Δcontent는 재정규화 산술과 구분 불가).
W1-Rebound-0729\docs\53_SCOPE_POWER_ICLR_0801.md 113–114행 관문 조항에 각주:
Phase 1(엔진) → Phase 2(RULER, 1노드·1주)에서 ΔEA(E vs D) AUROC ≥ .60 이면 Track A, 그 미만이면 Track B 로 확정 전환. + [데이터] RULER 로컬 0건(57:173) → CriticalKV(2502.03805) 부록 D.7 표 16의 NIAH 템플릿으로 + 자체 생성. E = needle 문장(위치·내용 기지), D = 동 haystack 내 길이 매칭 에세이 문장. + 길이 32K·과제당 100 인스턴스는 동 논문 §4.2 세팅 차용(프로토콜 차용이지 데이터 동일 아님).

Z.5. 원 논문 1차 자료 감사 (재현 시 함정)

우리 프로젝트가 DTR 논문에서 ⌈(1−ρ)L⌉ 대 ⌈ρL⌉ 불일치를 찾아낸 것과 같은 종류의 점검을 이 논문에도 적용했다. 알고리즘 1을 실제로 이식할 사람을 위해 남긴다.
  1. 기본값 불일치. 알고리즘 1 머리글은 Hyper Parameter α = 0.25인데, §3.5·§4.1·부록 C.1은 일관되게 를 쓴다고 적는다. 표 7·표 8의 실험도 0.5가 기본이다. 0.5를 따를 것.
  1. 표 7 / 표 8 상호참조 뒤바뀜. 부록 C.1 본문은 “·20% 예산의 세부 결과는 표 8”이라 하는데, 그 내용을 담은 것은 표 7이다. 표 8은 요약표다.
  1. 표 7과 표 8의 AdaKV 기준값 불일치. Llama AdaKV가 표 7에서 41.39, 표 8에서 42.87이다(Mistral은 41.18 대 41.78). 표 8의 42.87은 표 2의 Llama AdaKV 20%b base 평균과 일치한다. 두 표의 실험 조건이 서로 다를 가능성이 있으나 논문은 설명하지 않는다. 어느 쪽을 baseline으로 인용할지 결정이 필요하다.
  1. 부록 B.6 본문과 표 6의 값 뒤바뀜. 본문은 “청크 30K에서 우리 방법 22.31초(1.37배), AdaKV 22.48초(1.36배)”라 하지만 표 6은 AdaKV 22.31(1.37x), AdaKV(w/ ours) 22.48(1.36x)이다. 표를 따를 것(우리 방법이 근소하게 느린 것이 물리적으로 타당하다).
  1. 알고리즘 2 제목 Observation Win 은 Observation Window의 오기로 보이고, 6행의 는 3–4행의 를 가리키는 것으로 보인다.
  1. $= $ 1E-4 (각주 3). 알고리즘 1의 3행에서 로 더해진다. 희소 어텐션에서 인 항목의 정보가 곱셈으로 완전히 소실되는 것을 막는 장치다. 우리가 을 만들 때도 같은 문제가 생긴다 — 없이 곱하면 어텐션 0인 토큰의 값 크기가 통째로 사라진다. 다만 의 크기가 결과에 미치는 영향은 논문에 없다(민감도 분석 없음). 우리 쪽에서 쓸 때는 스윕을 붙여야 한다.

Z.6. 한 문단 요약 (판정)

CriticalKV는 우리 보드 위의 경쟁자가 아니라 우리 작업대 위의 공구다. 베이스라인으로는 N-A(종속변수가 다르다). Novelty 위협은 종합 L~M이며, 실질 위협은 오직 하나 — 값 가중 어텐션 을 우리가 50:100에 적어만 두고 구현하지 않은 사이 그들이 정리 3.3으로 유도하고 Triton 커널까지 붙였다는 사실이다. 이건 양보하고 “그들은 최소화하고 우리는 고정한다”로 재프레이밍한다. 반대로 우리가 얻는 것은 크다. SDA H3의 미결 사항이었던 차폐 연산 사양(), 아무도 경고해 주지 않았을 재정규화 아티팩트와 그 보정식(정리 3.2 — 이걸 모르고 돌렸다면 sink 결과 전체가 산술 부산물과 구분 불가였을 것이다), 길이 매칭을 대체할 매칭 placebo, 그리고 로컬에 0건이던 RULER의 E/D 라벨 데이터를 만들 템플릿이 한꺼번에 들어온다. 우선 반영 3건은 Z-1(재정규화 보정, 필수), Z-2(마스킹 사양), Z-4(NIAH로 RULER 자체 생성)다.

  1. 우리는 단순함 때문에 거리를 택했지만, 우리 틀은 다른 척도도 지원한다. 예컨대 거리를 써도 비슷한 이득을 얻는다(부록 C.3 참조).↩︎
  1. 우리가 제안한 알고리즘의 코드는 https://github.com/FFY0/DefensiveKV에서 공개돼 있다. 특히 이 저장소에는 후속 연구(Feng et al., 2026)에서 자세히 다룬, 우리 접근법을 한층 더 개선한 버전도 함께 올려 두었다.↩︎
  1. 곱셈 과정에서 희소한 어텐션 가중치로 인한 정보 손실을 완화하려고 작은 (1E-4)을 더한다.↩︎
  1. §C.1에서 보이듯, 우리 알고리즘의 성능은 하이퍼파라미터 의 선택에 견고하다.↩︎
  1. PyramidKV(Zhang et al., 2024a) 및 DuoAttention(Xiao et al., 2024a)과의 추가 베이스라인 비교는 부록 B.1을, 낮은 캐시 예산에서의 결과는 부록 B.2를 참조하라.↩︎
  1. 작은 10% 예산에서의 결과는 부록 B.2에 제시한다.↩︎