treeru.com
AI

로컬 RAG 파이프라인 구축기 — 임베딩 모델 선정부터 환각 제거까지

2026-03-04
Treeru

LLM은 모르는 것도 자신있게 대답합니다. 아메리카노 가격을 물어보면 1,500원이라고 답하고, 배달 여부를 물으면 “가능합니다”라고 환각을 생성합니다. RAG(Retrieval-Augmented Generation)는 이 문제를 해결합니다. 임베딩 모델로 문서를 벡터화하고, 벡터DB에서 관련 정보를 검색해 LLM에 주입하면 환각이 사실로 교정됩니다. 임베딩 모델 선정(BGE-M3 vs mE5-Large)부터 Qdrant 벡터 검색, 그리고 실제 환각 제거 효과까지 — 각 단계를 실측 데이터로 검증했습니다.

100%

BGE-M3 한국어 Recall

100%

Qdrant Top-3 정확도

1.9ms

평균 검색 시간

+2.9%

RAG 오버헤드

왜 RAG인가

LLM은 학습 데이터에 없는 정보를 요청받으면 “그럴듯한 거짓말”을 합니다. 특히 가격, 전화번호, 영업시간, 정책 같은 사실 정보에서 환각이 집중됩니다.

No RAG — LLM만 사용

  • • “아메리카노 얼마예요?” → 1,500원 (실제 4,500원)
  • • “배달 되나요?” → “배달 서비스를 제공하고 있어요” (실제 미운영)
  • • “단체 예약 어떻게 해요?” → “최소 3인 이상” (실제 8인 테이블)

RAG 적용

  • • “아메리카노 얼마예요?” → 4,500원 (문서 기반 정확)
  • • “배달 되나요?” → “배달 미운영, 매장/테이크아웃만 가능”
  • • “단체 예약 어떻게 해요?” → “8인 테이블, 2일 전 예약”

RAG 파이프라인 구조

1

문서 청킹

원본 문서를 의미 단위로 분할

2

임베딩

BGE-M3로 벡터 변환 (1024차원)

3

저장

Qdrant 벡터DB에 인덱싱

4

검색

질문 임베딩 → Top-3 유사 청크

5

생성

검색된 청크 + 질문 → LLM 응답

임베딩 모델 비교 — BGE-M3 vs mE5-Large

RAG의 품질은 임베딩 모델이 결정합니다. 검색이 틀리면 LLM이 아무리 뛰어나도 잘못된 정보를 기반으로 답변합니다. 두 다국어 임베딩 모델을 한국어 10개 질문으로 비교했습니다.

항목BGE-M3mE5-Large
모델BAAI/bge-m3intfloat/multilingual-e5-large
벡터 차원1,0241,024
모델 로드 시간4.2초3.3초
임베딩 시간 (9청크)0.18초0.05초
평균 Recall (Top-3)100.0%86.7%
질문BGE-M3mE5-LargemE5 누락
아메리카노 가격이 얼마예요?100%100%-
카페 영업시간 알려주세요100%100%-
주차할 수 있나요?100%0%주차, 2대, 공영주차장
디카페인 메뉴 있어요?100%100%-
케이크 종류 뭐가 있어요?100%100%-
와이파이 비밀번호가 뭐예요?100%66.7%와이파이
텀블러 할인 되나요?100%100%-
반려동물 데려갈 수 있나요?100%100%-
딸기 음료 있어요?100%100%-
노트북 사용 가능한가요?100%100%-

mE5-Large 실패 분석

  • “주차할 수 있나요?” — Recall 0%: 주차 관련 청크를 Top-3에 하나도 포함하지 못함. “주차”를 노트북/예약 관련 청크와 혼동
  • “와이파이 비밀번호” — Recall 66.7%: 비밀번호는 찾았으나 “와이파이” 키워드가 포함된 청크를 Top-3에 누락

BGE-M3의 강점

  • • 한국어 구어체(“~할 수 있나요?”, “~뭐예요?”)에 대한 의미 매칭이 정확
  • • Dense + Sparse + ColBERT 멀티 벡터 지원으로 다양한 검색 패턴 커버
  • • 벡터 차원 동일(1024), 저장 비용 차이 없음
  • • 속도 차이(0.13초)는 실사용에서 무시 가능

RAG + LLM 통합 — 오버헤드와 응답 시간

BGE-M3 + Qdrant + SGLang(Qwen3)을 연동한 RAG 파이프라인의 전체 응답 시간을 측정했습니다. No RAG(LLM만)와 RAG 적용 시를 20개 질문으로 비교합니다.

지표No RAGRAG차이
평균 총 지연시간1,932ms1,988ms+55.7ms (+2.9%)
평균 검색 시간-2.4ms-
LLM 추론 대비 검색 비용-0.1%-

오버헤드 분해

2.4ms

벡터 검색 (임베딩 + Qdrant)

+53.3ms

컨텍스트 토큰 증가분 (LLM)

=55.7ms

총 RAG 오버헤드 (+2.9%)

검색 자체(2.4ms)보다 검색된 청크를 LLM에 주입하면서 늘어나는 컨텍스트 처리 시간(53.3ms)이 더 큽니다. 그래도 전체 2초 대비 2.9%에 불과합니다.

