RAG 파이프라인 구성 요소 개요: 수집 및 쿼리 흐름 (이미지출처)
- 검색 증강 생성 (Retrieval-Augmented Generation, RAG)
- LLM 기반 AI 어플리케이션을 개발할 때, 비지니스 데이터로 LLM 의 생성 기능을 보강 (link)
-
RAG 기본형 설계의 단점
- [검색단계] 대화이력 누락 현상
- VDB 검색할 때, 이전의 대화이력은 누락되고 사용자가 입력한 질문만 반영되는 문제
- 예시 (일자리 관련 txt 파일로 VDB 를 구성한 경우)
- 👧 : "난 25살이야."
- 🤖 : "안녕하세요, 무엇을 도와드릴까요?"
- 👧 : "내 나이에 맞는 일자리 정보를 알려줄래?"
- 🤖 : "사용자의 나이를 알 수 없으므로 제공된 문서에서 올바른 정보를 찾을 수 없습니다."
- [검색단계] Lost in the middle
- [생성단계] Prompt, Context Window 사이즈가 지나치게 클 경우 답변 생성 시간이 오래 걸리고 Token 소진도 큼
- [검색단계] 대화이력 누락 현상
-
RAG 기본형 설계의 단점을 극복하고 성능 개선할 수 있는 방법들
- [검색단계] Standalone question
- 가이드 : LLM 호출하여 (질문 + 대화이력) 을 독립형 질문으로 만들고, 이를 VDB 검색 단계에 전달
- 효과 : VDB 검색 시, 대화이력 누락 현상 (간접적으로) 극복
- [검색단계] Long-Context Reorder
- LLM 이 우선적으로 처리해야 하는 문서를 Context Window 의 앞단에 배치하는 등 Long-Context 내 순서 구조를 재배열
- 참고자료 : 🗂️
- [생성단계] System Prompt 최적화
- 가이드 : Prompt 에 넘기는 파라미터들을 어떤 포맷, 순서로 처리해야 하는지 간결한 명령문으로 전달
- 효과 : 답변 생성 시간 단축, Token 소진 절약
- 참고자료 : 🗂️
- [검색/생성] LangGraph 적용
- 가이드 : 각 노드의 작업이 끝날 때마다 처리결과를 전역의 State 객체에 업데이트하고, 모든 노드들이 State 객체를 파라미터로 받아 다음단계에 어떤 작업을 수행할 지 결정, ...
- 효과 : 전체 프로세스 처리 시간 단축, ...
- [검색단계] Standalone question

