LLM이 스스로 검색 필요 여부, 정보의 관련성, 생성된 답변의 품질(근거 충실도, 유용성)을 단계별로 판단하고 평가하여 최적의 답변을 도출하는 동적 RAG 기법
- 작동방식
- 장점
- 효율성: 불필요한 검색을 생략하고, 관련 없는 정보를 사전에 제거하여 LLM의 부하와 비용 감소
- 품질 향상: 답변이 검색된 근거에 충실한지(Faithfulness)를 자체적으로 검증하여 환각(Hallucination) 현상을 크게 줄임
- 적응성: 질문의 종류와 검색 결과의 품질에 따라 동적으로 작업 흐름을 조절하여 더 높은 품질의 답변을 생성
- 구현
- LangChain의 구조화된 출력 기능(
with_structured_output)을 핵심적으로 사용 - 각 의사결정 단계(검색 여부, 관련성 등)를 위한 별도의 프롬프트와
Pydantic출력 모델을 정의 - 이렇게 생성된 여러 개의 '판단 Chain'을 순차적으로 호출하는 파이썬 함수를 작성하여, LLM이 스스로 생각하고 판단하는 전체 Self-RAG 로직을 구현
- LangChain의 구조화된 출력 기능(