LLM은 학습 시점 이후의 정보나 도메인 지식이 부족할 수 있어, 실시간 검색으로 보완하는 구조가 필요합니다. RAG(Retrieval-Augmented Generation)는 외부 지식 기반을 검색해 LLM 입력에 넣고 답을 생성하는 아키텍처로, 재학습 없이 최신·도메인 정보를 반영하고 출처를 명시할 수 있어, 정확성과 투명성을 높이는 데 쓰입니다.

💡 이런 분들께 추천합니다

  • RAG를 설계·구현하려는 개발자
  • LLM 활용 서비스를 기획하는 분
  • 검색·재랭킹·메모리 등 RAG 모듈을 구분하고 싶은 분

🧩 개념 설명 / 배경 지식

RAG(검색 증강 생성)
LLM이 자체 파라미터만 쓰지 않고, 외부 지식(문서·DB·웹 등)을 실시간 검색해 문맥으로 제공하고, 그 위에서 답변을 생성하는 방식입니다.

장점

  • 최신·도메인 지식 활용으로 정확성 향상
  • 재학습 없이 외부 자료만 보강해 비용 절감
  • 답변에 출처 명시로 투명성 확보

한계

  • 검색된 문서 품질에 성능이 의존
  • 잘못된 문맥 해석 시 오답 가능

🔍 본론: RAG의 핵심 모듈과 패턴

1. 핵심 모듈

모듈 역할
Routing 원질의 분석·의미 이해, FAQ/위키/DB 등 목적별 라우팅
Search 벡터DB·BM25·TF-IDF 등으로 후보 문서 검색, 청킹·임베딩·인덱싱
Retrieve 유사도(코사인, L2)·Top-k로 질의와 밀접한 문서 선별
Rewrite 질의 확장·문서 요약·템플릿 변환으로 모델 입력 최적화
Rerank 랭킹 모델·RRF 등으로 후보 재정렬, RAG-Fusion 등에서 활용
Memory Short-term(직전 턴)·Long-term(프로필 등)로 대화 맥락 유지
Predict 검색 결과+질의를 조합한 프롬프트로 LLM이 최종 답변 생성, 온도·토큰 제한·사실 검증
Demonstrate 코드·명령어·다이어그램 등 예시로 복잡 작업 시연
Fusion 다중 소스 정보를 텍스트·표 등으로 통합해 일관된 답변 구성

2. 주요 패턴

  • Naive RAG: Retrieve → Generate. 단순·빠름, 재작성·재정렬 미비로 정확도 제한.
  • Advanced RAG: Rewrite → Retrieve → Rerank → Generate. 쿼리 확장·필터·재정렬로 정교화.
  • DSP (Demonstrate-Search-Predict): 예시 제공 → 검색 → 생성. 복잡 작업·코드 생성에 유리.
  • ITER-RETGEN: Retrieve ↔ Generate 반복. 점진적 개선·부분 답변 피드백 반영(섹션별 요약 후 재검색 등).

⚠️ 주의사항

  • 검색된 문서가 잘못되거나 편향되면 환각처럼 보이는 오답이 나올 수 있으므로, 출처 검증·필터링·재랭킹을 두는 것이 좋습니다.
  • 청킹·임베딩·토큰 한도에 따라 문맥 품질이 달라지므로, 도메인에 맞게 튜닝이 필요합니다.

✅ 실습 / 적용 예시

RAG를 쓰려면 (1) 벡터DB·검색 엔진 선택, (2) 문서 청킹·임베딩 파이프라인, (3) 라우팅·재작성·재랭킹·프롬프트 설계 순으로 단계를 나누어 구현해 보시면 됩니다. LangChain·LlamaIndex 등 RAG 프레임워크로 프로토타입을 빠르게 만들 수 있습니다.

🚧 트러블슈팅 / 자주 묻는 질문

Q. RAG와 파인튜닝의 차이는?
A. RAG는 외부 검색 결과를 문맥으로 넣어 LLM이 답을 만들게 하는 방식이라 재학습이 필요 없고, 파인튜닝은 모델 가중치를 도메인 데이터로 업데이트하는 방식입니다. 둘을 함께 쓰는 하이브리드도 가능합니다.

Q. 검색은 많이 하는데 답변 품질이 낮을 때?
A. Rewrite(질의 확장·문서 요약), Rerank 강화, 프롬프트 구조(지시·출처 형식)·토큰 한도 조정을 검토해 보세요. Retrieval 개수(k)와 청크 크기도 조절해 보시면 됩니다.

Q. 대화형 RAG에서 맥락이 끊길 때?
A. Short-term 메모리(직전 턴)와 Long-term(사용자·세션 정보)를 함께 쓰고, 이전 Q&A를 요약해 검색 쿼리나 프롬프트에 포함하는 방식이 도움이 됩니다.

📝 마무리

  • RAG는 검색(라우팅·검색·추출·재작성·재랭킹)과 생성(Predict)을 결합해 LLM의 지식·시점 한계를 보완합니다.
  • 모듈 조합(Naive / Advanced / DSP / 반복 RAG 등)에 따라 단순도와 정확도를 트레이드오프할 수 있습니다.
  • 다음에는 벡터DB 선택, 임베딩 모델, RAG 평가 지표 등을 심화해 보시면 좋습니다.

댓글남기기