▶️27분
[영상] 오픈소스 RAG 파이프라인 구축 가이드
Day 4: 프로덕션 RAG
[영상] 오픈소스 RAG 파이프라인 구축 가이드
RAG 심화 > Day 4: 프로덕션 RAG
학습 목표
- 프로덕션 RAG 운영 3요소(캐싱, 재시도, 관측)의 역할을 설명할 수 있다
- 시맨틱 캐싱과 단순 키-값 캐싱의 차이를 구분할 수 있다
- 분산 추적으로 RAG 파이프라인 병목을 찾는 방법을 설명할 수 있다
- 운영 기준선을 남의 숫자가 아니라 자기 서비스의 측정값으로 정하는 절차를 설명할 수 있다
영상 핵심 정리 — 오픈소스 RAG 프로덕션 가이드
프로토타입 vs 프로덕션
| 항목 | 프로토타입 | 프로덕션 |
|---|---|---|
| 캐싱 | 없음 | Redis 시맨틱 |
| 재시도 | 없음 | 지수 백오프 + 서킷 브레이커 |
| 관측성 | print() | LangFuse / Prometheus |
| 벡터 DB | Chroma(로컬) | Qdrant(클러스터) |
| 평가 | 수동 | RAGAS CI/CD |
시맨틱 캐시
from langchain.cache import RedisSemanticCache
from langchain_openai import OpenAIEmbeddings
import langchain
langchain.llm_cache = RedisSemanticCache(
redis_url='redis://localhost:6379',
embedding=OpenAIEmbeddings(),
score_threshold=0.95
)
지수 백오프
import time
from functools import wraps
def retry_with_backoff(max_retries=3, base_delay=1.0):
def decorator(fn):
@wraps(fn)
def wrapper(*args, **kwargs):
for attempt in range(max_retries):
try:
return fn(*args, **kwargs)
except Exception:
if attempt == max_retries - 1: raise
time.sleep(base_delay * (2 ** attempt))
return wrapper
return decorator
LangFuse 관측성
아래는 트레이스가 어떻게 생겼는지 보여 주는 형식 예시다. 괄호 안 값은 어떤 시스템의 측정값도 아니고, 당신 시스템의 목표치도 아니다. 관측의 목적은 이 자리에 당신의 숫자를 넣는 것이다.
사용자 질문
├─[trace: retrieval]──→ 벡터 검색 (___ ms)
├─[trace: rerank]─────→ 재순위 (선택) (___ ms)
└─[trace: generate]───→ LLM 생성 (___ s, $___)재순위(Cross-Encoder)는 이 12주 과정에서 별도로 다루지 않는다. 위 트레이스에 자리를 남겨 둔 것은 파이프라인의 어느 지점에 들어가는지를 보이기 위해서이고, 이번 주 코드에는 넣지 않는다.
함정 주의: 시맨틱 캐시 임계값 0.8 이하면 미묘하게 다른 질문에 같은 캐시 반환해 오답. 제조 기술 질문은 부품 번호 차이가 크므로 0.95 이상 권장.
다음 task와의 연결
'통합 프로덕션 RAG 시스템'에서 캐싱과 로깅을 파이썬 코드로 직접 만든다. Docker Compose 통합 배포와 Grafana 대시보드는 이번 주 범위가 아니다 (Docker 는 Week 7·8 에서 다룬다). 이번 주는 인메모리 캐시로 히트율을 세는 데까지다.
AI로 학습하기 — 꿀팁
시맨틱 캐시 + LangFuse 추적 구현AI 학습 팁
AI 에이전트에게 코사인 유사도 기반 시맨틱 캐시와 LangFuse를 활용한 RAG 단계별 레이턴시 추적 코드를 작성하게 하고, 지수 백오프 재시도 로직이 올바른지 검토하세요.
오픈소스 제조 설비 매뉴얼 RAG 파이프라인을 구현해줘. 코사인 유사도 >0.95이면 재검색 없이 캐시를 반환하는 시맨틱 캐시 레이어를 추가하고, API 일시 장애 시 지수 백오프(1s → 2s → 4s, 최대 3회) 재시도 로직도 포함해줘. LangFuse로 각 RAG 단계(임베딩·검색·생성)의 레이턴시와 비용을 추적하는 코드도 작성해줘.
이 팁이 도움이 됐나요?
핵심 포인트
- • 시맨틱 캐시: 코사인 유사도가 임계값을 넘으면 재검색 없이 캐시 반환 — 절감폭은 질문 반복률이 정하므로 캐시 히트율을 재야 안다
- • 재시도: 지수 백오프(1s → 2s → 4s)로 일시 장애 대응, 최대 3회
- • LangFuse: 각 RAG 단계별 레이턴시·비용 추적
- • 3대 관측: 검색 지연(P99) · 캐시 히트율 · Faithfulness. 세 값을 먼저 재서 우리 서비스의 기준선을 정하고, 그 기준선을 SLO 로 삼는다
