5K 토큰짜리 시스템 프롬프트에 few-shot 예시 스무 개를 넣고 있다면, 이 시리즈의 암묵적 답은 "캐시해라"였다. CTO의 대안은 둘 더 있다. 그 프롬프트를 파인튜닝으로 모델에 구워 넣어 아예 안 보내거나, 압축해서 짧게 보내거나. 이 글은 2026년 8월 가격으로 세 선택의 100만 요청당 비용을 계산하고, 파인튜닝이 진짜 이기는 조건과 자체 서빙에서 LoRA 어댑터가 프리픽스 캐시를 쪼개는 함정을 다룬다.
"캐시하지 말고 없애라"는 유혹과 1.5배 프리미엄
OpenAI의 파인튜닝 모델 추론은 베이스의 1.5배다: ft:gpt-4.1 입력 $3/캐시 $0.75/출력 $12(베이스 $2/$0.50/$8), 학습 $25/M토큰. GPT-5 계열은 파인튜닝이 불가하고 SFT/DPO는 4.1 계열, RFT는 o4-mini뿐이다. Anthropic은 1st-party 파인튜닝이 없고 Bedrock의 Claude 3 Haiku만 가능한데 커스텀 모델은 Provisioned Throughput 필수(시간당 고정비, 단가는 영업 문의). Gemini API의 파인튜닝은 2025-05 종료됐고 Vertex 전용이다. 세 벤더 모두 "캐시가 기본, 튜닝은 엔터프라이즈 옵션"으로 정렬됐고, Anthropic 문서는 아예 "예시 1~2개 대신 20개 이상을 넣고 캐시하라"고 쓴다.
100만 요청 시뮬레이션
가정: 정적 프리픽스 8,000 + 동적 입력 500 + 출력 300 토큰. 파인튜닝 후 프리픽스 −85%(잔여 1,200), 학습 22.5M 토큰.
| 시나리오 | $/100만 요청 |
|---|---|
| (a) Sonnet 5, 캐시 없음 | $20,000 |
| (b) Sonnet 5, 캐시 히트 95% / 80% / 50% | $6,520 / $9,280 / $14,800 |
| (b') gpt-4.1 베이스, 캐시 95% | $8,000 |
| (c) ft:gpt-4.1, 짧은 프롬프트, 캐시 없음 | $8,700 + 학습 $562 |
| (c') ft:gpt-4.1 + 잔여 프리픽스 캐시 95% | $6,135 + $562 |
| (c'') ft:gpt-4.1-mini (한 단계 작은 모델) | $2,320 + $112 |
| (d) Sonnet 5 + LLMLingua-2 3배 압축(고유 문서) | $9,334 + 압축 GPU |
읽을 점: 같은 티어에서는 캐시가 파인튜닝을 이긴다(b' $8,000 vs c $8,700) — 1.5배 프리미엄이 프리픽스 절감을 상쇄한다. 파인튜닝 모델에도 캐시를 걸어야(c') 역전되고 학습비 회수에 약 30만 요청이 든다. 캐시 손익분기 히트율은 5분 TTL 21.7%, 1시간 52.6%(④편). Bedrock PT 고정비 예시($40/시간)로 Sonnet 5 캐시 95%와 같아지려면 월 450만 요청이 필요하다.
파인튜닝이 진짜 이기는 세 가지 경우
- 모델 다운그레이드: 표의 c''가 3.4배 싸다. 이건 프리픽스 문제가 아니라 "작은 모델이 이 작업을 하는가"라는 품질 평가 문제다 — sLM 평가 시리즈의 베이스라인 사다리가 여기서 쓰인다. Bedrock Haiku 3 파인튜닝 사례: 모더레이션 정확도 81.5→99.6%, 쿼리당 토큰 −85%.
- 컨텍스트에 안 들어가는 데이터: Bertsch et al.은 수백~1,500 shot 구간에서 long-context ICL이 대부분 LoRA를 넘고(Clinic-150, 151라벨에서 ICL 1,500 shot ≈ 89%), 고정 예시 집합을 한 번 인코딩해 캐시해도 손실 ≤5점이라고 보고했다. Many-shot ICL(DeepMind)도 "파인튜닝과 비슷하되 추론 비용은 선형 증가" — 즉 캐시 없이는 성립하지 않고, 캐시가 있으면 파인튜닝이 필요 없는 구간이 넓다. 파인튜닝이 이기는 건 데이터가 컨텍스트를 넘을 때다.
- 최소 캐시 단위 미만: 프리픽스가 1,024(Sonnet 5)·4,096(Haiku 4.5) 토큰 미만이면 캐시 자체가 안 걸린다. "프롬프트 줄이기"가 캐시 자격을 없앨 수 있고, 그 구간에서는 짧은 프롬프트 + 파인튜닝이 합리적이다.
자체 서빙의 함정 — LoRA 어댑터는 프리픽스 캐시를 쪼갠다
vLLM의 블록 해시는 lora_name을 키에 포함하고(③편), SGLang의 RadixKey는 extra_key가 다르면 프리픽스 노드를 공유하지 않는다. 테넌트 100개를 어댑터로 나누면 공유 시스템 프롬프트의 캐시가 100조각이 된다. 계산 오버헤드 자체는 작다 — S-LoRA는 A100 한 장에 어댑터 2,000개, Punica는 토큰당 ≈2ms — 손실은 히트율과 KV 메모리 잠식에서 온다. 결정 매트릭스: 말투·규칙·예시 차이는 프롬프트(공유·캐시 가능), 출력 분포 변경·수천 라벨·컨텍스트를 넘는 지식은 어댑터(격리). 어댑터라도 --max-loras(GPU 상주)·--max-cpu-loras(CPU 대기)로 상위 트래픽만 상주시킨다.
압축의 자리, 그리고 한국어
LLMLingua-2는 3배 압축에서 MeetingBank QA 86.9 vs 87.8, GSM8K 손실 0, 5배에서 LongBench −11%. 캐시 읽기(정가 10%)가 압축(20~33%)보다 싸므로 압축은 캐시의 대체재가 아니라 보완재다 — 캐시가 못 잡는 고유 장문 문서(표의 d)에만 쓰고, 정적 프리픽스에 압축을 걸면 토큰이 바뀌어 캐시 키가 깨진다. 한국어 프리픽스는 1.3~2배 토큰(⑪편)이라 캐시 절감액도 파인튜닝 절감액도 커지고, 한국어 토크나이저 모델(A.X·EXAONE·Solar)이 제3의 길이다. 국내 벤더는 Upstage가 캐시 요율은 공개했지만 튜닝 단가는 비공개, CLOVA Studio는 튜닝 추론 프리미엄이 문서에 없다 — 계약 전 서면 확인 항목이다. LLMLingua-2의 한국어 성능은 미검증이고 조사(은/는/이/가) 삭제 리스크가 있으니 자체 평가가 먼저다. 마지막 글은 한국어 조건 전체와 결정 트리다.
— LLM 서빙 캐싱 시리즈 ⑩ / 다음 글: 한국어 맥락과 CTO 플레이북 (완결)
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.