Modular RAG Pattern

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

반복적인 검색 - 생성 과정을 통해 복잡한 질문에 대한 답변의 품질을 향상

동작 방식

  1. 검색(Retrieval)과 생성(Generation) 단계를 여러 번 반복
  2. 미리 정해진 최대 반복 횟수(N)까지 프로세스를 반복
  3. 각 반복마다 이전 출력을 활용하여 더 관련성 높은 정보를 검색하고 답변을 개선

 

ITER-RETGEN


Generation Augmented Retrieval(GAR)

  1. 검색된 문서 기반 LLM 답변 생성
  2. 생성된 답변을 Query와 결합하여 검색 수행
  3. 새롭게 검색된 문서 기반으로 LLM 답변 생성
  4. N회 반복 후 최종 답변 도출

 

Tree of Clarification


모호한 질문을 구체화 해나가는 과정

  1. 각 노드에서 LLM은 해당 질문에 대한 답변 생성(w/ Ambiguous Question, 모호한 질문)
  2. Question Clarification을 위한 하위 노드 추가(Disambiguous Question)
  3. 관련 없는 노드 pruning / 관련성 있는 정보만 남김
  4. 생성한 정보를 종합하여 Long Form 답변 생성

 

Adaptive Retrieval Pattern

Retrieval 전 단계에서 Retrieval 과정이 필요한지를 판단

동작 방식
검색(Retrieval)이 필요한 질문인지 판단

  1. 검색이 필요하지 않은 경우: 즉각 답변 생성
  2. 검색이 필요한 경우: ITER-N 혹은 Recursive Retrieval Pattern 실행

 

Forward-Looking Active Retrieval (FLARE)

  • 답변을 생성함에 있어 Retrieval이 필요한지 판단
  • 답변에 대한 신뢰도(Confidence)를 측정하여 동적으로 Query를 구성

동작 방식

  1. 쿼리 입력
  2. 모델이 토큰을 생성하며 다음 문장을 반복적으로 예측
  3. 모델이 생성한 답변이 confidence가 낮다면, 생성된 문장을 Query로 문서 재검색
  4. 재검색한 문서 + 생성한 문장을 입력으로 새로운 답변 생성
  5. 응답이 완성될 때까지 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로 대체

동작 방식

  1. 문서 Retrieval 후 관련성 평가
  2. 관련성이 있다면 답변 생성, 관련성이 없다면 Query Rewrite 후 Step 1 진행
  3. 답변에 대한 Hallucination 평가
  4. Hallucination 판별시 답변 재생성, 없다면 Relevance 체크
  5. Relevance Check 통과시 최종 답변, 실패시 Query Rewrite 후 step 1 진행

 

그 밖에 수 많은 RAG Patterns

https://github.com/hymie122/RAG-Survey


 

출처