when reasoning pays off

운영 에세이 · 프롬프트 캐시 리텐션

리텐션: 가정이 아니라 요청 정책

지원되는 모델은 적격 프리픽스를 기본적으로 캐싱하기 때문에 프롬프트 캐싱은 자동처럼 느껴질 수 있습니다. 그래서 으레 그 기본 동작에 기대게 됩니다. 어떤 워크로드가 유휴 간격이 지난 뒤, 교대 경계를 넘어, 배치가 멈춘 뒤, 또는 뒤이은 고객 턴에서 공유 프리픽스를 재사용하는데, 요청 본문은 그저 prompt_cache_retention을 생략한 채 윈도가 여전히 남아 있으리라 믿는 식입니다. 하지만 “기본적으로 캐싱됨”은 “작업이 가정하는 만큼 유지됨”과 같지 않습니다. 요청이 리텐션을 생략하면, 그 작업은 한 번도 요구한 적 없는 캐시 윈도에 기대고 있는 것일 수 있습니다 — 그래서 운영의 질문은 “캐싱이 켜져 있는가?”가 아니라 “요청이 이 워크로드가 의존하는 재사용 윈도를 실제로 요구했는가?”입니다.

이 글 한눈에 보기. 프롬프트 캐싱은 자동이지만, 리텐션 윈도는 요청 정책입니다. Microsoft Learn은 몇 분 안에 비워질 수 있는 in_memory 기본값과 명시적인 24h 윈도를 문서화합니다. 이 한 장 요약은 한 가지 메시지만 전합니다 — 나중의 재사용이 중요하면 리텐션을 명시하세요 — 그리고 경계를 표시합니다. 리텐션 모드는 공식 사양이고, 그 옆의 첫 토큰 지연 형태는 PAYG에서 측정한 정제된 공개 집계로, 서술적으로만 제시합니다. 캐시 리텐션 한 장 요약 SVG 열기.
프롬프트 캐시 리텐션 한 장 요약입니다. 짧은 기본 수명인 인메모리 리텐션을, 따뜻한 프리픽스를 라우팅 가능하게 유지하는 명시적 24시간 윈도와 대비하고, 이 소스 실행에서 24h 셀이 더 낮은 첫 토큰 지연 꼬리를 보였음을 나타냅니다. 핵심 메시지는 리텐션 윈도가 중요하므로 명시적으로 설정하라는 것입니다. 문서화된 리텐션 모드와 정제된 측정 집계로 표시되며, 서술용입니다.

가정하지 않고 윈도를 설정하는 이유

“기본값이면 괜찮다”는 반사 동작은 캐시 윈도가 워크로드가 재사용 사이에 남기는 간격보다 더 오래 버티리라 전제합니다. 그 전제를 받아들이기 전에 두 가지를 나란히 놓아 볼 만합니다. 첫째는 Microsoft Learn이 문서화하는 내용입니다. 리텐션 정책은 in_memory24h 두 가지입니다. in_memory 항목은 보통 비활성 5~10분 안에 비워지고 마지막 사용으로부터 1시간 안에 반드시 제거되는 반면, 확장 리텐션은 캐시된 프리픽스를 최대 24시간까지 라우팅 가능하게 유지할 수 있습니다. gpt-5.4와 그 이전 모델에서는 값을 생략하면 in_memory를 뜻하며, 프롬프트 캐시 가격은 두 정책이 동일합니다. 둘째는 이 저장소의 원천 실행에서 나온 희소한 정제 공개 집계로, 리텐션 모드별로 묶어 in_memory24h 아래에서 첫 토큰 지연과 캐시 적중률이 실제로 어떻게 움직였는지를 보여 주려고 서술용으로 포함합니다.

잠시 멈춰 볼 부분은 그 짝짓기입니다. 적중률만 보면 리텐션 선택이 다른 곳에서 드러나는 동안에도 안심되게 읽힐 수 있습니다. 이 구간에서는 두 모드 모두 높은 적중률(약 0.93~0.96)을 유지해서, 적중률만 보면 리텐션 모드가 거의 중요하지 않은 것처럼 보입니다. 나머지 절반의 이야기는 첫 토큰 지연의 꼬리가 들려줍니다 — 카디널리티 1에서 in_memory 계열은 p95가 106,000 ms 부근이었던 반면 24h 계열은 9,900 ms 부근이었습니다. 즉, 리텐션 선택은 적중률이 아니라 지연 꼬리에서 드러났습니다. 그래서 리텐션은 캐시된 토큰 비중과 지연 시간을 나란히 봐야 하며 — 단순한 성능 조절값이 아니라 요청 정책이자 거버넌스 선택인 이유도 여기에 있습니다. 두 리텐션 모드, 각각의 수명, in_memory 기본값, 동일한 가격, 그리고 확장 리텐션의 인리전 조건은 Microsoft Learn이 문서화하는 내용이고, 지연을 적중률과 나란히 둔 공개 구간은 보편적인 지연 곡선이 아니라 이 저장소가 옹호하는 원천 실행 근거입니다. 아래 차트가 그 짝짓기를 명시적으로 보여 줍니다.

