Linear Pattern
- 선형 흐름 패턴은 가장 단순하고 가장 일반적으로 사용되는 패턴
- RAG 흐름 패턴은 주로 검색 전처리 - 검색 - 후처리 및 생성 모듈로 이루어진 구성
Pre-Retrieve
- Query Transform
- Rewrite Query, HyDE
Post-Retrieve
- Reranker, Reorder
Rewrite - Retrieve - Read (RRR)
- RRR
Conditional Pattern
Conditional Routing
- Query 입력에 따라 RAG 파이프라인 선택
- 라우팅 모듈이 존재
- 예시) 입력된 Query에 따른 검색기 선택
Branching Pattern
Pre-Retrieve
- 검색 소스/검색 프로세스/프롬프트/모델 등이 달라짐
- 각 브랜치는 검색 & 생성을 개별적으로 수행한 다음 결과를 앙상블
- 예시) Query 3개 생성 - 검색 - 생성 - 결과
Generation
- 모델이 동일한 문맥(Context)으로 각각의 답변을 도출한 다음 결과를 앙상블
- 예시) GPT-4o, Claude 3.5 Sonnet, Llama3.1
Loop Pattern
Iterative N Pattern
반복적인 검색 - 생성 과정을 통해 복잡한 질문에 대한 답변의 품질을 향상
동작 방식
- 검색(Retrieval)과 생성(Generation) 단계를 여러 번 반복
- 미리 정해진 최대 반복 횟수(N)까지 프로세스를 반복
- 각 반복마다 이전 출력을 활용하여 더 관련성 높은 정보를 검색하고 답변을 개선
ITER-RETGEN
Generation Augmented Retrieval(GAR)
- 검색된 문서 기반 LLM 답변 생성
- 생성된 답변을 Query와 결합하여 검색 수행
- 새롭게 검색된 문서 기반으로 LLM 답변 생성
- N회 반복 후 최종 답변 도출
Tree of Clarification
모호한 질문을 구체화 해나가는 과정
- 각 노드에서 LLM은 해당 질문에 대한 답변 생성(w/ Ambiguous Question, 모호한 질문)
- Question Clarification을 위한 하위 노드 추가(Disambiguous Question)
- 관련 없는 노드 pruning / 관련성 있는 정보만 남김
- 생성한 정보를 종합하여 Long Form 답변 생성
Adaptive Retrieval Pattern
Retrieval 전 단계에서 Retrieval 과정이 필요한지를 판단
동작 방식
검색(Retrieval)이 필요한 질문인지 판단
- 검색이 필요하지 않은 경우: 즉각 답변 생성
- 검색이 필요한 경우: ITER-N 혹은 Recursive Retrieval Pattern 실행
Forward-Looking Active Retrieval (FLARE)
- 답변을 생성함에 있어 Retrieval이 필요한지 판단
- 답변에 대한 신뢰도(Confidence)를 측정하여 동적으로 Query를 구성
동작 방식
- 쿼리 입력
- 모델이 토큰을 생성하며 다음 문장을 반복적으로 예측
- 모델이 생성한 답변이 confidence가 낮다면, 생성된 문장을 Query로 문서 재검색
- 재검색한 문서 + 생성한 문장을 입력으로 새로운 답변 생성
- 응답이 완성될 때까지 2~4 Step을 반복 수행
응용한 Self-Reflective RAG
- Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection을 응용한 버전
- Self-RAG 논문에서는 reflection 토큰으로 retrieval하는 시기를 판단 -> LLM as a Judge로 대체
동작 방식
- 문서 Retrieval 후 관련성 평가
- 관련성이 있다면 답변 생성, 관련성이 없다면 Query Rewrite 후 Step 1 진행
- 답변에 대한 Hallucination 평가
- Hallucination 판별시 답변 재생성, 없다면 Relevance 체크
- Relevance Check 통과시 최종 답변, 실패시 Query Rewrite 후 step 1 진행
그 밖에 수 많은 RAG Patterns
https://github.com/hymie122/RAG-Survey