AI VIDEO BRIEFING
프롬프트 캐싱으로 LLM 에이전트 추론 비용 줄이기: KV 캐시와 서버 라우팅 원리
클로드 코드 같은 AI 코딩 에이전트는 매 턴 같은 프롬프트 앞부분을 반복 전송한다. 이 영상은 트랜스포머의 KV 캐시를 재사용하는 프롬프트 캐싱이 추론 비용을 어떻게 낮추는지, 캐시를 깨뜨리는 실수와 서버 라우팅·보안 이슈까지 설명한다.

핵심 메시지
쉽게 이해하기
클로드 코드나 코덱스 같은 코딩 에이전트는 사용량에 따라 수천 달러까지 요금이 나올 만큼 비쌀 수 있다. 이런 비용이 생기는 핵심 이유는 에이전트 루프가 LLM을 매우 반복적인 방식으로 호출하기 때문이다. 실행이 진행될수록 요청의 앞부분은 그대로 유지되고 뒤로 갈수록 길이만 점점 늘어난다.
프롬프트 캐싱의 기본 아이디어는 여러 턴에 걸쳐 반복되는 prefix를 캐싱하는 것이다. 트랜스포머의 셀프 어텐션에서 대부분의 계산은 각 토큰의 K·V 행렬을 구하는 일인데, 이 값을 담아 둔 것이 KV 캐시다. 한 응답을 생성할 때 토큰마다 재사용하던 KV 캐시를, 사용자의 응답이나 도구 결과를 기다리는 동안 서버 메모리에 유지해 에이전트 턴 사이에도 재사용하는 것이다.
다만 캐시 유지에는 비용이 따른다. 영상은 앤트로픽 가격표를 예로 들어 Opus의 입력이 100만 토큰당 5달러인데 캐시 읽기는 그 10배 저렴한 50센트라고 소개한다. 대신 입력을 5분 또는 1시간 캐싱해 두려면 유지 기간에 따라 프리미엄을 더 내야 한다.
캐시는 토큰이 정확히 일치해야만 적중한다. 앞쪽에 매 요청 달라지는 타임스탬프를 넣거나, 턴마다 도구 목록을 바꾸거나, 사용자 이름·직책 같은 메타데이터를 시스템 프롬프트 앞에 두면 그 뒤 전부가 캐시 미스가 된다. 그래서 프롬프트 설계가 곧 비용 설계다.
서버 측에서는 무작위 라우팅 대신 같은 prefix 요청을 같은 서버로 보내야 캐시가 살아 있다. 스케줄러는 어느 서버가 무엇을 캐싱했는지 해시로 추적하고, SGLang 논문의 Radix attention은 요청들의 접두어 트리로 즉석에서 캐시와 제거를 결정한다. 마지막으로 전역 캐싱은 응답 시간 차이로 다른 사용자의 프롬프트 존재를 추론하는 이론적 타이밍 공격 여지를 남긴다고 짚는다.
주요 인사이트
- KV 캐시는 원래 한 응답을 생성하는 동안 토큰마다 재사용되던 개념인데, 프롬프트 캐싱은 이를 에이전트 턴 사이로 확장한 것이다.
- 캐시는 정확히 토큰 단위로 일치해야 적중하므로, 프롬프트를 어떻게 배치하느냐가 그대로 비용을 좌우한다.
- 라우팅이 무작위이면 캐시 미스가 잦아지므로, 스케줄러가 각 서버의 캐시 상태를 해시로 추적해 관련 요청을 같은 서버로 보낸다.
- Radix attention은 요청 구조를 미리 몰라도 접두어 트리로 공통 부분은 공유하고 메모리가 부족하면 가장 오래 안 쓰인 잎 노드부터 제거한다.
- 전역 캐싱은 응답 시간만으로 다른 사용자의 유사 프롬프트 존재를 추론할 수 있는 타이밍 사이드채널 위험을 남긴다(영상 속 연구는 실제 프롬프트 복원에는 실패했다).
자주 묻는 질문
프롬프트 캐싱은 왜 비용을 줄여 주나요?
반복되는 프롬프트 앞부분의 KV 캐시를 서버 메모리에 유지해 다시 계산하지 않기 때문이다. 영상에 따르면 앤트로픽은 캐시 읽기를 일반 입력의 10배 저렴하게(예: Opus 100만 토큰당 5달러 vs 캐시 읽기 50센트) 책정한다.
캐시가 깨지는 대표적인 실수는 무엇인가요?
프롬프트 앞부분에 매 요청 달라지는 타임스탬프를 넣거나, 도구 목록을 턴마다 바꾸거나, 사용자 이름·직책 같은 메타데이터를 시스템 프롬프트 앞에 두는 경우다. 달라진 토큰 이후는 전부 캐시 미스가 된다.
Radix attention은 무엇인가요?
SGLang 논문이 제시한 방식으로, 서버에 올라온 요청들의 접두어를 트리로 구성해 공통 접두어는 캐시를 공유하고, 메모리가 부족하면 가장 오래 사용되지 않은 잎 노드부터 제거해 즉석에서 캐시를 관리한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