질문

작업이 나중의 캐시 재사용을 기대할 때, 요청은 실제로 그 윈도를 요구하고 있나요?

근거

Microsoft Learn이 리텐션 모드를 정의하고, 이 저장소는 희소한 공개 지연 시간과 적중률 근거를 더합니다.

결정

리텐션을 명시하고, 프리픽스를 안정적으로 유지하며, 지연 시간을 캐시된 토큰 비중과 함께 읽으세요.

자동 캐싱과 명시적 리텐션의 차이

Microsoft Learn은 두 가지 프롬프트 캐시 리텐션 정책을 설명합니다. in_memory24h입니다. 인메모리 캐시 항목은 일반적으로 비활성 상태 5~10분 이내에 제거되며, 마지막 사용으로부터 한 시간 이내에는 항상 제거됩니다. 확장 리텐션은 캐시된 프리픽스를 더 오래, 최대 24시간까지 활성 상태로 유지할 수 있습니다.

짧을 수 있는 기본값

gpt-5.4 및 이전 모델에서는 리텐션을 생략하면 in_memory를 의미합니다.

명시가 필요한 더 긴 재사용

작업이 나중의 재사용을 기대한다면, 지원되는 곳에서 prompt_cache_retention24h로 설정하세요.

차별화 요소가 아닌 가격

Microsoft Learn은 프롬프트 캐시 가격이 두 리텐션 정책에서 동일하다고 명시합니다.

지연 시간에 드러난 리텐션 선택

읽어야 할 차트: 공개 집계를 캐시 키 기준으로 뽑아, 이번에는 리텐션 모드별로 다시 묶었습니다. 왼쪽 패널은 첫 토큰까지의 p95 시간을 보여줍니다. 오른쪽 패널은 캐시 적중률을 보여줍니다. 각 그룹은 동일한 카디널리티에서 in_memory24h를 비교합니다.
TTFT p95와 캐시 적중률을 비교하는 프롬프트 캐시 리텐션 근거 차트.
원천 차트 — 리텐션 모드별 첫 토큰 지연 p95. X축: log2 척도의 버킷 카디널리티(1, 그다음 8)입니다. Y축: 밀리초 단위의 정상 상태 첫 토큰까지 p95 시간입니다. 선: 이 글이 비교하는 두 리텐션 정책 — in_memory24h — 이며 각각 N = 960 레코드로, 빈도 히스토그램이 아니라 두 계열 선 차트입니다. 읽는 법: 카디널리티 1에서 in_memory 계열은 약 106,000 ms p95를, 24h 계열은 약 9,900 ms를 기록했습니다 — 이 경우에는 리텐션 선택이 지연 꼬리에 드러났습니다 — 그리고 트래픽이 8개 버킷으로 분산되자 두 계열이 가까워졌습니다. 근거 경계: PAYG gpt-5.2(PTU 아님)에서 측정한 하나의 희소·정제 공개 집계이며, 보편적인 지연 규칙이 아니라 소스 실행 근거입니다. 출처: results/cache-key-bucketing/ttft_p95_vs_cardinality.csv (원천 CSV).
log2 축에서 버킷 카디널리티에 대해 정상 상태 첫 토큰까지 p95 시간을 그린 선 차트입니다. in_memory 선은 버킷 하나에서 약 106,000 밀리초로 매우 높게 시작해 8개 버킷에서 약 16,000으로 가파르게 떨어지고, 24h 선은 약 10,000~15,000 밀리초로 더 낮고 거의 평탄하게 유지됩니다.
짝지은 원천 차트 — 리텐션 모드별 캐시 적중률. X축: 동일한 log2 버킷 카디널리티 축(1, 그다음 8)입니다. Y축: 0~1 범위의 정상 상태 캐시 적중률입니다. 선: 동일한 in_memory24h 계열이며 각각 N = 960입니다. 읽는 법: 이 구간에서는 두 계열 모두 높게(약 0.93~0.96) 유지되었고, 카디널리티 1에서 24h 계열이 약간 더 높았습니다. 여기서 더 큰 리텐션 차이는 적중률이 아니라 위 지연 패널에서 나타났습니다 — 그래서 리텐션은 캐시된 토큰 비중과 함께 지연 시간을 곁들여 읽어야 합니다. 근거 경계: 동일한 희소·정제 공개 집계로 PAYG gpt-5.2(PTU 아님)이며, 보편적인 캐시 적중 규칙이 아니라 서술적 자료입니다. 출처: results/cache-key-bucketing/cache_hit_ratio_vs_cardinality.csv (원천 CSV).
log2 축에서 1개와 8개 버킷의 정상 상태 캐시 적중률을 버킷 카디널리티에 대해 그린 선 차트입니다. in_memory와 24h 보존의 거의 평탄한 두 선이 모두 약 0.93에서 0.96 사이로 높게 위치하며, 이 단면에서 카디널리티가 늘어도 적중률이 거의 일정하게 유지되었음을 나타냅니다.
공개 리텐션 근거
리텐션 카디널리티 적중률 TTFT p95 안정 상태 레코드
in-memory10.9334106,389.96 ms388
24h10.96129,899.74 ms390
in-memory80.958616,623.66 ms389
24h80.961215,549.08 ms389

