기술과 산업/AI

LangChain + RAG 기반 문서 Q&A 챗봇 시리즈 3화

B컷개발자 2025. 5. 20. 12:53
728x90

RAG(Retrieval-Augmented Generation) 완벽 이해

RAG는 대규모 언어 모델이 외부 지식에 접근해 더 정확하고 신뢰할 수 있는 응답을 생성하도록 돕는 구조입니다. 문서 기반 Q&A 챗봇에서 RAG가 어떤 역할을 하는지 살펴봅니다.

 

문서를 AI로 읽고 대답하게 만드는 기술을 구현하려 할 때, 가장 큰 걸림돌은 “기억의 한계”입니다.
GPT 계열 모델은 똑똑하지만, 한 번에 읽을 수 있는 텍스트의 양이 제한적이고, 모든 문서를 학습시키는 것도 불가능합니다.
이 문제를 해결하기 위한 방법이 바로 RAG, 즉 Retrieval-Augmented Generation입니다.

RAG는 2020년 Facebook AI에서 처음 제안한 개념으로,
기존의 언어 생성 모델에 검색(retrieval) 기능을 붙여 외부 지식과 연결해주는 방식입니다.
쉽게 말해, 모델이 "모르는 건 찾아보고 말해주는 구조"라고 보면 됩니다.


기존 LLM의 한계는 명확합니다.

대규모 언어 모델은 정적인 학습 데이터에 기반하기 때문에,
질문자가 원하는 최신 정보나 외부 문서에 대한 정보를 포함하지 못합니다.
또한 수천 페이지에 달하는 PDF 문서를 통째로 넣기에는 토큰 한계도 존재합니다.

이러한 한계를 극복하기 위해 도입된 전략이 바로 생성과 검색을 결합하는 구조,
즉 RAG입니다.


RAG의 작동 방식은 간단하지만 강력합니다.

  1. 사용자가 자연어로 질문을 입력합니다.
  2. 질문은 임베딩되어 벡터화됩니다.
  3. 벡터 검색을 통해 관련 문서 조각(chunk)이 검색됩니다.
  4. 검색된 내용을 LLM에게 전달합니다.
  5. LLM은 이 내용을 참고해 응답을 생성합니다.

이 구조에서는 GPT가 "모르는 걸 지어내는(hallucination)" 문제가 줄어들고,
문서에서 실제로 찾은 내용을 기반으로 응답을 하기 때문에 신뢰도가 매우 높아집니다.


왜 RAG는 문서 Q&A 챗봇에 딱 맞는 구조일까?

RAG는 특히 다음과 같은 조건에서 빛을 발합니다:

  • 문서가 길고, 검색이 필요한 경우
  • 사용자가 원하는 응답이 특정 문장이나 단락에 근거할 때
  • 응답과 함께 출처 또는 인용 문장을 함께 보여줘야 할 때
  • 최신 정보나 자주 바뀌는 문서들을 실시간으로 반영하고 싶을 때

예를 들어 “2023년 계약서의 위약금 조항은 얼마인가요?”라는 질문에 대해
기존 LLM은 답을 지어낼 수 있지만, RAG는 실제 문서에서 해당 정보를 찾아 근거와 함께 답을 줍니다.


RAG를 구현하려면 다음과 같은 요소가 필요합니다.

  • 문서 로더(Loader) → 다양한 포맷의 문서 불러오기
  • 텍스트 분할기(Splitter) → 의미 단위로 잘게 나누기
  • 임베딩 모델 → 문장을 벡터로 변환
  • 벡터 데이터베이스 → FAISS, Chroma, Weaviate 등
  • 리트리버(Retriever) → 질문에 맞는 문서 조각 찾기
  • 생성기(LLM) → 문서 내용을 바탕으로 답 생성

이 모든 구성요소를 연결해주는 게 바로 LangChain이고,
그 안에서의 핵심 전략이 바로 RAG 체인 구조입니다.


RAG 구조는 정답률을 높이는 전략의 핵심입니다.

RAG는 단순히 검색만 붙이는 구조가 아닙니다.
다음과 같은 고급 전략이 함께 적용됩니다:

  • MultiQueryRetriever: 질문을 다양한 방식으로 변환해 검색 정확도 향상
  • Semantic Chunking: 문서를 의미 기반으로 나누어 검색 효율성 개선
  • Contextual Compression: 너무 많은 검색 결과 중 중요한 내용만 요약해 전달

이러한 기술 조합은 단순 문답을 넘어서, 근거 기반 답변 시스템을 가능하게 합니다.


정리하며 – LLM에게 ‘검색 능력’을 부여하는 전략, RAG

GPT는 단독으로도 훌륭한 생성 능력을 갖고 있지만,
문서 기반 Q&A 시스템에서는 반드시 검색을 통한 근거 기반 응답이 필요합니다.
RAG는 LLM에 이런 능력을 부여하는 가장 검증된 전략입니다.

이제 RAG의 개념을 이해했다면,
다음 글에서는 실제로 문서를 불러오고, 쪼개고, 벡터로 변환해 저장하는 텍스트 로딩과 분할 단계로 들어가 보겠습니다.

728x90