Qwen3.8-27B: KV 캐시 이식을 통한 출력 품질 향상
Qwen3.8-27B: Using KV Cache Transplants to Boost Output Quality
핵심 요약
LLM 추론 시 컨텍스트 길이에 따라 모델 양자화 수준을 동적으로 변경하여 VRAM 효율과 출력 품질을 동시에 잡는 실험적 접근법을 소개함.
- 동적 양자화 — 컨텍스트 증가에 맞춰 모델 정밀도를 낮춰 VRAM을 확보함.
- KV 캐시 이식 — 모델 교체 시 프리필(prefill) 반복 없이 기존 컨텍스트를 그대로 유지함.
- 성능 검증 — NIAH 벤치마크를 통해 정적 양자화보다 높은 품질 일관성을 확인함.
- 하드웨어 최적화 — 24GB VRAM 환경에서 고정밀 모델로 시작해 효율적으로 컨텍스트를 확장함.
지난 글 이후로 GPU에서 고품질 추론을 최대한 뽑아내려고 동적 성능 저하(dynamic performance degradation)를 위한 여러 옵션을 고민 중이야.
주말에 진짜 흥미로운 논문을 하나 읽었어. Cache-to-Cache: Direct Semantic Communication Between Large Language Models라는 논문인데, 여기서 저자들은 멀티 LLM 에이전트 시스템을 돌리는 방법을 설명하더라고. 근데 에이전트끼리 하네스(harness), 도구 호출, 메시지를 주고받게 하는 대신, 한 에이전트의 kvcache를 다른 에이전트의 kvcache에 직접 융합해서 컨텍스트를 넘기게 만들었더라.
이게 가능하다면 에이전트 간에 컨텍스트를 훨씬 빠르고 완벽하게 넘길 수 있겠지? 에이전트가 요약이나 전달 메시지를 만드는 게 아니라, 그냥 작업 메모리를 통째로 뜯어내서 타겟 모델에 이식해버리는 거니까.
논문에서는 이걸 어떻게 하는지도 설명하는데, 핵심은 소스 모델과 타겟 모델의 내부 표현을 '변환'할 수 있는 작은 신경망을 학습시켜서, 크기나 아키텍처가 다른 모델끼리도 kvcache를 융합할 수 있게 만든 거야.
여기서 문득 이런 생각이 들었어. 같은 모델의 서로 다른 양자화 버전끼리 kvcache를 재사용하면 어떨까? 어차피 아키텍처도 같고 학습 과정도 똑같으니까, '변환기'를 따로 학습시키지 않아도 호환되지 않을까?
그리고 만약 고정밀 양자화로 추론을 시작했다가, 장치 메모리가 부족해지면 저정밀 양자화로 '바통 터치'를 하면 어떻게 될까? 처음부터 저정밀 양자화로 돌리는 것보다 더 나은 결과가 나올까?
스포일러를 하자면, 내가 돌려본 벤치마크 결과는 "그렇다"였어! 내가 진행한 구체적인 실험 내용을 아래에 정리해둘게.
방법론
다양한 컨텍스트 길이에서 어려운 NIAH(Needle In A Haystack) 스타일의 작업들을 생성했고, 5가지 Qwen3.8 양자화 전략을 맞붙여봤어!
이 작업들을 위해 unsloth로 만든 Qwen3.8-27B의 세 가지 양자화 버전을 사용했어.
- UD-Q6_K
- UD-Q4_K_XL
- UD-IQ3_S
전략
이 양자화 버전들을 가지고 작업 성능을 비교할 세 가지 정적 양자화 전략을 세웠어.
-
IQ3_S: f16 kvcache, 최대 컨텍스트 196,096
-
Q4_K_XL: q8_0 kvcache, 최대 컨텍스트 183,296
-
Q6_K, f16 kvcache, 최대 컨텍스트 175,104
참고로 Q3와 Q4 전략은 24GB GPU에 맞춘 컨텍스트 윈도우를 사용했고, Q6_K는 24GB가 넘어야 돌아가. 이건 작은 장치에서의 정적 양자화 전략이 더 큰 장치에서의 전략과 얼마나 차이가 나는지 확인하려고 설정한 거야.
동적 양자화 전략이 그 차이를 얼마나 메꿀 수 있는지 보는 게 핵심이지!
마침 동적 양자화 전략 두 가지를 정의해서 각각의 저정밀 정적 모델 케이스와 비교해봤어. 이 동적 양자화 전략들도 둘 다 24GB GPU에 맞춘 컨텍스트 제한을 걸었어.