이 주제가 증명하는 것과 증명하지 못하는 것

이 공개 구간에서는 카디널리티 1 조합이 첫 토큰 지연 시간에서 리텐션을 드러냈습니다. 이는 소스 실행 근거이지 보편적 규칙이 아닙니다. 변치 않는 교훈은 더 단순합니다. 리텐션 모드, 적중률, 지연 시간을 함께 읽으세요.

리텐션 선택의 관측 가능성

공개 저장소에는 작은 리텐션 정책 헬퍼가 포함되어 있는데, 문서화된 기본값이 in_memory인 모델에서 값이 생략되면 이를 거부합니다. 엄격하게 들리지만, 흔한 실패 양상을 막아 줍니다. 설계는 더 긴 캐시 윈도를 가정하는데 요청 본문은 조용히 짧은 기본값을 취하는 경우입니다.

권장

워크로드가 나중의 재사용에 의존할 때 prompt_cache_retention="24h".

이것도 권장

워크로드가 짧은 재사용만 필요하고 이를 명시할 때 prompt_cache_retention="in_memory".

위험 신호

운영 런북은 더 긴 윈도를 가정하는데 값을 비워 두는 것.

더 긴 리텐션에 필요한 거버넌스 점검

Microsoft Learn은 인메모리 프롬프트 캐싱이 모든 데이터 레지던시 지역과 호환된다고 명시합니다. 확장 리텐션의 경우, 캐시된 데이터가 지역 내에 머무는 것은 Regional Standard 또는 Regional Provisioned 모드에서만 해당한다고 말합니다. 이는 리텐션을 성능 결정뿐 아니라 거버넌스 결정으로 만듭니다.

따라서 더 긴 리텐션은 성능 결정인 동시에 거버넌스 결정입니다. 확장 윈도에 의존하기 전에 서빙 모드가 캐시된 데이터를 지역 내에 유지하는지 확인하고, 그 선택을 기본값에 맡기지 않습니다.

출처와 근거 경계

Tier 1 — 서비스 계약(Microsoft Learn). 두 가지 리텐션 정책, 인메모리 비우기·제거 윈도, 24시간 확장 리텐션 상한, gpt-5.4 및 이전 모델의 in_memory 기본값, 두 정책에 동일한 가격, 그리고 데이터 레지던시 동작이 여기에 문서화되어 있습니다.

Tier 2 — 운영적 추론(이 저장소). in_memory 기본값 모델에서 값이 생략되면 닫힘으로 실패하는 리텐션 정책 헬퍼와, 희소한 공개 적중률·첫 토큰 지연 구간은 Learn 사양이 아니라 이 저장소의 운영적 추론이자 소스 실행 근거입니다.

이 주제가 증명하는 것과 증명하지 못하는 것. 접근일 기준 Microsoft Learn이 명시하는 프롬프트 캐시 리텐션 계약 — in_memory24h 정책, 인메모리 비우기·제거 윈도, 24시간 확장 상한, gpt-5.4 및 이전 모델의 in_memory 기본값, 두 정책에 동일한 가격, 확장 리텐션의 지역 내 레지던시 조건 — 과, in_memory 기본값 모델에서 값이 생략되면 prompt_cache_retention을 명시하고 닫힘으로 실패하라는 이 저장소의 경험칙을 문서화합니다. 단일 공개 구간에서는 카디널리티 1에서 리텐션이 첫 토큰 지연에 드러났습니다. 이는 소스 실행 근거이며, 모든 모델·리전·트래픽 형태에 걸친 보편적 지연 곡선을 증명하는 것은 아닙니다.

실무 규칙

실무 규칙: in_memory로 되돌아갈 수 있는 모델에서 캐시 재사용이 짧은 유휴 구간을 넘어 살아남아야 한다면, 기본값을 믿는 대신 prompt_cache_retention을 명시적으로 설정하고, 캐시 가능한 프리픽스를 안정적으로 유지하며, 요청한 윈도가 실제로 적용되었는지 확인할 수 있게 첫 토큰 지연과 캐시된 토큰 비중을 함께 봅니다.

다음 글은 단일 요청의 캐시 정책에서, GPT-4o 워크로드 전체를 PTU의 GPT-5.x로 재산정할 때 무엇이 바뀌는지로 넘어갑니다.

GPT-4o 트래픽이 PTU의 GPT-5.x로 옮겨갈 때, 용량 계산에서 실제로 무엇이 바뀌나요?