LLM 비용을 절반으로 줄인 한 가지
cache_control 하나로 토큰 비용 절반. 프롬프트 최적화보다 먼저 할 일.
문제
월말 청구서를 열었더니 LLM API 비용이 전월 대비 2.3배. 트래픽은 1.4배밖에 안 늘었다.
로그를 뜯었다.
- 시스템 프롬프트 평균 2,800 토큰
- 매 요청마다 그걸 그대로 전송
- 캐시 hit 0%
원인은 단순했다. cache_control 을 한 번도 붙인 적이 없었다.
뭘 바꿨나
1. cache_control 적용
Anthropic 기준, 시스템 프롬프트 블록 맨 끝에 "cache_control": {"type": "ephemeral"} 한 줄. 동일 prefix 가 반복되는 요청에서 캐시 토큰으로 처리된다. 캐시 토큰 단가는 일반 입력 토큰의 10% 수준.
적용 후 캐시 hit rate 71%. 입력 토큰 비용 기준으로 -58%.
2. 프롬프트 정리
캐시가 잘 붙으려면 prefix 가 안정적이어야 한다. 요청마다 시스템 프롬프트 앞쪽에 날짜·세션ID 같은 동적 값을 박아두면 캐시가 매번 깨진다.
- 동적 값은 시스템 프롬프트 아래로 내리거나 user 메시지로 이동
- 시스템 프롬프트 앞 1,500 토큰은 완전히 고정
이것만으로 hit rate 가 41% → 71% 로 뛰었다.
3. max_retries 설정
재시도 폭주를 막는 건 비용 문제이기도 하다. 기본값을 그냥 쓰면 일시적 오류 때 요청이 몇 배로 불어난다. max_retries=2, 지수 백오프, 상한 60초. 첫날 이걸 안 해놓으면 장애 때 비용 스파이크가 같이 온다.
다음 한 가지
다음 글 첫 줄에 “캐시 hit rate 를 주간 대시보드에 올렸나” 한 줄 먼저 쓴다. 지표가 없으면 또 월말에 놀란다.
🛒 이 글과 어울리는 추천 상품
위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.