칭화대와 홍콩중문대(CUHK) 연구진이 LLM 에이전트가 자신의 KV 캐시를 직접 덜어 내고 위치를 다시 맞추도록 하는 서빙 시스템 AKV를 오픈소스로 공개했다. 서빙 시스템과 정책 라이브러리로 이뤄졌고 모델 가중치는 포함하지 않는다. 코드는 Apache-2.0 라이선스이며 SGLang을 기반으로 만들었다.1
연구진은 3개 모델과 4개 에이전트 벤치마크 평균에서 임계값 요약 방식(Standard)과 비교해 비용이 27.7% 낮아지고 점수가 1.7점 올랐다고 보고했다. 실행 환경은 SGLang이 도는 NVIDIA GPU다. 논문 실험은 A800-80GB 8장에서 BF16으로 돌렸고, 빠른 시작 안내는 GPT-OSS-120B를 텐서 병렬 2로 GPU 2장에 올린다. 지원 대상은 현재 Qwen, GPT-OSS, MiniMax-M2 계열 텍스트 모델뿐이다.1
텍스트를 고치지 않고 캐시만 덜어 낸다
기존 컨텍스트 엔지니어링은 대화 이력을 잘라 내거나 요약한다. 앞부분 텍스트를 고치면 그 뒤의 KV 상태가 모두 무효가 되어 남은 뒷부분을 프리필로 다시 계산해야 한다. 그래서 하네스는 늦게, 그리고 크게 요약하는 경향이 있고, 이때 중간 단계의 세부 정보를 잃을 수 있다.
AKV가 내세우는 캐시 엔지니어링은 텍스트 이력을 그대로 두고, 어떤 KV 항목이 어텐션에 보이는지만 바꾼다. 남긴 항목은 재계산 없이 재사용하며, 지워진 메시지의 정보를 여전히 담고 있을 수 있다. 논문의 비용 분석에서는 KV 캐시 읽기가 API 총비용의 82.4%를 차지했다.1
세 가지 연산과 서빙 구현
AKV는 캐시 연산을 세 가지로 정의한다. Append는 새 토큰을 붙이는 기본 갱신이다. Drop은 선택한 항목을 위치 변경 없이 이후 어텐션에서 제외한다. Repos는 남은 키를 0번부터 r-1번 위치로 옮겨 쓰는 연산으로, 회전 위치 임베딩 회전을 쓰고 값은 그대로 두므로 은닉 상태를 다시 계산하지 않는다. 구성 요소를 하나씩 빼 본 실험에서 Repos를 더하자 GPT-OSS-120B의 BrowseComp-Plus 통과율이 55%에서 62%로 올랐다.
서빙이 까다로운 이유는 같은 토큰이라도 연산 이력에 따라 캐시 상태가 달라지기 때문이다. 단순한 접두사 일치로는 엉뚱한 상태를 재사용할 수 있다. AKV는 SGLang의 기수 트리에 drop 노드와 reposition 노드를 추가했고, 삭제한 KV는 그것을 쓰는 활성 요청이 없을 때만 해제한다. 밀려난 상태는 세그먼트 배치 어텐션으로 프리필 한 번에 복원한다.1
벤치마크 결과
주력 정책은 최근 도구 응답 12개만 남기고 나머지를 굴리며 버리는 방식이다. 비교 기준인 Standard는 96K 토큰에서 요약하고(MiroThinker는 192K), Text Engineering은 48K에서 요약한다. 평가에는 BrowseComp-Plus, GAIA-Text, SWE-bench Verified, xbench-DeepSearch-2510을 썼다.1
참고로 SWE-bench Verified는 OpenAI가 SWE-bench 저자들과 함께 내놓은 하위 집합으로, 전문 개발자들이 검토해 문제가 없다고 판정한 500개 표본으로 구성된다.2
| 모델 | Standard 점수 / 비용 | Text Engineering 점수 / 비용 | AKV 점수 / 비용 |
|---|---|---|---|
| MiniMax-M2.7 | 52.4 / 5.0 | 52.8 / 5.7 | 53.7 / 4.4 |
| GPT-OSS-120B | 51.0 / 11.2 | 48.3 / 10.2 | 53.1 / 7.3 |
| MiroThinker-1.7-Mini | 44.1 / 20.4 | 37.1 / 18.1 | 45.8 / 14.8 |
AKV는 Text Engineering보다도 비용이 21.9% 낮다. 정확도 차이는 긴 작업에서 벌어진다. MarkTechPost가 프로젝트 페이지를 인용해 전한 바로는 BrowseComp-Plus에서 96K 토큰 이상 이어진 작업의 GPT-OSS-120B 점수가 AKV 37%, Standard 24%, Text Engineering 32%다.
가장 좋은 사례는 SWE-bench Verified의 GPT-OSS-120B로, 작업당 비용이 20.0센트에서 9.7센트로 내려가고 점수는 40.0에서 43.2로 올랐다. 가장 나쁜 사례는 BrowseComp-Plus의 MiniMax-M2.7이다. 점수 58.9로 Text Engineering의 62.3보다 3.4점 낮았다. 비용은 공개된 요금으로 계산한 API 환산 추정치이고, 위치를 옮긴 토큰도 캐시 적중 요금으로 매겼다. 연구진은 이를 일부러 보수적으로 잡은 선택이라고 설명했다.1
서빙 속도와 에이전트의 자체 조정
서빙 실험은 GPT-OSS-120B로 긴 문맥의 SWE-bench Verified 작업 80개를 돌렸다. 각 방식의 최대 성능 설정에서 AKV의 출력 처리량은 1.18배, 입력 처리량은 1.53배였고 P95 요청 지연 시간은 1.51배 빨랐다. 동시 요청 16개에서는 Standard의 P95 지연이 229.90초까지 치솟은 반면 AKV는 30.63초였다. KV 부담이 커지자 Standard가 프리필을 반복한 탓이다. 디코딩 한 단계의 전체 어텐션 시간은 7.082ms에서 2.849ms로 줄었다.
GPU 예산을 제한하고 SWE-bench Verified 작업 100개를 돌리면 AKV의 통과율은 약 47%였다. Standard는 40.7%, Text Engineering은 32.3%였다.
에이전트가 정책을 스스로 다듬는 실험도 있었다. MiniMax-M2.7이 BrowseComp-Plus 작업 20개로 정책을 고친 뒤 따로 둔 100개 작업에 적용하자, 여섯 번째 정책은 기준 정확도를 유지하면서 Standard보다 비용이 17.8% 낮았다. 이와 별개로 논문 초록은 전문가가 설계한 정책을 기준으로 7.1%를 더 아꼈다고 적었다. 앞의 17.8%는 Standard 대비, 뒤의 7.1%는 전문가 설계 정책 대비 수치로 기준이 다르다. 캐시 제어를 모델이 부르는 도구로 노출했을 때 GPT-OSS-120B는 100개 작업 부분집합에서 52.1에서 61.0으로 올랐다. 반면 MiniMax-M2.7은 비용이 5.4센트에서 5.9센트로 늘었다.1
사용 방법과 비교 대상
인터페이스는 상태를 저장하지 않으며 OpenAI 호환 방식이다. 클라이언트는 전체 메시지 이력과 선택 필드 두 개를 보낸다. drop_message는 트리거가 되는 메시지 번호와 그때 버릴 메시지를 짝지은 값이고, reposition은 그 뒤에 위치를 압축할 메시지 번호 목록이다. CachePolicy가 트리거, 선택기, 위치 재조정 규칙으로 이 필드를 만든다. 기본 정책은 턴 기준, 토큰 기준, 모델 기준이 있고, CacheTool을 쓰면 모델이 drop_context를 직접 호출한다.
MarkTechPost는 비슷한 KV 캐시 기법의 대표 수치도 함께 정리했다. SGLang RadixAttention은 처리량 최대 6.4배, StreamingLLM은 슬라이딩 윈도 재계산 대비 최대 22.2배, SnapKV는 16K에서 생성 3.6배 속도를 내세운다. 이 수치는 각 프로젝트가 자체 논문에서 다른 조건으로 잰 값이어서 서로 직접 비교할 수 없다고 이 매체는 덧붙였다. AKV는 미세 조정이 필요 없다.1
출처
- Tsinghua AI Open-Sources AKV, a Cache Engineering Server for LLM Agents on SGLang marktechpost.com
- Introducing SWE-bench Verified openai.com