RAG 운영 비용·latency — 검색·생성·임베딩의 비용을 분리하고 깎는 법
RAG 챗봇이 잘 굴러갈수록 쿼리당 0.05달러·1.5초가 누적됩니다. 월 100만 쿼리면 5만 달러. 비용·latency를 검색·생성·임베딩 3축으로 분리해 어디서 깎을지 정리합니다. 정확도를 거의 안 깎고 비용을 1/3로 줄이는 운영 패턴.
RAG 챗봇이 운영 환경에 들어가면 처음엔 “잘 작동한다”가 메인 관심사입니다. 한 달이 지나면 다른 숫자가 무겁게 다가옵니다 — 쿼리당 0.05달러·1.5초. 월 100만 쿼리면 5만 달러·평균 사용자 대기 1.5초. 그 비용·시간이 어디서 발생하고 어디서 깎을 수 있는지를 검색·생성·임베딩 3축으로 분리해 정리합니다. 정확도를 거의 안 깎고 비용을 1/3로 줄이는 운영 패턴.
1. RAG의 3가지 비용 축
RAG 한 쿼리의 비용·latency는 다음 3축의 합입니다.
- 임베딩 비용 — 사용자 쿼리를 벡터로 (또는 사전 인덱스 빌드 비용)
- 검색 비용 — 벡터 DB에서 top-k 검색 (벡터 비교 + reranker)
- 생성 비용 — LLM이 retrieved context로 답 생성
마케팅 챗봇·내부 위키 검색에서 일반적인 분포:
| 축 | 쿼리당 비용 | latency | 점유율 |
|---|---|---|---|
| 쿼리 임베딩 | 0.0001 달러 | 30 ms | 1% |
| 검색 (top-10 + rerank) | 0.0010 달러 | 200 ms | 5% |
| 생성 (GPT-4o-mini, 2k context) | 0.0040 달러 | 1200 ms | 80% |
| 합 | 0.005 달러 | 1430 ms | 100% |
생성이 비용·latency의 80%를 차지합니다. 비용 최적화의 가장 큰 자리도 여기. 다만 정확도를 안 깎고 줄이는 게 핵심입니다.
2. 생성 비용 깎기 — 가장 큰 자리
2-1. 모델 사이즈 선택
GPT-4 → GPT-4o → GPT-4o-mini로 갈수록 1/10·1/30로 비용 감소. 대신 정확도가 떨어지는 자리도 있습니다. 운영 결정의 핵심은 다음입니다.
- 난이도가 다른 쿼리에 다른 모델 — 단순 FAQ는 GPT-4o-mini, 복잡 추론은 GPT-4o
- 분기 라우팅 — 쿼리 유형 분류기를 가볍게 두고 모델 선택
- fallback 패턴 — mini로 답하고 confidence 낮으면 큰 모델로 재시도
2-2. 컨텍스트 길이 다이어트
retrieved context가 5,000 토큰이면 10,000 토큰의 1/2 비용·1/2 latency. 정확도를 거의 안 깎고 줄이는 도구:
- top-k를 10 → 5로 줄이기
- 각 chunk 길이를 500 → 200 토큰으로
- reranker로 top-50 → top-5 거르기 (Cohere Rerank·BGE-Reranker)
- 추출(extractive) summarization으로 chunk 안의 핵심만
2-3. 캐싱
같은·비슷한 쿼리에 같은 답. semantic caching:
- 입력 쿼리의 임베딩이 cache의 임베딩과 cosine 0.95 이상이면 cache hit
- cache hit률 30~50% 가 일반적
- 비용 30~50% 감소 + latency 거의 0
OpenAI prompt caching·Anthropic prompt caching 같은 모델 레벨 캐싱도 있어, 같은 시스템 프롬프트가 자주 반복되면 자동으로 비용 절감.
3. 검색 비용 깎기 — 정확도와 trade-off
3-1. 인덱스 크기 vs 검색 비용
벡터 DB의 검색 비용은 인덱스 크기에 비례. 임베딩 운영 글에서 다룬 차원 축소가 그대로 적용됩니다 — 1536 → 512차원이면 검색 latency·비용 1/3.
3-2. ANN(approximate nearest neighbor) 사용
정확한 검색(exact KNN)은 데이터 수에 비례. ANN(HNSW·IVF)으로 sub-linear 검색. Pinecone·Qdrant·pgvector 모두 ANN 디폴트. 정확도 손실 1~3%p로 검색 1/100 시간.
3-3. Reranker의 재고려
Cohere Rerank·BGE-Reranker로 top-50 → top-5 추리는 게 표준이지만, reranker가 또 한 비용. 운영 결정:
- 고정확도 필요(법률·의료) → reranker 사용
- 속도 우선(일반 챗봇) → reranker 생략, top-10을 그대로 LLM에
4. 임베딩 비용 — 작지만 누적
쿼리 임베딩은 쿼리당 0.0001 달러로 작아 보이지만, 인덱스 빌드는 다릅니다. 1억 문서 임베딩이 1,000~5,000 달러. 정기 재생성 비용까지 더하면 한 달 기준의 무거운 자리.
운영 도구:
- 증분 임베딩 — 신규/수정 문서만 임베딩
- 배치 API — OpenAI batch API는 50% 할인 (24시간 처리 OK 자리)
- 오픈소스 임베딩 — BGE·E5 모델을 자체 호스팅. 1억 문서 100달러 미만
5. 운영 모니터링 — 어디서 비싼지 매일 보기
비용 최적화의 첫 걸음은 측정입니다. 매일 봐야 할 5가지 메트릭:
| 메트릭 | 측정 방법 | 알람 임계 |
|---|---|---|
| 쿼리당 평균 비용 | (총 비용) / (총 쿼리) | 전월 대비 +15% |
| 쿼리당 평균 latency | p50·p95·p99 | p95 > 2초 |
| Cache hit률 | (cache hit) / (총 쿼리) | < 20% |
| 생성 토큰 점유율 | (input tokens) / (총 tokens) | > 70% |
| 검색·생성·임베딩 비율 | 비용 분해 | 생성 < 60% |
import litellmlitellm.success_callback = ['logfire', 'datadog']
response = litellm.completion( model='gpt-4o-mini', messages=[{'role': 'user', 'content': prompt}], metadata={'rag_query_id': qid, 'context_tokens': ctx_tokens})print(response.usage.total_tokens, response._hidden_params['response_cost'])이게 본문에 박는 유일한 코드입니다. LiteLLM 한 줄로 모든 LLM 호출의 비용·token 자동 트래킹. logfire/datadog/Helicone로 일별 대시보드.
6. 마케팅 실무 케이스 3개
6-1. 마케팅 FAQ 챗봇 — semantic caching으로 50% 절감
같은 종류의 질문(반품 정책·배송 조회·할인 코드)이 매일 반복됩니다. semantic caching을 깔면 cache hit률 4060%, 월 비용 4060% 감소. 정확도 손실 거의 없음 — 같은 답을 다시 뽑는 자리이기 때문.
6-2. 내부 위키 검색 — reranker 생략으로 latency 1초 → 0.4초
내부 위키는 정확도가 5%p 떨어져도 운영 영향이 작습니다. Cohere Rerank를 빼고 top-10을 그대로 LLM에 보내면 latency가 0.4초로 줄어들고, 비용도 절반.
6-3. 광고 카피 검색 — 1024차원으로 축소
기존 3072차원 인덱스를 1024로 축소. 인덱스 크기 1/3, 검색 latency 1/3, 정확도 손실 2%p. 매월 인프라 비용 큰 폭 감소.
7. RAG 비용 최적화가 깨질 때 — 흔한 함정 3가지
7-1. 정확도를 안 측정하고 비용만 깎음
비용 1/3로 줄였는데 정확도가 30%p 떨어지면 의미가 없습니다. 골든셋 50개로 매주 정확도 측정을 같이 굴려야 합니다.
7-2. Cache hit률만 보고 정합성 못 봄
semantic cache가 hit인데 사실은 다른 답을 줘야 하는 자리(예: “오늘 가격” 같은 시간 의존 답). cache 정합성을 따로 검증해야 합니다.
7-3. fallback 비율이 너무 높음
mini → 큰 모델 fallback이 50%가 되면 비용 절감 효과가 사라집니다. fallback 비율을 매일 모니터링해, 너무 높으면 mini의 confidence 임계를 다시 잡아야 합니다.
8. 마치며 — RAG도 인프라
RAG 챗봇이 운영 환경에 들어가면 정확도 다음으로 무거운 자리가 비용·latency입니다. 잘 굴러가는 시스템도 월 5만 달러를 쓰면 비즈니스 가치보다 비용이 더 크게 보일 수 있습니다.
운영자가 챙겨야 할 흐름:
- 측정 — 비용·latency·cache hit률 일별 모니터링
- 분리 — 검색·생성·임베딩 3축으로 비용 분해
- 깎기 — 가장 큰 자리(생성)부터, 정확도 측정과 함께
- 점검 — 분기마다 모델·차원·reranker 재고려
이 4단계 루틴이 운영 캘린더에 들어가면, RAG 시스템이 1년 후에도 비용 효율을 유지합니다.
다음 글에서는 같은 AI 운영 자리의 또 다른 도구, 프롬프트 자동 최적화를 다룹니다. 사람이 일일이 프롬프트 튜닝하지 않고 도구로 자동화하는 자리입니다.
참고
- Lewis et al. (2020), Retrieval-Augmented Generation, NeurIPS — RAG 원전
- OpenAI — Prompt caching — 모델 레벨 캐싱 표준
- Anthropic — Prompt caching for Claude — Claude의 캐싱 지원
- LiteLLM — 통합 LLM SDK — 모든 LLM 호출 비용·token 트래킹
- Helicone — LLM 관찰 — 비용·latency 대시보드
- huny.log 내부 글: RAG 평가 4지표, 임베딩 운영, Conformal Prediction
AI·LLM 카테고리의 다른 글
전체 보기 →-
2026·05·16
LLM 운영 비용 폭주를 막는 6가지 guardrail — 마케팅 자동화의 cost·latency·품질 동시 관리
LLM을 운영에 올리면 어느 날 갑자기 비용이 10배로 튑니다. retry storm·프롬프트 폭증·모델 자동 승격·context 누적 등 폭주 패턴 6가지와 그것을 막는 guardrail을 정리합니다.
-
2026·05·10
LLM evaluation harness — 분기마다 챗봇 품질을 자동 평가하는 공장
챗봇·에이전트가 운영에 들어가면 한 번 평가가 아니라 분기 자동 평가가 필요합니다. 골든셋·regression·hyperparameter A/B를 묶는 evaluation harness 설계와 마케팅 자리에서의 적용.
-
2026·05·09
Context engineering — 200k 토큰 컨텍스트의 설계 원칙 5가지
컨텍스트 창이 200k 토큰까지 커졌지만 단순히 다 넣으면 lost-in-the-middle·비용 폭발·정확도 하락이 옵니다. 마케팅 자동화에 적용하는 5가지 컨텍스트 설계 원칙.
-
2026·05·09
Function calling 설계 패턴 — LLM이 도구를 부를 때 마케터가 점검할 것
LLM이 광고 API·BigQuery·Slack을 직접 부르기 시작하면, 답변 품질보다 "어느 도구를 언제 부를지"가 운영 사고의 진앙이 됩니다. function calling의 한 줄 직관과 마케터가 점검할 5가지.