긴 문맥을 다루는 LLM을 구동하다 보면, GPU 메모리의 대부분이 모델의 가중치가 아닌 KV 캐시(KV Cache)에 점유되는 상황을 수없이 마주하게 된다. 생성되는 토큰이 늘어날수록 과거의 모든 토큰분에 해당하는 '키(Key, K)'와 '벡터 값(Value, V)'을 계속해서 유지해야 하기 때문이다. 여기서 소박한 의문이 생긴다. K와 V는 메모리를 정확히 반반씩 사용하는데, 캐시에서 불러와 실제로 사용하는 것은 V뿐이다. K는 '어느 토큰에 주목할 것인가'를 결정하는 길 안내 역할로 사용될 뿐, 정답 그 자체는 아니다. 이 길 안내를 위해서만 캐시의 절반을 계속 지불하는 것이 타당한가?
Keyless Attention
이라는 논문은 이 질문에 대해 "키의 캐시는 필요 없다"라고 정면으로 답한다. 표준적인 QKV 어텐션(Attention)에서 키 투영(Key Projection)을 통째로 없애고, V만을 캐시하는 설계로 KV 캐시 메모리를 정확히 절반으로 줄인다.
- Keyless Attention: Value-Space Routing and Value-Only Caching for Efficient Transformers (Xin Gao, Xingming Xu / arXiv 2606.21848, v2: 2026-07-31)
먼저 표준 어텐션을 떠올려 보자. 쿼리(Query, Q)와 키(K)의 내적으로 스코어를 만들고, softmax로 가중치를 구한 뒤, 값(V)을 섞는다.
표준: softmax( Q Kᵀ / √d ) V 단, Q = X·W_Q, K = X·W_K, V = X·W_V
캐시에 남기는 것은 K와 V이다. 여기서 K는 "Q가 각 토큰을 얼마나 끌어올 것인가"를 결정하는 주소 라벨 역할을 하며, 정답의 내용물은 아니다. 도서관에 비유하자면, 책(V)마다 붙어 있는 검색용 인덱스 카드(K)에 해당한다.
Keyless Attention은 이 인덱스 카드를 버린다. 대신, 쿼리를 값의 공간으로 번역하는 값 라우팅 투영(Value-Routing Projection) W_R을 하나 삽입하여, 스코어를 Q와 "V 그 자체" 사이에서 구한다.
Keyless: softmax( X·W_Q·W_R·(X·W_V)ᵀ / √d ) X·W_V
핵심은 추론 시 W_Q·W_R을 사전에 하나의 행렬로 합성(Convolution)할 수 있다는 점이다. 즉, 실행 시의 추가 계산은 제로이며, 키의 투영 계산(X·W_K)이 통째로 사라진다. 따라서 메모리가 절반이 될 뿐만 아니라, 디코딩(Decoding) 시의 처리량(Throughput)도 베이스라인을 상회한다. 캐시에 두는 것이 V뿐이라는 점 하나만 바뀐다.
키를 그냥 버리는 것은 이전부터 있던 발상(K와 V를 공유하는 수법 등)이지만, 논문은 이들이 "키가 담당하던 길 안내 역할을 명시적으로 대체하지 못하고 있다"라고 비판한다. W_R은 바로 그 역할을 받아내는 그릇으로서 도입되었다는 점이 새롭다.
보통 표현력을 깎으면 품질이 떨어진다. 그런데 실험에서는 5개 모델 중 4개 모델에서 Keyless의 퍼플렉시티(Perplexity)가 더 좋았다.
| 모델 | 표준 QKV | Keyless |
|---|
| GPT-2 (557M) | 33.50 | 33.26 |
| ... | | |
하류 태스크(Downstream Task, GPT-2 557M)에서도 HellaSwag나 StoryCloze 등 5문제 중 4문제에서 앞섰다.
저자가 제시하는 이유는 흥미롭다. W_R과 W_V는 학습 중에 그래디언트 얽힘(Gradient Entanglement)이 발생하기 때문에, 라우팅이 코퍼스(Corpus) 고유의 공기(Co-occurrence) 패턴에 과도하게 특화되기 어려워진다. 요컨대, 키를 없앤 것이 결과적으로 암묵적인 정규화(Regularization)로서 작용했다는 설명이다. 실제로 베스트 도달 후의 검증 손실(Validation Loss) 악화가 표준보다 완만하여, 과적합(Overfitting)되기 어려운 거동이 관찰되고 있다. 개인적으로는 이 "제약이 일반화(Generalization)를 돕는다"라는 식의 주장은, 파라미터를 늘리는 방향에만 익숙해진 이들에게 기분 좋은 역발상으로 다가온다.
KV 캐시 절감은 최근 몇 년간의 주전장이며, 이미 여러 계보가 존재한다. 그 위치를 정리하면 다음과 같다.
| 수법 | 캐시하는 것 | 키 절감의 사고방식 |
|---|
| MHA (순수 구현) | K와 V (전체 헤드) | 절감하지 않음 |
| ... | | |
주목할 점은 Keyless가 "헤드를 통합하는" GQA와 직교한다는 것이다. 논문은 MHA와 GQA 모두에서 유효성을 확인했으며, GQA로 축소한 상태에서 키를 지워 다시 절반으로 줄이는 조합 기술이 원리적으로 가능하다. KV 캐시 절감이라는 카드(Hand)가 하나 더 늘어났으며, 심지어 기존 수법과 중첩하여 사용할 수 있는 형태로 늘어났다고 보는 것이 정확하다.
과도한 기대는 금물이다. 검증된 모델은 최대 Qwen2 1.5B, 데이터는 WikiText-103의 3,000만 토큰, 학습은 A100 한 장이라는 소규모 설정에 머물러 있다. 7B나 13B, 하물며 실제 서비스 규모의 멀티 헤드 (Multi-head) 구성에서 동일하게 50% 절감과 품질 유지가 성립할지는 이 논문만으로는 판단할 수 없다. 저자 스스로도 등가성 (Equivalence)을 보장하는 정리의 존재 조건이 멀티 헤드에서 항상 성립하는 것은 아니라고 인정하고 있으며, 수렴이 표준보다 약간 느리다(에포크당 학습 시간이 늘어난다)는 점도 명기하고 있다.
그럼에도 불구하고, 추론 시 추가 비용 없이 캐시를 확실하게 절반으로 줄일 수 있다는 주장은 긴 문맥 서빙 (Long-context serving)의 비용 구조를 직접적으로 타격한다. KV 캐시 최적화를 양자화 (Quantization)나 압축 (Compression)으로 깎아왔던 팀들에게, "애초에 키 (Key)를 가지지 않는다"라는 발상은 시도해 볼 가치가 있는 보조선이다. 우선은 수중에 있는 중규모 모델에서 $W_R$을 한 장 추가하여 키 투영 (Key projection)을 제거하고, 퍼플렉시티 (Perplexity)와 디코딩 속도가 논문대로 작동하는지 재현하는 것부터 확인해 보고 싶다. 구현체가 공개된다면, GQA와의 병용 시 동작이 다음 관전 포인트가 될 것이다.