huny.log

기술 포스트 · AI·LLM

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 ms1%
검색 (top-10 + rerank)0.0010 달러200 ms5%
생성 (GPT-4o-mini, 2k context)0.0040 달러1200 ms80%
0.005 달러1430 ms100%

생성이 비용·latency의 80%를 차지합니다. 비용 최적화의 가장 큰 자리도 여기. 다만 정확도를 안 깎고 줄이는 게 핵심입니다.

RAG 한 쿼리의 비용·latency를 3축으로 분해한 다이어그램
쿼리당 비용의 80%는 생성 단계. 검색·임베딩은 합쳐서 6%. 비용 최적화의 가장 큰 자리는 생성 모델·컨텍스트 길이·캐싱이다.

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%
쿼리당 평균 latencyp50·p95·p99p95 > 2초
Cache hit률(cache hit) / (총 쿼리)< 20%
생성 토큰 점유율(input tokens) / (총 tokens)> 70%
검색·생성·임베딩 비율비용 분해생성 < 60%
import litellm
litellm.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만 달러를 쓰면 비즈니스 가치보다 비용이 더 크게 보일 수 있습니다.

운영자가 챙겨야 할 흐름:

  1. 측정 — 비용·latency·cache hit률 일별 모니터링
  2. 분리 — 검색·생성·임베딩 3축으로 비용 분해
  3. 깎기 — 가장 큰 자리(생성)부터, 정확도 측정과 함께
  4. 점검 — 분기마다 모델·차원·reranker 재고려

이 4단계 루틴이 운영 캘린더에 들어가면, RAG 시스템이 1년 후에도 비용 효율을 유지합니다.

다음 글에서는 같은 AI 운영 자리의 또 다른 도구, 프롬프트 자동 최적화를 다룹니다. 사람이 일일이 프롬프트 튜닝하지 않고 도구로 자동화하는 자리입니다.

참고

AI·LLM 카테고리의 다른 글

전체 보기 →