AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

손실 없이 KV 캐시를 4배 줄이는 방법, Speculative KV Coding

FP8 양자화로 이미 절반 크기로 줄인 KV 캐시를 손실 없이 추가로 4배 더 압축할 수 있다면, 원본 대비 총 8배가 됩니다. 에이전트 워크플로우가 길어질수록 KV 캐시의 저장과 전송이 추론 비용의 상당 부분을 잡아먹기 시작하는데, Speculative KV Coding은 이 병목을 손실 없이 해소하는 새로운 접근입니다.

AI 생성 이미지

Fergus Finn이 2026년 5월에 공개한 기술 연구 블로그입니다. 작은 예측 모델(predictor)을 활용해 큰 타겟 모델의 KV 캐시를 손실 없이 압축하는 아이디어와 초기 실험 결과를 담고 있습니다. Qwen3 모델 패밀리를 기준으로, FP8 캐시에 추가 적용 시 3.08×~3.90×의 무손실 압축을 달성했습니다.

출처: Speculative KV coding: losslessly compressing KV cache by up to ~4× – fergusfinn.com

KV 캐시가 왜 문제인가

KV 캐시(Key-Value Cache)는 LLM이 긴 컨텍스트를 처리할 때 이전에 계산한 attention 중간값을 메모리에 저장해 재계산을 피하는 메커니즘입니다. 연산 비용을 메모리 비용으로 교환하는 방식이죠.

문제는 컨텍스트가 길어질수록 캐시 크기가 폭발적으로 커진다는 점입니다. 에이전트 워크플로우처럼 극단적으로 긴 컨텍스트를 다루는 경우, 캐시를 저장하고 서버 간에 전송하는 비용이 추론 전체를 지배하기 시작합니다. FP8 양자화처럼 정밀도를 낮추는 손실 압축이 이미 업계 표준이 됐지만—vLLM, SGLang, DeepSeek V4 모두 FP8 KV 캐시를 기본값으로 채택했습니다—양자화는 성능 저하를 수반하고, 이미 낮은 비트폭에서는 추가 압축 여지도 거의 남지 않습니다.

Speculative KV Coding의 핵심 아이디어

Speculative KV Coding은 Speculative Decoding과 유사한 발상에서 출발합니다. 그런데 그 전에 알아야 할 사실이 하나 있습니다. KV 캐시는 사실 랜덤한 데이터가 아닙니다. 같은 프롬프트와 같은 모델 가중치가 주어지면, 캐시 값은 완전히 결정됩니다.

이 결정론적 특성이 핵심입니다. 작고 빠른 예측 모델이 타겟 모델과 동일한 프롬프트로 포워드 패스를 실행하면, 타겟의 KV 캐시를 미리 근사할 수 있습니다. 예측값과 실제 캐시 사이의 차이(잔차)만 산술 코더(통계적 패턴을 활용해 비트 단위로 데이터를 압축하는 알고리즘)로 인코딩해 전송하면 됩니다. 잔차가 작을수록 코딩 비용이 줄어들고, 압축률이 높아집니다.

작동 흐름은 다음과 같습니다.

  1. 인코드 측: 타겟 모델로 실제 KV 캐시를 생성하고, 예측 모델로 근사값을 생성합니다
  2. 두 값의 잔차를 산술 코딩으로 압축해 비트스트림으로 전송합니다
  3. 디코드 측: 같은 프롬프트로 예측 모델을 실행해 동일한 근사값을 재현합니다 (결정론적이므로 항상 같은 결과)
  4. 비트스트림과 근사값을 결합해 원본 KV 캐시를 완벽하게 복원합니다

복원이 손실 없는 이유는 두 가지입니다. 산술 코더 자체가 무손실이고, 양쪽이 같은 프롬프트와 같은 예측 모델을 사용하기 때문에 근사값을 결정론적으로 재현할 수 있기 때문입니다.

예측 모델로 무엇을 쓸까

가장 직관적인 선택은 타겟 모델의 FP8 양자화 버전입니다. 양자화 모델의 포워드 패스는 원본과 매우 가까워 잔차가 작고 구조적입니다. 별도의 학습도 필요 없습니다. 소량의 캘리브레이션 데이터로 잔차의 통계를 한 번 측정해 고정하면 됩니다. 주요 오픈소스 모델은 대부분 FP8 변형이 함께 배포되므로, 추가 구성 없이 파이프라인을 구성할 수 있습니다.

초기 실험 결과

Qwen3 모델 패밀리를 대상으로 실험한 결과, BF16 캐시 기준으로 2.37× (0.6B 모델)에서 2.70× (32B 모델)의 무손실 압축을 달성했습니다. 모델이 클수록 압축률도 단조롭게 높아지는 경향이 있었습니다.

FP8 캐시에 적용했을 때는 효과가 더 두드러집니다. 3.08× (0.6B)에서 3.90× (32B)의 압축이 가능했고, FP8 양자화와 조합하면 원본 BF16 캐시 대비 총 6~8배 압축에 이릅니다.

실제로 어디에 쓸 수 있나

저자는 두 가지 구체적인 활용처를 제시합니다.

데이터센터 간 분산 추론(disaggregated prefill)이 첫 번째입니다. 프리필과 디코딩을 다른 서버에서 처리하는 방식은 고속 내부 네트워크에서는 잘 작동하지만, 느린 외부 링크에서는 캐시가 너무 커서 실시간 전송이 어렵습니다. Speculative KV Coding으로 캐시를 충분히 줄이면 이 병목이 해소됩니다. Kimi 팀의 최근 연구와 같이 하이브리드 어텐션으로 캐시를 줄이는 접근과 겹쳐 쓰면 효과가 배가됩니다.

두 번째는 prefix 캐싱입니다. 시스템 프롬프트나 RAG 문서처럼 반복적으로 쓰이는 공유 prefix의 KV 캐시를 압축 저장하면, 같은 메모리에 더 많은 항목을 담을 수 있어 캐시 히트율이 높아집니다.

아직은 초기 연구지만

이 방법의 가장 큰 강점은 FP8 양자화처럼 기존에 이미 적용된 손실 압축과 독립적으로 쌓인다는 점입니다. 현재의 추론 스택 위에 추가로 올릴 수 있는 무손실 레이어입니다. 저자는 이를 초기 연구 노트 수준으로 규정하면서도, 더 정교한 잔차 모델이나 다른 패밀리의 소형 예측 모델을 활용하는 후속 방향을 제시하고 있습니다. 예측 모델의 연산 비용이 압축 이득을 실제로 상회하는지는 앞으로 풀어야 할 과제입니다.


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다