Reasoning model을 Agent활용

Prompt로 서치를 언제할지 컨트롤함: 3.3 Agentic Retrieval-Augmented Generation Mechanism

예시 작성함: Knowledge Refinement via Reason-in-Documents

 

 

https://github.com/sunnynexus/Search-o1

 

 

Abstract

Large Reasoning Model(LRM)은 뛰어난 추론 능력을 보여주지만, 지식 부족으로 인한 한계가 있음. 이를 해결하기위해 다음과 같은 프레임워크를 제시함.

  • Search-o1: LRM을 agentic RAG방법과 Reason-in-documents모듈로 강화
    • 추론 과정에서 search와 통합. 불확실한 지식에서 외부 지식의 동적 검색 가능. 검색된 정보를 심층 분석 후 추론 체인에 주입

 

Introduction

  • LRM의 발전: o1, QwQ, DeepSeekR1등 추론 능력이 뛰어난 모델들이 개발
  • LRM한계: 과도한 사고, 지식 부족의 한계가 있음.
    • 도전적인 문제에서는 perhaps와 같은 불확실한 단어(fig1)를 추론 과정에서 평균 30회 이상 하는 것을 발견함.
    • 이러한 불확실성 및 지식 부족은 오류를 더 크게만들고, 전체 추론 체인을 방해함.
  • 제안: Search-o1 - 자율적인 검색을 통해 성능 향상.
    • 표준 RAG:
      • 한계: 관련 지식을 한번 검색
      • 극복: 지식이 부족하면 능동적으로 검색 쿼리 생성.
    • 검색 정보 통합:
      • 한계: 검색된 문서의 중복 처리 문제가 있음. -> Reasoning Model의 Context 제한과 연관 있음.
      • 극복: Reason in documents모듈 도입 - 메인 추론 체인과 독립적으로 검색된 문서 분석 및 정제
  • 기여: 
    1. 최초 통합 프레임워크: 추론모델을 agentic search 워크플로우에 통합하여 자율적으로 지식 보완
    2. 효과적 지식 통합: 추론 과정을 agentic RAG 메커니즘과 지식 정제 모델과 결합하여 논리적 흐름 유지
    3. 좋은 성능

 

Related Work

  • Large Reasoning Models
    • 전통적 LLM: 모델 크기 확장이나 학습 데이터 확장을 통해 훈련 에서 확장성 달성
    • 추론 모델: 추론에서 확장성을 달성하여 성능 향상
      • o1과 같은 추론 능력 달성 방법:
        • 추론시에서 Monte Carlo Tree Search (MCTS)와 함께 정책 및 리워드 모델 결합
          -> 허나 이는 모델 자체에 추론 능력을 내재화 하는 것은 아님.
        • 훈련 데이터 증류를 통한 능력 향상
      • 한계: 내부 지식이 불충분할 때 외부 세계 지식을 활용할 수 없음
  • Retrieval-Augmented Generation (RAG)
    • RAG 시스템 향상: 쿼리 전처리, 문서 압축, 노이즈 제거, 정제, 지시 따르기 등
    • 발전된 접근법: 엔드 투 엔드 모델 훈련을 통한 RAG 시스템 구현, 지식 그래프 기반 RAG 시스템
      Agentic RAG 시스템: 모델이 자율적으로 검색 시기와 내용 결정
    • 한계: 기존 RAG 접근법은 o1과 같은 모델의 강력한 추론 능력과 결합되지 않음

 

Methodology

3.1 Problem Formulation

  • 목표: 두가지 요소 생성
    • R: 논리적 추론 체인
    • a: 최종 답변
  • 입력: 
    • I: 작업 지시사항(instruction)
    • q: 질문(query, question)
    • D: 검색된 외부 지식(Data)
  • 수학적 표현
    • 설계: 입력(I,q,D) -> 출력(R,a)로 매핑을 하는 것
    • 확률적으로 모델링하면 아래처럼 표현 가능
      -> 앞에 있는 수식인 추론 과정을 먼저 생성하고, 이후 Answer부분을 만들어낸다.

->

3.2 Overview of the Search-o1 Framework

  • search-o1 목적: LRM의 지식 부족 문제를 해결하기 위함.
  • 세가지 접근 방식: 
    • Vanila Reasoning Pattern(a): 정확한 정보 접근이 어려우면, 모델은 가정에 의존해야함. 연쇄 오류를 발생시킴
    • Agentic RAG(b): 모델이 자율적으로 외부 지식 접근 할 수 있도록함. 그러나 길고 관련없는 정보 포함하면 추론 흐름 방해함.
    • Search-o1(c): agentic RAG확장판, 외부 지식을 통합하며 추론 체인의 논리적 흐름을 유지하며 하는 추론.

3.3 Agentic Retrieval-Augmented Generation Mechanism

