DCKV는 하이브리드 언어모델의 프롬프트 KV 캐시를 학습 변환 부호화로 압축한다
DCKV: Learned Transform Coding of the Prompt KV Cache in Hybrid Language Models
무엇인가
이 논문은 하이브리드 언어모델에서 긴 프롬프트를 재사용할 때 남는 저장·이동 비용을 다룬다. Qwen3.5-2B는 24개 층 중 6개만 full attention을 쓰고 18개는 Gated DeltaNet이라 KV 캐시가 작아 보이지만, bf16 기준 토큰당 12,288바이트로 프롬프트가 길어지면 4K에서 48MiB, 128K에서 1.5GiB까지 커진다. 반면 Gated DeltaNet의 순환 상태는 요청당 9.84MiB로 고정이다. 논문은 프롬프트 재사용 시 prefill을 생략하는 상황에서, 저장된 요청의 메모리를 압축 페이로드만이 아니라 순환 상태까지 포함해 판단해야 한다고 본다. 기존 KVTC는 PCA와 동적 계획법 비트 할당, 범용 무손실 코더를 쓰지만 변환과 비트 할당이 캐시 재구성 오차를 줄일 뿐 모델 출력은 보지 않는다.
어떻게 동작하나
DCKV는 프리필된 프롬프트의 attention KV 캐시를 한 번 압축해 저장하고 디코딩 전에 완전히 복원한다. 순환 상태는 정확히 유지하고, 처음 4개와 마지막 128개 위치는 bf16으로 남긴다. 나머지 위치는 6개 full-attention 층의 키와 값을 한 행으로 묶어 6,144차원 벡터로 만들고, 위치 독립성을 위해 RoPE 적용 전 키를 저장한 뒤 복원 후 RoPE를 다시 적용한다. 변환은 평균 m을 뺀 행에 선형 행렬 W_e와 256유닛 GELU 한 층의 비선형 보정 g_e를 적용하고, 성분별 양자화 스텝 Δ로 반올림한 뒤 W_d와 g_d로 복원한다. 초기화는 캘리브레이션 행들의 상위 2,048개 PCA 방향을 키와 값, 모든 층에 공유하는 단일 기저로 쓰고, 보정망의 마지막 층은 0으로 시작해 학습이 선형 변환에서 출발하게 한다. 스텝 대비 스케일이 0.05 미만인 성분은 저장·복원에서 끈다.
무엇과 다른가
엔트로피 부호화는 GPU rANS로 수행하며, 정적 모델은 성분별 라플라스 분포를 양자화 셀에 적분해 확률을 준다. DCKV의 핵심은 이 정적 모델을 두 조건부 모델로 바꾸는 것이다. 토큰 조건 모델은 프롬프트 토큰 임베딩에서 각 계수의 평균을 예측해 라플라스 분포를 이동시키고, 체커보드 문맥 모델은 압축 영역을 짝수·홀수 위치로 나눠 짝수는 토큰 조건만으로, 홀수는 이미 복호된 양쪽 이웃과 자기 토큰 임베딩을 rank-1024 선형 사상으로 사용해 예측한다. 각 패스가 토큰 병렬이라 길이와 무관하게 두 단계로 복호된다. 학습은 동결된 언어모델을 상대로 4,096토큰 프롬프트와 256토큰 연속을 사용하고, 정확한 캐시와 복원 캐시에서 나온 다음 토큰 분포의 KL 발산에 비트율을 더한 목적함수를 최소화한다. 반올림의 미분 불가능은 잡음 양자화로 비트율을 재고 반올림 값으로 복원하되 straight-through gradient를 주는 혼합 양자화로 처리한다.
어떻게 쓰나
실험은 Qwen3.5-2B bf16, greedy decoding, A100 40GB, Hugging Face Transformers에서 수행됐다. RULER 4K는 13개 과제 1,287샘플 평균 3,742토큰, RULER 32K는 13개 과제 1,297샘플, LongBench는 21개 중 18개 과제 평균 10.8K 토큰, MMLU는 57과목 5-shot 평균 620토큰이다. λ=3e5에서 DCKV는 토큰당 205~221바이트로 bf16 대비 56~60배 적게 저장하며 RULER 4K 0.56점, LongBench 1.75점, RULER 32K 0.45점 손실을 냈다. 같은 손실 근처의 KVTC 16×는 최대 0.53점 손실이지만 바이트는 2.5~3.1배 많았고, LongBench에서는 KVTC가 1.44점 더 좋았다(p=0.03). λ=1e5에서는 113~122바이트로 KVTC 32×보다 세 벤치마크 모두 높은 점수를 냈고 KVTC는 2.2~2.7배 많은 바이트를 썼다. λ=5e4에서는 KVTC 32×와 유의차가 없었지만 바이트는 약 4분의 1에서 3분의 1이었다. 세 rate에서 동일 점수 기준 BD-rate로 RULER 4K 72%, LongBench 62% 바이트를 줄였다. xKV는 토큰당 3,667·3,151바이트를 쓰고 RULER 4K·LongBench에서 2.65·3.73점 손실을 냈는데, DCKV λ=1e5는 유의차 없이 96~97% 적은 바이트를 썼다. MMLU에서는 모든 코덱이 페이로드와 무관하게 0.5~1.5점 손실을 보여 코덱 간 분별력이 낮았다.
전제와 한계
구성 요소별 기여도 논문이 직접 분해한다. KVTC의 키·값 분리 기저를 유지한 채 동적 계획법 비트 할당과 DEFLATE를 하나의 양자화 스텝, 라플라스 모델, rANS로 바꾸면 RULER 4K와 LongBench에서 약 1점을 얻는다. 키와 값을 한 기저로 공유하면 같은 스텝에서 7~10% 바이트를 줄이고, 스텝 2.0에서는 점수차가 0.6점 미만, 스텝 4.0에서는 RULER 4K에서 4.3점 높았지만 유의하지 않았다. 동결 모델 출력에 대한 rate-distortion 학습은 비슷한 페이로드에서 학습된 선형 코덱이 미학습 공유 기저보다 RULER 4K에서 3.0점 높았다(159 대 164바이트). 혼합 양자화는 λ=1e5에서 잡음 프록시보다 RULER 4K 0.7점, LongBench 1.7점 높았고 31개 과제 중 20개에서 좋고 6개에서 나빴다. λ=3e5 한 번의 학습으로 네 코덱을 비교한 실험에서는 보정과 조건부 모델을 모두 넣은 DCKV가 추가 없는 코덱보다 세 벤치마크에서 12~14% 바이트를 줄였고 점수차는 유의하지 않았다. RULER 4K에서 보정만 5.5%, 조건부 모델만 8.7%를 절약했고, 조건부 모델은 이미 학습된 코덱에 닫힌 형태로 적합해도 12.5%를 절약했다.
논문은 요청 메모리를 페이로드, 132개 비압축 위치 1.55MiB, 순환 상태 9.84MiB로 계산한다. DCKV의 요청 메모리에서 순환 상태는 RULER 4K 81%, LongBench 73%, RULER 32K 54%다. RULER 4K에서는 KVTC가 최대 12% 더 많은 요청 메모리를 쓰지만 유의차가 없었고, LongBench와 RULER 32K에서는 DCKV가 KVTC 32×보다 각각 2.4점, 6.5점 높았는데 KVTC는 8%, 7% 더 많은 메모리를 썼다. KVTC 16×만 LongBench에서 1.44점 더 좋았고 요청 메모리는 32%, 55% 더 썼다. λ=1e5 DCKV는 KVTC 32×보다 5~22% 적은 요청 메모리로 세 벤치마크 모두 높은 점수를 냈다. 코덱 가중치는 요청별 메모리가 아니라 모델 가중치로 별도 계산되며 DCKV는 fp32 176MiB로 2B 모델의 약 5%, 선형 코덱은 96MiB, KVTC는 10~20MiB다. 피크 GPU 메모리는 DCKV가 182MiB, 선형 코덱이 102MiB 증가한다.
개발자 관점에서 DCKV는 긴 프롬프트의 prefill을 재사용하는 서빙 시스템에서 저장 바이트와 품질을 맞바꾸는 선택지다. 특히 하이브리드 모델은 순환 상태가 고정 크기라 KV 캐시만 압축해도 요청 메모리 절감 폭이 제한되므로, 4K~11K처럼 순환 상태가 저장 요청 메모리의 약 4분의 3을 차지하는 구간에서는 압축률보다 전체 요청 메모리와 TTFT를 함께 봐야 한다. 논문의 측정에 따르면 저장 캐시를 쓸 때 첫 토큰 시간은 4K에서 115ms, 32K에서 287ms로, 비압축 prefill의 862ms와 4,601ms보다 짧았다. 다만 DCKV는 디코딩 전에 전체 bf16 캐시를 복원하므로 피크 GPU 메모리와 출력 토큰당 시간은 줄지 않는다. 또한 조건부 엔트로피 모델이 부동소수점 예측에 의존해 다른 장치에서 비트 단위로 같은 복호가 되는지 검증되지 않았고, rate마다 별도 코덱과 학습이 필요하다.
논문이 밝힌 한계는 분명하다. 결과는 Qwen3.5-2B 한 모델에 한정되고 다른 하이브리드 계열은 시험하지 않았으며, 0.8B에서 개발했지만 모든 결과는 2B다. 13개·18개 과제에서 강한 코덱 간 차이가 유의하지 않은 경우가 많고 다중 비교 보정이나 샘플 구간을 제시하지 않았다. 변수 추적과 문단 검색 같은 일부 과제가 왜 더 크게 손실되는지는 샘플 단위 분석이 없어 설명하지 못한다. 32K까지는 측정했지만 그 이상은 계산 곡선이며, 32K에서 DCKV의 토큰당 페이로드가 RULER 4K보다 3% 높고 KVTC는 12~14% 낮아 계산 곡선이 DCKV 이점을 과장한다. KVTC 베이스라인도 논문의 블록별 양자화 범위·데이터 타입 변형을 재현하지 않았고, MMLU 손실은 압축 자체가 아니라 압축 캐시를 실행하는 평가 하네스에서 올 수 있다고 저자들은 적는다. IFEval과 평균에서 제외한 두 LongBench 과제에서는 모든 코덱이 비압축 참조보다 높은 점수를 내 원인을 밝히지 못했다. 하나의 코덱으로 여러 rate를 커버하는 변동 rate 방식은 상단 rate에서 단일 λ 코덱보다 뒤졌고 원인을 찾지 못했으며, 학습된 스텝에 계수를 곱하는 방식은 재학습 없이 rate를 바꾸지만 바이트 손실이 있다. 동결 모델 대상 학습은 배포된 모델을 그대로 쓸 수 있게 하지만, 코덱과 함께 사전학습하면 더 압축될 가능성은 컴퓨트 부족으로 시험하지 않았다. 압축 단독 시간은 측정하지 않았고, KVTC 시간은 공유 노드에서 32K에 6.8초와 이전 0.6초로 불안정해 지연 비교는 제한적이다.