질문No RAGRAG검색
아메리카노 얼마예요?1,448ms2,338ms4.1ms
오늘 몇 시까지 해요?2,173ms2,328ms2.6ms
주차 가능한가요?1,551ms1,916ms2.8ms
와이파이 비번 알려주세요1,312ms1,275ms2.8ms
텀블러 할인 되나요?1,678ms1,475ms2.4ms
반려동물 데려가도 돼요?1,820ms1,515ms3.3ms
단체 예약 어떻게 해요?2,134ms2,065ms1.9ms
배달 되나요?1,269ms1,467ms2.3ms

주요 8개 질문 발췌. 일부 질문에서 RAG가 더 빠른 경우도 있음 (LLM 응답 길이 차이)

No RAG vs RAG — 환각 제거 사례

20개 질문 중 사실 정확성이 크게 개선된 핵심 사례입니다. No RAG에서 환각이 발생한 질문이 RAG 적용으로 어떻게 교정되는지 확인합니다.

Q: 아메리카노 얼마예요?

No RAG — 가격 환각

1,500원

RAG — 문서 기반 정확

4,500원

Q: 와이파이 비번 알려주세요

No RAG — 불필요한 거부

"직접 알려드릴 수 없어요" (거부)

RAG — 문서에서 정확히 추출

dalbit_cafe / dalbit2024

Q: 주차 가능한가요?

No RAG — 정보 부족

"주차장은 있어요" (모호)

RAG — 구체적 사실

매장 앞 2대, 공영주차장 도보 3분, 1시간 무료도장

Q: 반려동물 데려가도 돼요?

No RAG — 정보 부족

"가능해요, 카페에 문의" (모호)

RAG — 구체적 조건

소형견 7kg 이하 테라스석, 물그릇 제공

Q: 배달 되나요?

No RAG — 사실 오류

"배달 서비스를 제공하고 있어요" (허위)

RAG — 정확한 거절

배달 미운영, 매장/테이크아웃만 가능

Q: 단체 예약 어떻게 해요?

No RAG — 숫자 환각

"최소 3인 이상" (허위)

RAG — 문서 기반 정확

8인 테이블, 2일 전 예약

환각 패턴 분류

가격/숫자 환각

LLM이 학습 데이터에서 일반적인 가격을 추정. 아메리카노 1,500원, 최소 3인 등 “그럴듯한” 숫자를 생성

사실 반전

배달 미운영을 “가능”으로 답변. 없는 서비스를 있다고 하는 가장 위험한 환각

모호한 회피

“카페에 문의하세요”, “주차장은 있어요” 등 구체적 정보 없이 회피하는 패턴

결론 — 로컬에서 RAG를 쓸 때 알아야 할 것들

1

임베딩 모델이 RAG 품질의 80%

BGE-M3는 한국어 Recall 100%, mE5-Large는 86.7%. 13.3%p 차이가 '주차 정보를 아예 못 찾는' 결과로 이어집니다.

2

Top-3 검색이면 충분

Top-1 정확도 75%라도 Top-3에서 100%면 문제없습니다. LLM이 3개 청크에서 정답을 골라냅니다.

3

RAG 오버헤드는 무시 가능

검색 2.4ms + 컨텍스트 증가 53ms = 총 55.7ms. 전체 응답 시간의 2.9%에 불과합니다.

4

사실 정보에는 RAG가 필수

가격, 정책, 연락처 등 사실 데이터를 다루는 서비스라면 RAG 없이 LLM만 쓰는 건 위험합니다.

이 글은 AI 챗봇 시리즈의 1편입니다. RAG만으로는 수치 데이터(가격, 재고 등)의 정확도에 한계가 있습니다. 다음 글에서는 DB 검색을 결합한 하이브리드 아키텍처로 팩트 정확도를 5배 올리는 방법을 다룹니다. 기존 LLM 환각 테스트에서 모델별 환각 패턴을 확인하고, LoRA 파인튜닝으로 회사별 맞춤형 응답을 만드는 방법도 함께 참고하시기 바랍니다.

T

Treeru

웹 개발, IT 인프라, AI 솔루션 분야의 실무 인사이트를 공유합니다. 기업의 디지털 전환을 돕는 IT 파트너, Treeru입니다.

공유

댓글

(4개)
4.85/ 5

로그인하면 댓글을 작성할 수 있습니다.

2026-03-04
555.0

임베딩 모델 비교에서 BGE-M3가 한국어 Recall 100%를 달성한 데이터가 인상적입니다. mE5-Large가 '주차' 질문을 완전히 놓치는 건 실무에서 치명적이겠네요.

2026-03-04
4.954.9

RAG 오버헤드가 +2.4ms라는 건 사실상 공짜나 다름없네요. 검색 비용이 LLM 추론 대비 0.1%면 RAG를 안 쓸 이유가 없습니다.

2026-03-04
4.854.8

아메리카노 1,500원→4,500원 환각 교정 사례가 가장 와닿습니다. 고객 서비스 챗봇에서 가격을 틀리면 바로 클레임인데, RAG로 해결되는 거군요.

관련 글

© 2026 TreeRU. All rights reserved.

본 콘텐츠의 저작권은 TreeRU에 있으며, 출처를 밝히지 않은 무단 전재 및 재배포를 금합니다. 인용 시 출처(treeru.com)를 반드시 명시해 주세요.