침묵의 실패에서 97%의 충실도까지, 에이전트 기반 다국어 RAG 구축 — RAGAS 평가 + LangGraph 파이프라인
From Silent Failures to 97% Faithfulness, Built Agentic Multilingual RAG — RAGAS Eval + LangGraph Pipeline
핵심 요약
실제 데이터의 실패 모드를 중심으로 설계하여 다국어 RAG 시스템의 성능과 신뢰성을 극대화한 구축 사례입니다.
- 실패 중심 설계 — 벤치마크 점수보다 실제 데이터의 실패 모드를 분석하여 아키텍처를 개선함.
- 다국어 RAG 파이프라인 — 힌디어와 영어 혼용 문서에서 발생하는 검색 및 언어 인식 문제를 해결함.
- 하이브리드 검색 전략 — BM25와 Dense 임베딩을 RRF로 결합하여 검색 정확도와 재현율을 높임.
- LangGraph 에이전트 — 상태 머신 기반의 제어 흐름으로 검색, 검증, 재시도 루프를 자동화함.
지난 2개월 동안 저는 인도 법률 문서를 위한 다국어(힌디어 ↔ 영어) 에이전트 RAG 시스템을 구축했습니다. 대부분의 파이프라인이 간과하는 실제 데이터의 체계적이고 재현 가능한 실패 모드에 집중했습니다.
표준 RAG는 여기서 단순히 '약간 저하'되는 것이 아니라 침묵 속에서 실패합니다:
유창한 답변, 약한 근거, 잘못된 검색.
이 게시물은 다음 내용을 다룹니다:
- 실패 지점
- 실패 원인
- 실제로 문제를 해결하는 아키텍처 변경 사항
- RAGAS 하에서 이러한 수정 사항이 측정되는 방식
평가 (RAGAS)
| Metric | Result |
|--------------------------|--------|
| Hindi Faithfulness | 97%+ |
| English Faithfulness | 90%+ |
| Hindi Answer Relevancy | 90%+ |
| Context Precision | 98%+ |
| Faithfulness Ratio (Hi/En)| 0.97 |
| Hallucination Rate | <5% |
| P95 Retrieval Latency | <12s |
| Language Accuracy | 95%+ |
실패 분류 (관찰 → 수정)
- 언어 감지 붕괴 (짧은 쿼리)
문제:
통계적 감지기가 짧은 힌디어 쿼리("transformer kya hai")를 잘못 분류하여 검색 전 잘못된 파이프라인 분기로 연결됨.
수정:
다음 방법을 사용한 결정론적 라우팅:
- 유니코드 스크립트 감지
- 어휘 기반 폴백
- 데바나가리 문자에서의 BM25 붕괴
문제:
표준 토크나이저가 힌디어를 파편화하여 어휘 재현율이 거의 0에 가까움.
수정:
유니코드 스크립트 블록에 맞춘 Indic 인식 토큰화
→ 희소 검색의 실행 가능성 복구
- 밀집 검색 드리프트 (코드 혼용 입력)
문제:
힌디어-영어 혼용 쿼리가 임베딩 분포 범위를 벗어남.
수정:
하이브리드 검색:
- 밀집 (E5)
- 희소 (BM25)
- RRF를 통한 융합 (k=60)
- 임베딩 사각지대 (정확한 토큰) 문제: 임베딩이 다음을 무시함:

