TL;DR
KV 캐시는 긴 컨텍스트에서 GPU 메모리를 급증시키는 주요 요인으로, 기존 프루닝 기법은 입력별 예산 임계값에 민감해 일반화에 취약했다. 논문은 입력별 임계값 탐색을 제거한 'threshold-free' 목표를 제시하고, 이 목표 하에서 실시간으로 예산을 조정하면서 full-cache 성능을 보존하는 방법을 제시했다. 이로 인해 다양한 도메인과 길이를 혼합한 실제 환경에서도 안정적인 추론 성능을 유지하면서 메모리 사용을 줄일 수 있는 가능성이 확인됐다.
왜 중요한가
KV 캐시는 긴 컨텍스트에서 GPU 메모리를 급증시키는 주요 요인으로, 기존 프루닝 기법은 입력별 예산 임계값에 민감해 일반화에 취약했다. 논문은 입력별 임계값 탐색을 제거한 'threshold-free' 목표를 제시하고, 이 목표 하에서 실시간으로 예산을 조정하면서 full-cache 성능을 보존하는 방법을 제시했다. 이로 인해 다양한 도메인과 길이를 혼합한 실제 환경에서도 안정적인 추론 성능을 유지하면서 메모리 사용을 줄일 수 있는 가능성이 확인됐다.
핵심 기여
임계값 의존성 제거를 목표로 하는 새로운 객관식 정의
논문은 KV 캐시 프루닝의 목표를 기존의 고정 예산 최적화에서 입력 불민감성으로 전환했다. 이 목표는 입력마다 튜닝해야 하는 데이터 의존적 임계값을 사용하지 않고도 full-cache 성능을 유지하는 것을 우선으로 한다. 연구는 이 목표를 충족시키는 방법을 우선 설계하고 압축 비율은 그 다음으로 고려하는 평가 기준을 도입했다.
ReFreeKV라는 두 단계의 threshold-free 프루닝 알고리즘
ReFreeKV는 초기 위치 기반 순위화와 그 이후 Uni-Metric에 따른 순차적 보존 단계로 구성된 두 단계 워크플로우를 사용한다. 초기 단계는 계산 비용이 낮은 위치 기반 정렬로 후보를 선별하고, 두 번째 단계는 Frobenius norm 기반의 입력 불민감한 정지 조건으로 보존 범위를 결정한다. 이 설계는 병렬 연산으로 구현되어 프루닝 지연을 최소화하고 배치 처리와 호환된다.
Uni-Metric 설계와 전 범위에 대한 보편 임계값 제시
Uni-Metric은 attention 행렬의 Frobenius norm 감소율을 사용해 캐시 제거가 성능에 미치는 영향을 계량화한다. 논문은 경험적 탐색을 통해 norm 감소율 T=1%를 보편 임계값으로 채택했으며, T<1%인 구간에서 대체로 full-cache 성능과 동등한 결과가 관찰됐다. 이 접근은 모델·데이터셋·문맥 길이에 대해 튜닝 불필요한 동적 예산 배분을 가능하게 했다.
광범위한 실험 검증과 효율적 구현
13개 데이터셋과 여러 LLM 백본(Llama3, Mistral, Qwen)을 대상으로 ReFreeKV를 평가해 대부분의 경우 near-lossless 성능을 확인했다. 예를 들어 Llama3-8B에서 평균 63.68%의 KV 예산을 자동 할당하면서 원본 성능을 약간 상회하는 결과가 보고됐다. 또한 PyTorch 누적합과 where 연산을 활용해 모든 레이어의 정지 위치를 병렬로 계산해 프루닝 오버헤드를 기존 방법들과 동등한 수준으로 유지했다.
핵심 아이디어 이해하기
Transformer 계열 모델은 autoregressive 생성 과정에서 이전 토큰들의 key와 value 벡터를 KV cache로 저장하고, 매 디코딩 단계에서 이 캐시를 사용해 attention을 계산한다. 이때 KV cache 크기는 모델 크기와 시퀀스 길이에 비례하여 GPU 메모리를 급격히 소모하며, 따라서 불필요한 캐시 위치를 제거하면 메모리와 계산 비용을 절감할 수 있다. 기존 프루닝 방법들은 어떤 위치를 버릴지 결정하려면 입력별 예산 임계값을 사전에 정해야 하며, 이 값은 데이터셋과 태스크에 따라 크게 달라져 실전에서는 튜닝 비용과 성능 불안정성을 초래했다.
방법론
ReFreeKV는 두 단계로 작동한다. 첫 번째 단계는 위치 기반 순위화를 수행해 시퀀스 앞부분의 토큰을 우선 보존 후보로 선정하고, 뒤쪽 토큰은 역순으로 고려해 후보 순서를 만든다. 이 순위화는 토큰의 위치 편향을 이용해 계산 오버헤드를 낮추는 한편 이후 단계의 탐색 공간을 단순화한다. 두 번째 단계는 Uni-Metric이라고 명명한 정지 조건을 사용해 순위화된 후보를 왼쪽에서 오른쪽으로 순차적으로 보존한다. Uni-Metric은 원본 attention 행렬의 Frobenius norm과, 특정 위치까지를 남겼을 때의 축소된 attention 행렬(norm) 사이의 비율 감소를 기준으로 삼는다. 식으로는 i_prune = argmin_j (1 - ||Ã_j||_F / ||A||_F < T) 형태로 정지 위치를 결정하며, 논문은 경험적으로 T=1%를 보편 임계값으로 선택했다. 계산량 절감을 위해 전체 n×n 어텐션을 계산하지 않고 마지막 k 행의 평균으로 1×n 벡터 A'를 얻어 근사 norm을 계산하며, 실험에서 k=1이 효율성과 성능 보존에서 우수함이 확인됐다. 구현 측면에서는 PyTorch의 누적 제곱합과 where 연산을 활용해 모든 레이어의 정지 위치를 병렬로 산출해 프루닝 오버헤드를 최소화했고, 초기 두 개의 bottom layer는 안전성을 위해 항상 전체 KV를 유지하는 설계를 채택했다.
주요 결과
주요 실험은 13개 데이터셋과 세 가지 LLM 계열(Llama3-Instruct, Mistral-7B-Instruct, Qwen2.5-Instruct)을 대상으로 수행됐다. ReFreeKV는 Llama3-8B에서 평균 KV 예산을 63.68%로 자동 할당하면서 전체 데이터셋 평균에서 full-cache 성능을 소폭 초과했고, Qwen2.5-7B에서는 평균 76.02% 예산으로 full-cache 대비 +2.63% 향상을 보고했다. Mistral-7B에서는 평균 약 86.75% 예산으로 1.5% 성능 저하라는 결과가 관찰되어 모델별로 보존 수준 차이가 존재함이 확인됐다. Ablation study에서는 attention 행렬 축소를 위해 k=1을 선택할 때 계산 복잡도가 크게 감소하면서도 성능 손실이 거의 없었고, 위치 기반 순위화가 attention-score 기반 순위화보다 전반적인 견고성과 효율성에서 우수한 결과를 냈다. Latency 측정에서는 PyTorch 병렬 연산으로 프루닝 오버헤드가 기존 방법들과 동등하거나 미미한 수준이며, 배치 처리 시 throughput이 10–20% 향상되는 관측이 보고됐다.
관련 Figure

