오픈 웨이트 LLM 캐싱: 왜 당신의 캐싱은 제공자 룰렛인가
목차
클로즈드 모델에서 프롬프트 캐싱은 문서화된 하나의 계약이다. Claude는 cache_control 중단점을 제공하고, OpenAI와 Gemini는 토큰 최솟값 이상에서 자동으로 캐싱하며, 할인율은 공개되어 있고 안정적이다. 페이지 하나만 읽으면 끝이다.
오픈 웨이트는 그 전제를 깨뜨린다. 동일한 Qwen 또는 Llama 체크포인트가 수십 개의 호스트에서 서비스되며, 캐싱은 모델의 속성이 아니라 모델이 실행되는 위치의 속성이다. 이것이 얼마나 큰 차이를 만드는지 보여주기 위해, 동일한 ~4.7K 토큰 프롬프트를 업스트림을 고정하지 않은 멀티 프로바이더 라우터를 통해 동일한 Qwen 모델에 여섯 번 전송한 실측 결과를 소개한다:
| 호출 | 라우터가 선택한 업스트림 | 비용 | 캐시된 토큰 |
|---|---|---|---|
| 1 | 업스트림 A | $0.0141 | 0 |
| 2 | 업스트림 B | $0.000709 | 0 (콜드) |
| 3–6 | 업스트림 B | $0.000286 | 4,224 (웜) |
동일한 모델, 동일한 라우터, 동일한 프롬프트: 라우터가 선택한 업스트림과 해당 업스트림의 프리픽스 웜 여부만으로 요금이 $0.0141에서 $0.000286까지 — 49배 차이 — 벌어졌다.
요약
- 오픈 웨이트 모델의 프롬프트 캐싱은 라우팅의 결과물이지, 모델의 기능이 아니다. 캐싱은 추론 엔진에서 무료로 자동 구현되며, 그 위의 모든 계층에서 유지되거나 파괴된다.
- 5개 계층: 하나가 캐싱을 제공하고, 셋이 이를 망가뜨릴 수 있다. 모델(캐시 가능성 설정, 캐시 미제공) → 추론 엔진(캐싱, 무료) → 컴퓨트 호스트(불균등하게 상품화) → 게이트웨이(멀티 클러스터 라우팅) → 라우터(분리된 캐시를 가진 벤더들에 분산).
- 실측 결과. 라우터에 의해 분산된 동일한 요청이 한 선택에서 다른 선택보다 49배 더 많은 비용을 발생시켰다. 한 모델에서 한 호스트는 59.6% 할인을 제공했고 다른 호스트는 **0%**였으며, 공개된 캐시 할인율은 모델에 따라 **0%에서 ~98%**까지 분포한다.
- 대처 방법. 반복되는 프리픽스가 동일한 웜 캐시에 도달하도록 라우트를 고정하라.
cached_tokens필드가 아닌 비용 델타로 감사하라(실제 캐시 히트에서도 0으로 표시되는 경우가 많다). 레이턴시는 별도로 고려하라 — 웜 프리필은 비용 할인이 ~0%일 때도 2–10배 빠르다.
실측 수치는 2026-06-14에 멀티 프로바이더 라우터와 자체 게이트웨이를 대상으로, 고정된 ~4.7K 토큰 영어 프롬프트, 소규모
max_tokens, 순차 실행 조건에서 측정되었다. 문서화된 가격은 같은 날 주요 프로바이더 문서를 기준으로 확인하고 교차 검증했다. 비율 (할인율, 레이턴시 변화)이 이식 가능한 부분이며, 절대적인 달러 금액은 환경, 프롬프트, 부하에 따라 달라진다. 인용 전에 직접 재현하라.
실제로 마주치게 될 캐시 유형들
스택 설명에 앞서, 용어부터 정리합니다. 오픈 웨이트 호스트 전반에 걸쳐 네 가지 서로 다른 캐시 형태가 존재하며, 각각 과금 방식이 다릅니다.
1. 자동 프리픽스 캐싱 (마커 없음). 가장 지배적인 패턴입니다. 서버가 프롬프트 프리픽스를 해시하고, 이전 요청과 일치하면 KV 상태를 재사용하며, 자체적으로 할인을 적용합니다 — cache_control도 없고, 코드 변경도 없으며, 비활성화가 불가능한 경우도 많습니다. DeepSeek, Zhipu GLM, 그리고 대부분의 오픈 웨이트 호스트가 이 방식을 사용합니다. 쓰기는 무료이며, 캐시 수명은 VRAM(몇 분)부터 디스크(DeepSeek는 프리픽스를 “몇 시간에서 며칠”간 유지)까지 다양합니다.
2. 명시적 브레이크포인트 캐싱 (cache_control). Anthropic 방식으로, 일부 오픈 웨이트 호스트도 제공합니다. Alibaba의 Model Studio는 Qwen 메시지 블록에 "cache_control": {"type": "ephemeral"}을 받아들이며, 일부 서빙 플랫폼은 동등한 마커를 노출합니다. 경계를 직접 표시하고, 쓰기 추가 요금을 지불하는 대신 더 깊은 읽기 할인을 받습니다.
3. 임대형 캐시 객체 (스토리지 요금 포함). 주목해야 할 유형입니다. Moonshot의 레거시 moonshot-v1 패밀리는 캐시를 생성하기 위해 POST /v1/caching을 호출해야 하며, 쓰기 요금, 토큰당·분당 스토리지 요금, 그리고 호출당 히트 요금이 청구됩니다. Google의 명시적 Gemini 캐싱도 동일한 개념으로 — 입력 비용에 스토리지 비용이 더해져 대략 1M 토큰당 시간당 $1.00–$4.50 수준입니다. 캐시는 임대하고 직접 가비지 컬렉션해야 하는 리소스입니다.
4. 셀프 호스트 KV 재사용 (무료). 직접 가중치를 실행하면 추론 엔진이 자동으로 무료로 캐싱합니다. 쓰기 요금도, 읽기 요율도, 스토리지 임대료도 없으며 — 히트 시 단순히 프리필을 건너뜁니다.
| 캐시 유형 | 마커? | 쓰기 요금 | 스토리지 요금 | 사용처 |
|---|---|---|---|---|
| 자동 프리픽스 | 없음 | 무료 | 없음 | 대부분의 오픈 웨이트 호스트; DeepSeek, GLM |
| 명시적 브레이크포인트 | cache_control | 추가 요금 | 없음 | Qwen (명시적 모드); 일부 플랫폼 |
| 임대형 캐시 객체 | 생성/TTL/삭제 | 있음 | 있음 | Moonshot moonshot-v1, Gemini 명시적 |
| 셀프 호스트 KV 재사용 | 없음 | 무료 | 없음 | vLLM, SGLang, TensorRT-LLM |
Model Studio의 Qwen은 자동 모드와 명시적 모드 모두를 제공하며, 실질적인 트레이드오프가 존재합니다. 암묵적 방식은 히트 시 **입력의 20%**를 청구하고 쓰기는 무료인 반면, 명시적 방식은 히트 시 **입력의 10%**를 청구하지만 **쓰기 시 125%**를 부과하고 항목의 TTL을 5분으로 제한합니다. 할인은 더 깊지만, 채우는 데도 비용이 들고 만료될 때마다 다시 비용이 발생합니다.
스택에서 캐싱이 위치하는 곳
핵심 아이디어는 다음과 같습니다. 오픈 웨이트를 위한 프롬프트 캐싱은 정확히 한 레이어에서 해결되고, 그 위의 모든 레이어에서 위협받습니다. 가중치에서 위로 스택을 따라 올라가면서, 각 레이어에서 물어보세요: 이 레이어는 캐싱을 제공하는가, 아니면 단순히 전달하는가 — 그리고 아래 레이어가 이미 수행한 것을 깨뜨릴 수 있는가?
request
|
v
+--------------------------------------------------+
| L5 router scatters across vendors | can break it
| L4 gateway multi-cluster routing | can break it
| L3 compute host uneven delivery | can break it
|==================================================|
| L2 inference engine CACHING LIVES HERE, free | <-- the cache is born here
|==================================================|
| L1 model cacheability: MLA / GQA | sets the ceiling
+--------------------------------------------------+
A cache hit is born at L2 and must survive L3-L5 routing to reach you;
every layer above L2 is a chance to land where your prefix isn't.
레이어 1 — 모델: 캐시가 아닌 캐시 가능성
대부분의 사람들이 캐싱이 존재한다고 생각하는 레이어가 바로 이곳입니다 — “DeepSeek에는 캐싱이 있다” — 따라서 정확하게 짚고 넘어가야 할 첫 번째 레이어입니다. 체크포인트는 가중치의 묶음이며, KV 캐시의 존재 여부와 무관하게 동일한 어텐션을 실행합니다. 캐시도, 할인도, TTL도, cache_control 마커도 제공하지 않습니다 — 이것들은 모두 서빙 레이어의 기능입니다. 엄밀한 의미에서 가중치 자체는 어떠한 캐싱 제품도 제공하지 않습니다.
그러나 가중치가 중립적인 것은 아니며, DeepSeek이 그 이유를 보여주는 완벽한 사례입니다. 모델의 어텐션 아키텍처가 KV 캐시의 크기를 결정하고, 따라서 캐싱이 얼마나 저렴해질 수 있는지의 한계를 결정합니다:
- DeepSeek의 Multi-head Latent Attention (MLA) 는 KV 캐시를 저랭크 잠재 표현으로 압축합니다 — 표준 멀티헤드 캐시의 약 4–14% 수준으로. 이 압축이 바로 DeepSeek의 API가 프리픽스를 디스크에 유지하고 캐시 읽기 비용을 입력의 ~2%로 책정할 수 있게 해주는 핵심입니다. 아키텍처는 가능하게 하는 요소이고, 디스크 캐시는 그 위에 구축된 제품입니다.
- Grouped-Query Attention (GQA) — Llama, Qwen, Mistral, DeepSeek에서 사용 — 는 KV 헤드를 공유하여 그룹 인수만큼 캐시를 축소합니다 (Llama-3에서 ≈8×).
따라서 레이어 1의 기여는 캐시가 아닌 캐시 가능성입니다: 아키텍처가 상위 모든 레이어에서 캐싱을 얼마나 저렴하게 만들 수 있는지의 상한선을 설정하지만, 가중치 자체가 캐시된 토큰을 직접 서빙하지는 않습니다. 그리고 “DeepSeek에는 캐싱이 있다”는 말은 같은 이름을 가진 두 가지 서로 다른 것을 슬며시 합쳐버립니다 — 가중치 (이 레이어, MLA를 제공)와 DeepSeek의 API 및 서빙 스택 (레이어 2–3, 디스크 캐시, 할인, 사용량 필드를 제공). 오픈 가중치를 다운로드하여 직접 실행하면 MLA의 작은 KV 캐시는 유지되지만, 디스크 캐시 제품은 DeepSeek의 서버에 남아 있습니다 — 대신 배포하는 레이어 2가 무엇이든 그것을 물려받게 됩니다. 따라서 실무적 접근은 여전히 유효합니다: 모델이 캐싱을 하는지 묻는 것을 멈추고 어디서 서빙되는지를 물어야 합니다 — 다만 그것이 아키텍처가 중요하지 않다는 의미로 오해해서는 안 됩니다. 아키텍처가 상한선을 설정하고, 서빙 경로가 실제로 얻을 수 있는 것을 결정합니다.
레이어 2 — 추론 엔진: 캐싱이 구축되는 곳, 그리고 무료
한 레이어 위로 올라가면, 캐싱은 단순히 존재하는 것이 아니라 해결되어 있으며, 무료입니다. 현대적인 추론 엔진은 프리픽스를 자동으로 캐싱합니다:
- vLLM — Automatic Prefix Caching: 각 KV 블록을 해시하고, 이전에 본 프리픽스 해시를 가진 블록을 재사용하며, LRU 방식으로 퇴거합니다. V1에서 기본 활성화.
- SGLang — RadixAttention: KV 캐시를 래딕스 트리에 저장하여 공유 프리픽스를 재사용하고, 캐시 인식 스케줄링을 적용합니다.
- TensorRT-LLM — 블록 재사용 (
enable_block_reuse, 기본 활성화), KV 블록을 호스트 메모리로 오프로드하는 옵션 포함.
LMCache와 같은 프로젝트는 이를 더욱 확장합니다 — KV를 CPU/디스크로 오프로드하고 인스턴스 간에 공유하는데, 이는 곧 다루게 될 라우팅 문제를 해결하는 씨앗이 됩니다. 핵심은 이렇습니다: 자체 호스팅을 한다면 끝입니다. 캐싱은 자동이고, 이미 운영 중인 GPU 비용 외에 추가 비용이 없으며, LRU로 퇴거되고, 소유권이 여러분에게 있습니다 — 캐시 히트는 단순히 프리필을 건너뛰어 TTFT를 낮추고 처리량을 높입니다. cached_tokens 청구 필드가 없는 이유는 청구되는 것이 없기 때문이며, 그 효과는 여러분 자신의 지연 시간 지표에서 나타납니다. 클로즈드 모델에서는 캐싱을 임대하지만, 오픈 모델에서는 완전히 소유할 수 있습니다. 단점은 호스팅 환경과 정반대입니다: 캐시가 일시적이어서 (VRAM, LRU) 프리픽스가 핫한 상태를 유지하는 동안에만 살아남습니다 — 이것이 바로 상위 레이어들이 반드시 보존해야 하는 것입니다.
레이어 3 — 컴퓨트 호스트: 불균등한 상품화
상용 추론 호스트는 레이어 2를 감싸고 복수의 레플리카 집합을 운영합니다. 이들은 자동 캐싱을 무료로 상속받지만, 문제는 그것을 얼마나 잘 구현하느냐이며, 두 가지 축에서 결과가 엇갈립니다.
첫째, 노출 방식과 가격이 천차만별입니다. 주요 오픈 웨이트 호스트들을 살펴보면: 한 곳은 캐시된 입력에 일률적으로 50% 할인을 적용하고 캐시된 토큰은 속도 제한을 건너뛰게 해주며, 다른 한 곳은 서버리스에서 기본적으로 50% 할인을 제공하고, 세 번째 곳은 모델별로 캐시 입력 가격을 책정하여(예: Qwen 티어에서 약 80% 할인) 친화성 향상을 위한 캐시 키 힌트를 노출하며, 네 번째 곳은 전용 엔드포인트에서 캐싱을 항상 활성화하되 비공개로 유지합니다. 동일한 기반 엔진을 사용하면서도 네 가지 가격 철학이 존재합니다.
둘째 — 그리고 이것이 캐싱이 실패하는 첫 번째 지점입니다 — 멀티 레플리카 문제입니다. 워밍된 프리픽스는 콜드 요청을 처리한 단 하나의 레플리카의 VRAM에 존재합니다. 호스트 자체의 로드 밸런서가 다음 요청을 캐시가 콜드 상태인 다른 레플리카로 보낼 수 있습니다. 우리는 이를 직접 확인했습니다: 동일한 Qwen 모델을 한 번에 하나의 업스트림에 고정하고 콜드→워밍 순서로 실행한 결과입니다:
| 고정된 업스트림 | 콜드 | 워밍 | 할인율 | cached_tokens |
|---|---|---|---|---|
| Provider A | $0.000709 | $0.000286 | 59.6% | 4,224 ✓ |
| Provider B | $0.000662 | $0.000662 | 0% | 0 |
Provider A는 캐싱이 깔끔하게 작동했고 이를 보고했습니다. Provider B는 — 이 모델에 대한 캐시 읽기 가격을 광고하고 있음에도 — 테스트에서 콜드 호출 한 번과 워밍 호출 두 번에 걸쳐 할인이 전혀 적용되지 않았습니다. 이것이 자격 조건의 문제인지, 레플리카 팬아웃의 문제인지, 아니면 두 번의 요청보다 더 긴 워밍업이 필요한 것인지는 불분명하지만, 이 경로에서 측정된 결과는 0이었습니다. 해당 기능은 레이어 2에서 해결된 문제입니다. 그러나 실제로 그 혜택을 받을 수 있는지는 레이어 3의 실행 세부 사항이며, 호스트마다 다릅니다.
레이어 4 — 게이트웨이: 멀티 클러스터 문제
게이트웨이는 하나 이상의 업스트림 앞에 위치하며, 레플리카 문제를 클러스터 문제로 증폭시킨다. 게이트웨이가 캐시 어피니티(cache affinity) 없이 클러스터나 프로바이더에 라운드 로빈 방식으로 요청을 분산하면, 워밍된 캐시는 구조적으로 도달 불가능한 상태가 된다 — 모든 요청이 해당 프리픽스가 없는 곳으로 떨어지기 때문이다. 캐시를 인식하는 게이트웨이는 프리픽스 해시를 기반으로 라우팅해야 하며, 이를 통해 동일한 프리픽스가 동일한 업스트림에 고정되도록 해야 한다. 레이어 2가 동일한 KV 블록에 프리픽스를 고정하는 방식과 동일한 원리다.
우리는 서드파티 게이트웨이에서 오픈 웨이트 모델을 대상으로 콜드→웜 배터리 테스트를 실행하고, 요청별 cost를 직접 읽었다:
| 모델 | 콜드 | 웜 | 할인율 | 레이턴시 |
|---|---|---|---|---|
deepseek-v4-pro | $0.00189 | $0.0000155 | 99.2% | 6.0s → 1.1s |
deepseek-v4-flash | $0.000564 | $0.0000116 | 97.9% | 4.9s → 1.2s |
qwen3.5-flash | $0.000561 | $0.0000853 | 84.8% | 10.2s → 1.0s |
kimi-k2.5 | $0.00242 | $0.000469 | 80.6% | 3.2s → 1.2s |
qwen3-max | $0.00350 | $0.00336 | 3.8% | 2.2s → 1.1s |
qwen3.5-plus | $0.00114 | $0.00114 | 0.0% | 1.8s → 1.0s |
DeepSeek-V4는 97~99%를 달성했다(어피니티가 엔드 투 엔드로 작동). 반면 qwen3.5-plus와 qwen3-max는 카탈로그에 캐시 읽기 가격이 명시되어 있음에도 불구하고 웜 호출에서 ~0%를 반환했다. 이 표에는 두 가지 게이트웨이 교훈이 더 숨어 있다:
- usage 필드는 거짓말을 한다; cost는 그렇지 않다.
cached_tokens는 99% 비용 절감이 발생한 경우를 포함해 모든 호출에서 0으로 읽혔다. 많은 OpenAI 호환 게이트웨이는 자동으로 캐싱하는 업스트림에 대해 cached-token 필드를 채우지 않는다. 토큰 필드가 아닌 콜드와 웜 호출 간의cost델타로 감사하라 — 게이트웨이의 캐시 주장을 감사하는 것과 동일한 교훈이다. - 비용이 줄지 않아도 레이턴시는 개선된다. 모든 웜 호출은 2~10배 빨라졌다 —
qwen3.5-flash는 10.2s→1.0s로 단축됐다 — ~0% 할인인 경우도 포함해서. 캐시 히트는 호스트가 어떻게 가격을 책정하든 관계없이 프리필을 건너뛰므로, 청구서에서 아무것도 돌려받지 못하는 게이트웨이에서도 TTFT 측면에서 캐싱은 충분히 가치가 있을 수 있다.
어피니티를 보존하지 않는 게이트웨이는 도달할 수 없는 캐시를 제공하고, 캐시 비용을 노출하지 않는 게이트웨이는 검증할 수 없는 캐시를 제공한다.
레이어 5 — 라우터: 공급자 간 무작위 분산
최상단에는 멀티 프로바이더 라우터가 하나의 모델 ID를 서로 다른 회사의 클러스터에 로드 밸런싱하며, 각 클러스터는 별도의 캐시를 보유합니다. 이제 특정 공급자 내에서 완벽한 어피니티를 달성하더라도 소용이 없습니다. 호출 1이 한 벤더로, 호출 2가 다른 벤더로 라우팅되면 공유 캐시가 존재하지 않기 때문입니다. 이것이 이 글 서두에서 언급한 분산 현상이며, 레이어 4를 더욱 악화시킵니다. 단순히 여러 클러스터가 아니라, 캐시 상태와 가격이 완전히 분리된 여러 벤더가 존재하는 것입니다(가장 비싼 선택지는 가장 저렴한 업스트림 기본 요금의 20배에 청구됩니다). 캐시는 라우팅이 우연히 동일한 공급자에 고정될 때만 작동했습니다.
해결책은 무작위성을 제거하는 것입니다. 라우팅을 결정론적으로 만들어 반복되는 프리픽스가 동일한 웜 캐시에 도달하도록 합니다.
# Pin the upstream; otherwise load-balancing scatters you across disjoint caches.
# (field names follow a common multi-provider router's API)
import requests
requests.post(f"{ROUTER_BASE}/chat/completions",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "qwen/qwen3.5-35b-a3b",
"messages": messages,
"usage": {"include": True}, # return cost + cached_tokens
"provider": { # the part that makes caching work
"order": ["<your-chosen-upstream>"],
"allow_fallbacks": False,
},
})
라우터는 cached_tokens(히트 시 4,224)와 요청별 cost를 실제로 보고했으므로 두 가지 모두 검증할 수 있습니다. 이는 0을 반환했던 레이어 4 게이트웨이보다 낫습니다. 하지만 라우팅을 제한하는 것은 여러분의 몫입니다. 캐싱은 가격 기능으로 포장된 라우팅 문제입니다. 캐시는 레이어 2에서 무료이며, 레이어 3, 4, 5는 여러분을 캐시에서 멀어지게 라우팅하는 세 가지 단계적 방법입니다.
할인 폭은 얼마나 될까요? 천차만별입니다
라우팅이 올바르게 정렬되었을 때 얼마나 절약할 수 있을까요? 클로즈드 모델의 경우 캐시 읽기 할인은 약 90% 수준에 집중되어 있습니다. 오픈 웨이트 모델의 경우 공개된 캐시 읽기 가격은 미미한 수준부터 거의 전액에 가까운 수준까지 다양하며, 심지어 동일 벤더의 라인업 내에서도 차이가 납니다. 퍼스트파티 공개 요금:
| 모델 (퍼스트파티 / 모드) | 입력 $/M | 캐시 읽기 $/M | 할인율 | 레이어 2 유형 |
|---|---|---|---|---|
| DeepSeek-v4-flash | 0.14 | 0.0028 | ~98% | 자동 디스크 |
| DeepSeek-v4-pro | 1.74 | 0.145 | ~92% | 자동 디스크 |
| Qwen (명시적 모드) | base | 0.10× base | 90% | 명시적 |
| Kimi K2.6 | 0.95 | 0.16 | ~83% | 자동 |
| GLM-5 | 1.0 | 0.20 | 80% | 자동 암묵적 |
| Qwen (암묵적 모드) | base | 0.20× base | 80% | 자동 |
DeepSeek의 자동 디스크 캐시는 업계에서 가장 깊은 할인을 제공합니다. deepseek-v4-flash는 캐시된 입력을 $0.14/M 미스 대비 $0.0028/M, 즉 1:50 비율로 읽으며, 레이어 4 테스트에서 97.9%로 재현되었습니다. 동일한 오픈 웨이트를 호스팅하는 서드파티 호스트는 캐시된 입력 가격을 독립적으로 책정합니다. 일부는 일률적으로 약 50%를 적용하고, 다른 곳은 모델별로 약 50%~90%까지 다양합니다. 따라서 실제로 받는 할인은 모델이 아니라 어떤 호스트에 연결되느냐에 따라 결정됩니다. 동일한 기능 이름, 48포인트의 격차.
할인은 벤처 속성이기 때문에 하나의 모델이 서비스되는 곳마다 서로 다른 캐시 경제성을 가집니다. deepseek-v4-pro를 네 가지 방식으로 비교하면:
| 위치 (레이어) | 캐시 읽기 할인율 | 출처 |
|---|---|---|
| 퍼스트파티 API (L3) | ~92% ($1.74 → $0.145) | 문서화됨 |
| 서드파티 호스트 A (L3) | ~89% ($1.74 → $0.20) | 문서화됨 |
| 서드파티 호스트 B (L3) | ~92% ($1.6 → $0.135) | 문서화됨 |
| 서드파티 게이트웨이 (L4) | 99.2% | 측정값 (콜드→웜) |
“DeepSeek-V4-Pro는 캐싱을 지원합니다”는 사실이지만 거의 무의미합니다. 실제 운영상의 질문은 “어디서, 어떤 요금으로, 어떻게 보고되는 캐싱을 지원하는가”입니다.
의사결정 체크리스트
- ✅ 모델이 상한선을 결정하며, 캐시가 아닙니다 (레이어 1). 모델의 어텐션 아키텍처(MLA, GQA)가 캐싱이 얼마나 저렴해질 수 있는지를 결정하지만, 캐시된 토큰을 직접 제공하지는 않습니다. 따라서 요청이 어디서 처리되는지, 해당 호스트의 스택이 무엇인지는 여전히 확인해야 합니다.
- ✅ 자체 호스팅이라면 이미 무료로 사용 가능합니다 (레이어 2). 자동 프리픽스 캐싱이 활성화되어 있는지 확인하고(vLLM/SGLang에서는 기본값으로 활성화됨), 프리픽스 히트율을 모니터링하세요.
- ✅ 컴퓨트 호스트에서는 가격 항목이 아닌 실제 제공 여부를 검증하세요 (레이어 3). 캐시 읽기 가격은 하나의 주장일 뿐입니다. 콜드→웜 비용 차이를 직접 측정하고, 호스트가 제공하는 경우 캐시 키 어피니티 힌트를 활용하세요.
- ✅ 게이트웨이를 통할 경우, 캐시 어피니티 라우팅과 비용 보고를 요구하세요 (레이어 4). 동일한 프리픽스가 하나의 업스트림에 고정되지 않거나, 웜 호출 시
cost가 감소하지 않는다면 캐시에 도달할 수 없거나 검증이 불가능한 상태입니다. - ✅ 라우터에서는 업스트림을 고정하세요 (레이어 5). 라우팅을 제한하거나(예: 폴백을 비활성화한 프로바이더 순서 필드 사용), 그렇지 않으면 분리된 캐시 간 로드 밸런싱으로 인해 히트를 놓치고 최대 20–50배 더 비싼 업스트림을 사용하게 될 위험이 있습니다.
- ✅ 레이턴시와 비용을 별도로 평가하세요. 달러 할인이 ~0에 가깝더라도, 웜 프리필은 2–10배 더 빠릅니다.
- ✅ 스토리지 요금이 부과되는 캐시 유형에 주의하세요. 임대형 캐시(Moonshot
moonshot-v1, Gemini 명시적 캐시)는 유휴 캐시에 대해 토큰-시간 단위로 요금을 청구하지만, 자동 프리픽스 캐시는 그렇지 않습니다.
결론
클로즈드 모델의 경우 “캐시가 되는가?”라는 질문에는 하나의 답이 있습니다. 오픈 웨이트 모델의 경우, 이 기능은 수년 전에 추론 엔진 레이어에서 이미 해결되었습니다. vLLM과 SGLang은 모든 프리픽스를 무료로, 자동으로 캐싱합니다. 그 위의 모든 레이어는 히트를 보존하거나 분산시키는 배관에 해당합니다. 컴퓨트 호스트의 레플리카 밸런서, 게이트웨이의 클러스터 라우팅, 라우터의 벤더 간 무작위 분산이 그 예입니다. 모델 아키텍처는 캐싱이 얼마나 저렴해질 수 있는지의 상한선을 결정합니다. MLA와 GQA는 실질적인 모델 수준의 이점입니다. 하지만 요청이 거치는 경로가 실제로 무엇을 얻는지를 결정합니다. 캐시 동작을 라우팅 속성으로 취급하세요. 실제로 사용할 경로에서 비용 측면으로 측정하고, 웜업한 캐시가 실제로 히트되도록 경로를 고정하세요. 그리고 세상에서 가장 큰 할인도, 두 번째 요청이 첫 번째 요청이 한 번도 닿지 않은 곳에 도달한다면 아무런 의미가 없다는 점을 기억하세요.
KV 캐시가 존재하는 이유와 TTL의 작동 방식에 대한 자세한 내용은 How KV Cache & TTL Work를 참고하세요. 게이트웨이의 캐시 주장을 감사하는 방법은 Does Your LLM Gateway Lie About Cache?를 확인하세요.
FAQ
오픈 웨이트 모델은 프롬프트 캐싱을 지원하나요? 웨이트는 캐싱이 얼마나 저렴해질 수 있는지를 결정합니다 — MLA, GQA 같은 어텐션 아키텍처는 KV 캐시를 줄여줍니다 — 하지만 캐시 자체, 할인율, 그리고 API는 서빙 스택에서 제공됩니다. 캐싱은 추론 엔진(vLLM, SGLang, TensorRT-LLM)에서 구현되고, 컴퓨트 호스트에 상속되며, 게이트웨이와 라우터에 의해 전달(또는 분산)됩니다. 동일한 체크포인트를 세 개의 호스트에 배포하면 무료 자동 캐싱, 캐싱 없음, 또는 명시적 캐싱만 지원하는 경우를 각각 만날 수 있습니다.
같은 모델인데 한 호출이 다른 호출보다 49배 더 비쌌던 이유는 무엇인가요? 멀티 프로바이더 라우터에서 업스트림이 고정되지 않은 요청은 기본 가격과 캐시 상태가 서로 다른 여러 벤더의 클러스터에 로드 밸런싱됩니다. 한 호출은 비싼 프로바이더에 콜드 상태로 도달했고, 다른 호출은 저렴한 프로바이더에 웜 상태로 도달한 것입니다. 업스트림을 고정(프로바이더 순서 제한, 폴백 비활성화)하면 두 가지 모두 제어할 수 있습니다.
셀프 호스팅 시 캐싱 비용을 지불해야 하나요? 아니요. vLLM, SGLang, TensorRT-LLM의 자동 프리픽스 캐싱은 기본적으로 활성화되어 있으며 무료입니다 — 캐시 히트 시 프리필을 건너뛸 뿐입니다. 이미 운영 중인 GPU 비용만 지불하면 되며, 캐시는 VRAM이 필요할 때 LRU 방식으로 제거됩니다.
API에서 cached_tokens: 0이라고 표시되는데 청구 금액이 줄었습니다 — 캐싱이 작동한 건가요?
아마도 그렇습니다. 많은 게이트웨이는 자동으로 캐싱하는 업스트림에 대해 cached_tokens를 채우지 않습니다. cost 필드를 신뢰하세요: 콜드 호출과 동일한 웜 호출 사이에 큰 비용 차이가 있다면 캐시 히트가 발생한 것입니다.
가장 높은 캐시 할인율을 제공하는 오픈 웨이트 모델은 무엇인가요?
DeepSeek의 자동 디스크 캐시입니다: deepseek-v4-flash는 캐시된 입력을 약 $0.0028/M에 읽어오는 반면, 캐시 미적용 시 $0.14/M입니다(약 98% 할인). 저희의 콜드→웜 테스트에서 V4 라인 전반에 걸쳐 97.9–99.2%의 할인율이 재현되었습니다. 많은 서드파티 호스트는 대신 일률적으로 약 50% 할인을 적용합니다.
스토리지 요금을 부과하는 캐시에 주의할 점이 있나요?
네 — Moonshot의 moonshot-v1 명시적 캐시와 Gemini의 명시적 캐시는 캐시를 유지하는 동안 토큰-시간 단위로 요금을 청구합니다(Gemini 약 $1–4.50 / 1M 토큰 / 시간). 삭제하는 것을 잊어버린 유휴 캐시는 계속 요금이 발생합니다. 자동 프리픽스 캐시에는 스토리지 요금이 없습니다.
검증: 실제 비용/지연 시간 수치는 2026-06-14에 멀티 프로바이더 라우터 및 자체 게이트웨이를 대상으로, 약 4,700 토큰의 고정 프롬프트, 소규모 max_tokens, 순차적 콜드→웜 실행 방식으로 측정되었습니다. 할인율은 요청별로 반환된 cost에서 산출되었습니다. 문서화된 가격 및 캐시 메커니즘은 같은 날 주요 프로바이더 문서를 기준으로 확인하고 교차 검증하였습니다. 일부 벤더 수치(특히 Moonshot의 명시적 캐시 요금)는 자주 변경됩니다 — 인용 전 현재 값을 반드시 확인하세요. 실제 수치는 프로바이더, 프롬프트, 지역, 부하에 따라 달라질 수 있습니다.
출처
- DeepSeek — 가격 정책
- DeepSeek — KV 캐시 / 컨텍스트 캐싱 가이드
- DeepSeek-V3 기술 보고서 — MLA (KV 캐시 압축)
- GQA: Training Generalized Multi-Query Transformer Models (Ainslie et al.)
- Alibaba Cloud Model Studio — 컨텍스트 캐시 및 가격 정책
- Moonshot AI — 컨텍스트 캐싱
- Zhipu / Z.AI — 가격 정책 및 캐싱
- vLLM — 자동 프리픽스 캐싱
- SGLang — RadixAttention / 캐시
- LMCache — KV 캐시 오프로딩 및 공유
- Google — Gemini 컨텍스트 캐싱
모두 2026-06-14에 확인되었습니다. 금융 조언이 아니며, 실제 적용 전 현재 가격을 반드시 확인하세요.