모델은 <begin_search_query>와 같은 것을 생성하는데 훈련되지 않았음. 따라서 이 연구에서는 이를 프롬프트 튜닝해서 문제를 풀어감.

 

 

  • Agentic RAG: 추론 과정 중에 자율적으로 외부 지식을 검색한 시기를 결정할 수 있음.(Appendix A.1)
    • 자율적인 검색 쿼리 생성
      • 조건: 모델이 추론 중 지식이 불확실할 때
      • 구현: <|begin_search_query|> 및 <|end_search_query|> 사이에 검색 쿼리를 생성 
      • 식: (2)
    • 검색 호출
      • 호출 시점: 모델이 <|end_search_query|> 토큰을 생성하는 순간
      • 과정: 추론 일시 중지 -> 검색 쿼리 추출 -> 검색 함수 호출
      • 식: (3)
    • 검색 결과 통합
      • 위치: 특수 기호 <|begin_search_result|> 및 <|end_search_result|> 사이
      • 방법: 추론 체인 $R^{i-1}$에 검색 결과 삽입
      • 처리: 모델이 삽입된 검색 결과를 참고해 추론 계속 진행
    • 정리:
      • 모델이 지식이 부족함을 느끼면
      • <|begin_search_query|>생성
      • 검색하려는 쿼리를 생성
      • <|end_search_query|> 생성
      • <|begin_search_query|>와 <|end_search_query|> 사이에 있는 텍스트를 추출하여 검색 쿼리로 사용
  • Search
    • 검색 결과로 나온 i개의 가장 관련있는 문서를 선택하고, <|begin_search_result|>와 <|end_search_result|> 사이에 추론 체인 $R^{i-1}$에 삽입되어, 외부 지식을 활용하여 추론 과정을 계속할 수 있게 함.

3.4 Knowledge Refinement via Reason-in-Documents

  • 이 단계의 목적: 
    • 검색된 문서의 정보는 중복: 길고 중복된 정보는 -> 일관성 및 노이즈 들어갈 수 있음.
    • 긴 문서 이해 제한: lost in the middle, limited context length
  • 작동방식:
    • 입력: (이전 까지의 추론, 현재 검색 쿼리, 검색된 문서)
    • 처리 방법(Appendix A.1):
      • 중간 추론 시퀀스 생성(식4): retrieve 정보를 추론, 논리 체인의 일관성을 유지하면서 정제된 지식으로 변환
        더보기
        문제: trans-cinnamaldehyde가 methylmagnesium bromide와 반응하여 생성물 1을 형성했습니다. 이후 여러 단계의 반응 후 최종 생성물 3의 탄소 원자 수는 몇 개인가요?

        1. 초기 추론 단계:
        이 화학 반응 문제를 해결하기 위해 단계별로 접근해보겠습니다. 먼저 trans-cinnamaldehyde와 methylmagnesium bromide의 반응을 이해해야 합니다. methylmagnesium bromide는 Grignard 시약으로 카르보닐 화합물에 친핵성 공격을 합니다. 그러나 trans-cinnamaldehyde의 정확한 구조를 모르겠습니다

        2. 검색 쿼리 생성
        <|begin_search_query|>structure of trans-cinnamaldehyde<|end_search_query|>

        3. 검색 결과
        Wikipedia: "Trans-cinnamaldehyde (또는 (E)-cinnamaldehyde)는 분자식 C9H8O를 가진 방향족 알데히드로, 페닐 고리에 연결된 propenal 그룹으로 구성되어 있습니다..."
        화학 교육 사이트: "Trans-cinnamaldehyde의 구조는 페닐 고리(C6H5)가 이중 결합으로 알데히드 그룹에 연결된 형태입니다..."

        4. 중간 추론 시퀀스 r_docs생성
        검색된 웹 페이지를 분석해보니, trans-cinnamaldehyde의 구조에 대한 정보를 얻을 수 있습니다. 이 화합물은 분자식 C9H8O를 가지며, 페닐 고리가 이중 결합으로 알데히드 그룹에 연결된 형태입니다. 이 정보는 현재 추론 단계에서 필요한 trans-cinnamaldehyde의 구조를 이해하는 데 도움이 됩니다. 특히 탄소 원자 수가 9개라는 점이 중요합니다

        5. 4번의 추론 시쿼스로 -> 정제된 지식 생성 r_final
        (근데 이 과정이 왜 필요한지는 모르겠음)
        Trans-cinnamaldehyde(또는 (E)-cinnamaldehyde)는 분자식 C9H8O를 가집니다. 페닐 고리가 이중 결합을 통해 propenal 그룹에 연결된 구조로, 분자는 평면형입니다. 이 구조는 9개의 탄소 원자, 8개의 수소 원자, 1개의 산소 원자로 구성되어 있으며, 기능기는 화학적 변환에서의 반응성을 나타냅니다.

        6. 추론 체인에 통합 (R^1)
        이 화학 반응 문제를 해결하기 위해 단계별로 접근해보겠습니다. 먼저 trans-cinnamaldehyde와 methylmagnesium bromide의 반응을 이해해야 합니다. methylmagnesium bromide는 Grignard 시약으로 카르보닐 화합물에 친핵성 공격을 합니다. 그러나 trans-cinnamaldehyde의 정확한 구조를 모르겠습니다.
        <|begin_search_query|>structure of trans-cinnamaldehyde<|end_search_query|>
        <|begin_search_result|>Trans-cinnamaldehyde(또는 (E)-cinnamaldehyde)는 분자식 C9H8O를 가집니다. 페닐 고리가 이중 결합을 통해 propenal 그룹에 연결된 구조로, 분자는 평면형입니다. 이 구조는 9개의 탄소 원자, 8개의 수소 원자, 1개의 산소 원자로 구성되어 있으며, 기능기는 화학적 변환에서의 반응성을 나타냅니다.<|end_search_result|>
        이제 trans-cinnamaldehyde의 구조를 알았으니, 반응을 계속 분석할 수 있습니다. Trans-cinnamaldehyde는 9개의 탄소 원자를 포함합니다. Methylmagnesium bromide가 알데히드 카르보닐 그룹을 공격하면 메틸 그룹(-CH3)이 추가되어 생성물 1에는 10개의 탄소 원자가 포함됩니다...

 