그림은 Frobenius norm 기반 임계값을 0.1%에서 5%까지 변동시킬 때 Llama3-8B, Mistral-7B, Qwen2.5-7B의 정규화된 성능이 어떻게 변하는지를 나타냈다. 세 모델 모두 극히 작은 임계값 구간에서는 full-cache 성능을 보존하거나 소폭 초과하는 경향을 보였고 임계값이 커질수록 성능 저하가 발생해 T=1%가 균형점으로 유효함을 뒷받침했다. 이 결과는 Uni-Metric의 보편 임계값 선택과 ReFreeKV의 threshold-free 목표가 실험적으로 타당함을 지지한다.
Figure 2는 Uni-Metric 임계값 변화에 따른 모델 성능(정규화된 성능)을 다양한 임계값 구간에서 보여준다.
기술 상세
전체 아키텍처는 입력 prefilling 후 한 번만 실행되는 프루닝 파이프라인으로 설계됐다. 각 Transformer 레이어·헤드 단위로 KV 위치를 순위화하고, 순차적 보존 판정을 위한 Uni-Metric 계산은 각 샘플에 대해 병렬로 수행돼 루프 오버헤드를 제거했다. Uni-Metric의 핵심 수학적 기반은 attention 행렬 A의 Frobenius norm ||A||_F이며, 특정 위치 i까지 보존했을 때의 축약 행렬 ||Ã_i||_F와의 비율 감소 1 - ||Ã_i||_F / ||A||_F를 사용해 정지 조건을 판단한다. 어텐션 행렬 전체를 계산할 경우 계산 및 메모리 복잡도는 O(n^2)이나, 이를 줄이기 위해 A의 마지막 k 행을 평균해 얻은 1×n 벡터 A'로 근사 norm을 계산함으로써 실전 복잡도를 O(k) 수준으로 낮췄다. 실험 설정에서는 k=1을 채택해 거의 O(1) 수준의 추가 비용으로 프루닝 판단을 수행했고, PyTorch의 cumsum과 where 연산으로 누적 제곱합 기반의 정지 위치를 병렬로 식별했다. 구현상 안정성 확보를 위해 초기 두 레이어의 KV는 항상 보존하도록 설정했으며, 배치 처리를 위해 짧은 샘플은 패딩으로 맞춰 각 샘플별로 독립적인 보존 포인트를 허용했다.
한계점
논문에서 명시한 주요 한계는 ReFreeKV가 달성한 압축비와 이론적 최적 예산 사이에 간극이 존재한다는 점이다. 일부 데이터셋에서는 더 작은 예산으로도 full-cache 성능을 유지할 수 있으나 ReFreeKV는 보수적으로 더 많은 예산을 유지하는 사례가 관찰됐다. 또한 ReFreeKV는 경험적 근거로 near-lossless를 보였으나 성능 저하에 대한 형식적 보증을 제공하지 않으며 특정 백본에서 소폭의 성능 하락이 보고된 점이 한계로 명시됐다.
실무 활용
ReFreeKV의 구현 코드는 공개되어 있어 실제 추론 파이프라인에 통합할 수 있다. 논문은 PyTorch 기반의 병렬 연산으로 정지 위치를 계산하는 구체적 구현을 제공해 프루닝 단계에서의 지연을 최소화했다. 실운영에서는 입력 혼합 환경에서 사전 임계값 튜닝 없이 메모리 절감과 성능 보존을 동시에 도모할 수 있다.
- 긴 컨텍스트를 다루는 LLM 추론 시스템에서 KV 메모리 사용량을 줄여 더 긴 토큰을 처리해야 하는 상황
- 다양한 도메인의 요청이 섞이는 프로덕션 환경에서 임계값 튜닝 없이 안정적인 추론 성능을 확보해야 하는 상황
- 온디바이스 또는 메모리 제약이 있는 서버에서 모델 배치 처리를 통해 throughput 개선을 추구하는 경우
코드 공개 여부: 공개
코드 저장소 보기키워드
용어 해설
- KV cache
- — Transformer 기반 모델이 토큰별로 생성 과정에서 저장하는 key와 value 벡터의 집합으로, 추론 중 attention 연산에서 이전 토큰 정보를 재사용해 성능을 유지하지만 시퀀스 길이에 따라 GPU 메모리 사용량이 선형으로 증가해 긴 컨텍스트에서 메모리 병목을 유발한다.
- Frobenius norm
- — 행렬의 모든 원소 제곱합의 제곱근으로 정의되는 수치로서 어텐션 행렬의 전반적 크기 변화를 정량화하는 데 사용되며, 특정 위치까지 캐시를 제거했을 때 attention 행렬의 에너지 감소를 수치적으로 측정해 성능 저하 신호로 활용한다.
- Position-based ranking
- — 입력 시퀀스에서 앞쪽 토큰이 일반적으로 더 중요하다는 관찰을 바탕으로 토큰을 우선순위화하는 단순한 전략으로, 초기 몇 개 토큰을 앞에서부터 보존하고 이후 토큰은 뒤에서부터 역순으로 고려해 효율적으로 후보를 정렬하는 방식이다.
- Attention matrix reduction
- — 원본 n×n 어텐션 행렬 전체를 계산하지 않고 마지막 k 행을 평균해 1×n 형태의 벡터로 요약하는 기법으로, 계산 복잡도를 O(n^2)에서 k 수준으로 줄여 실시간 프루닝 판단을 가능하게 한다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.