전체 그래프
RAG

Self-RAG

ai-mlrag

상위: Advanced RAG Techniques

LLM이 스스로 검색 필요 여부, 정보의 관련성, 생성된 답변의 품질(근거 충실도, 유용성)을 단계별로 판단하고 평가하여 최적의 답변을 도출하는 동적 RAG 기법

  • 작동방식
    1. 검색 결정: LLM이 질문을 분석하여 외부 정보 검색이 필요한지 먼저 판단
    2. 문서 필터링: 검색을 수행한 경우, 각 문서가 질문과 관련 있는지 평가하여 관련 없는 문서는 걸러냄
    3. 병렬 생성 및 평가: 관련 있는 각 문서를 기반으로 답변 후보를 생성하고, 생성된 각 답변이 문서 내용에 얼마나 충실한지, 사용자에게 얼마나 유용한지를 LLM 스스로 채점
    4. 최종 선택: 자체적으로 매긴 모든 평가 점수를 종합하여 가장 높은 점수를 받은 답변을 최종 결과로 선택
  • 장점
    • 효율성: 불필요한 검색을 생략하고, 관련 없는 정보를 사전에 제거하여 LLM의 부하와 비용 감소
    • 품질 향상: 답변이 검색된 근거에 충실한지(Faithfulness)를 자체적으로 검증하여 환각(Hallucination) 현상을 크게 줄임
    • 적응성: 질문의 종류와 검색 결과의 품질에 따라 동적으로 작업 흐름을 조절하여 더 높은 품질의 답변을 생성
  • 구현
    • LangChain의 구조화된 출력 기능(with_structured_output)을 핵심적으로 사용
    • 각 의사결정 단계(검색 여부, 관련성 등)를 위한 별도의 프롬프트와 Pydantic 출력 모델을 정의
    • 이렇게 생성된 여러 개의 '판단 Chain'을 순차적으로 호출하는 파이썬 함수를 작성하여, LLM이 스스로 생각하고 판단하는 전체 Self-RAG 로직을 구현