과거 $r^{i}_{docs<t}, reasoning$ 및 search에 사용한 query, 검색 결과를 인풋으로 넣어서, 요약과 비슷하게 생긴 $r^{i}_{docs,t}$를 생성

 

3.5 Search-o1 Inference Process

  • 단일 질문에 대한 추론 로직:
    1. 초기화: 지시사항(I), 질문(q)를 연결해 초기 인풋 생성
    2. 추론 및 검색 쿼리 생성: 1의 인풋으로 추론 체인 R생성 시작. 지식이 부족하면 모델이 자율적으로 특정 토큰 생성.
    3. 검색 수행: <|end_search_query|> 태그 감지 시 추론 일시 중지, 검색 쿼리 추출, 외부 검색 및 문서(D)획득
    4. 문서 정제: Reason-in-Documents모듈로 검색 문서 정제 -> r_ifnal생성
    5. 정제된 정보 통합: r final을 <|begin_search_result|> 및 <|end_search_result|> 태그 사이에 삽입, 추론체인 R에 통합.
    6. (2-5)과정을 필요에 따라 반복함.
  • 배치 추론 메커니즘: 여러 질문을 동시에 처리하기 위함: 자세한 설명 생략

 

Experiments

4.1 Tasks and Datasets

  • 수학 과학, 코딩 문제: GPQA, MATH500, AMC2023, AIME2024, LiveCodeBench
  • 오픈 도메인 QA

4.2 Baselines

  • Direct Reasoning (w/o Retrieval)
  • RAG Reasoning: 
    • Standard RAG: 10개 문서 검색하고, 추론 및 답변 생성
    • RAgent(RAG Agent): 검색 시점을 모델이 결정할 수 있 함. 검색된 문석의 길이를 관리하기 위해 ReAct에서 영감을 받아 추론 중에 먼저 상위 10개 스니팻을 검색함.
    • Search-o1: QwQ-32B를 사용
  • 눈여겨볼 것: Query에 모든 정보가 있는 Math는 QwQ-32B나 Search-o1이나 큰 성능차이가 없음. 허나 GPQA같은 경우는 성능차이가 유의미하게 나타나보임.

4.3 Implementation Details

  • 모델: Search-o1의 백본으로 오픈 소스 QwQ-32B-Preview 사용
  • 설정: 최대 32,768 토큰, 온도 0.7, top_p 0.8, top_k 20, 반복 패널티 1.05
  • 검색 설정:Bing Web Search API 사용 (US-EN 지역 설정), 상위 10개 문서 검색, Jina Reader API로 웹 페이지 내용 가져오기
  • 추가 전략:
    • 최종 답변 미제공 시 직접 추론 결과를 사용하는 백오프 전략 적용
    • Non reasoning 모델에는 간단한 Chain-of-Thought 프롬프팅 적용

4.4 Results on Challenging Reasoning Tasks

  • Main Result
    • QwQ-32B-Preview의 우수성: instruction LLM보다 일관되게 성능 우수
    • RAgent-QwQ-32B의 장점: 대부분의 작업에서 표준 RAG 기반 모델과 직접 추론 QwQ-32B 모두 능가.
    • Search-o1의 성능: Reason-in-Documents 전략으로 외부 지식을 통합하면서 원래 추론의 일관성 유지. 
  • Scaling Analysis on Number of Retrieved Documents.
    • 효과적인 문서 활용: Search-o1은 검색된 문서 수가 증가함에 따라 복잡한 추론 작업 성능 향상
    • 단일 문서의 효율성: 단 하나의 문서만 검색해도 10개 문서를 사용하는 직접 추론 및 표준 RAG 모델 능가
    • 도메인별 성능: 물리학, 화학, 생물학, 전체 성능 모두에서 검색 문서 수 증가에 따른 일관된 개선
    • Agentic search와 Reason-in-Documents 전략의 효과 확인

 

 

 

 

 

+ Recent posts