Post

[RAG] Self-Routing RAG Paper 리뷰

πŸ’‘ Self-Routing RAG: Binding Selective Retrieval with Knowledge Verbalization

Selective retrieval improves retrieval-augmented generation (RAG) by reducing distractions from low-quality retrievals and improving efficiency. However, existing approaches under-utilize the inherent knowledge of large language models (LLMs), leading to suboptimal retrieval decisions and degraded generation performance. To bridge this gap, we propose Self-Routing RAG (SR-RAG), a novel framework that binds selective retrieval with knowledge verbalization. SR-RAG enables an LLM to dynamically decide between external retrieval and verbalizing its own parametric knowledge. To this end, we design a multi-task objective that jointly optimizes an LLM on knowledge source selection, knowledge verbalization, and response generation. We further introduce dynamic knowledge source inference via nearest neighbor search to improve the accuracy of knowledge source decision under domain shifts. Fine-tuning three LLMs with SR-RAG significantly improves both their response accuracy and inference latency. Compared to the strongest selective retrieval baseline, SR-RAG reduces retrievals by 29% while improving the performance by 5.1%.

Di Wu,Β Jia-Chen Gu,Β Kai-Wei Chang,Β Nanyun Peng

  • https://github.com/xiaowu0162/self-routing-rag

ν•΄λ‹Ή λ…Όλ¬Έμ—μ„œλŠ” β€œSR-RAGβ€λΌλŠ” μƒˆλ‘œμš΄ 검색 증강 생성 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ œμ•ˆν•œλ‹€. SR-RAGλŠ” κΈ°μ‘΄ Selective Retrieval λ°©μ‹μ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κ³  LLM의 μ„±λŠ₯κ³Ό νš¨μœ¨μ„±μ„ ν–₯μƒμ‹œν‚€λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€.

핡심 κ°œλ…

  • RAG (Retrieval-Augmented Generation)

    λŒ€κ·œλͺ¨ μ–Έμ–΄λͺ¨λΈ(LLM)에 μ™ΈλΆ€ 지식을 κ²°ν•©ν•˜μ—¬ 더 μ •ν™•ν•˜κ³  μ‹œμ˜μ μ ˆν•œ 응닡을 μƒμ„±ν•˜λŠ” 기법

  • 선택적 검색 (Selective Retrieval)

    λͺ¨λ“  쿼리에 λŒ€ν•΄ μ™ΈλΆ€ 지식을 κ²€μƒ‰ν•˜λŠ” λŒ€μ‹ , ν•„μš”ν•œ κ²½μš°μ—λ§Œ 검색을 μˆ˜ν–‰ν•˜μ—¬ νš¨μœ¨μ„±μ„ 높이고 λΆˆν•„μš”ν•œ μž‘μŒμ„ μ€„μ΄λŠ” 기법

  • 지식 μ–Έμ–΄ν™” (Knowledge Verbalization)

    LLM이 슀슀둜 μ•Œκ³  μžˆλŠ” λ‚΄μž¬λœ 지식(νŒŒλΌλ©”νŠΈλ¦­ 지식)을 λͺ…μ‹œμ μœΌλ‘œ μ„€λͺ…ν•΄λ‚΄λŠ” 과정이닀. 검색 없이도 κ³ ν’ˆμ§ˆ 응닡을 μœ λ„ν•  수 μžˆλ‹€.

핡심 문제

: 기쑴의 선택적 검색 RAGλŠ” μ™ΈλΆ€ 검색이 ν•„μš” 없을 λ•Œ λ‹¨μˆœνžˆ LLM이 직접 닡변을 μƒμ„±ν•˜λ„λ‘ ν•œλ‹€. μ΄λŠ” LLM μžμ²΄μ— λ‚΄μž¬λœ λ°©λŒ€ν•œ 지식(νŒŒλΌλ―Έν„° 지식)을 λͺ…μ‹œμ μœΌλ‘œ ν™œμš©ν•˜μ§€ λͺ»ν•˜κ²Œ ν•˜μ—¬, 검색 결정이 졜적이 아닐 수 있고 μ΅œμ’… λ‹΅λ³€μ˜ 질이 μ €ν•˜λ  수 μžˆλ‹€.

연ꡬ λͺ©μ 

κΈ°μ‘΄ 선택적 검색 기법은 LLM이 이미 μ•Œκ³  μžˆλŠ” 정보λ₯Ό μΆ©λΆ„νžˆ ν™œμš©ν•˜μ§€ λͺ»ν•œλ‹€λŠ” ν•œκ³„λ₯Ό LLM이 검색 μ—¬λΆ€λ₯Ό 슀슀둜 νŒλ‹¨ν•˜κ³ , ν•„μš” μ‹œ λ‚΄λΆ€ 지식을 μ–Έμ–΄ν™”ν•˜μ—¬ ν™œμš©ν•  수 μžˆλ„λ‘ Self-Routing RAG (SR-RAG)을 μ œμ•ˆν•œλ‹€.

Self-Routing RAG (SR-RAG)

SR-RAGλŠ” κΈ°μ‘΄ RAG의 ν•œκ³„λ₯Ό λ„˜μ–΄ LLM의 λ‚΄λΆ€ 지식 ν™œμš©μ„ κ·ΉλŒ€ν™”ν•˜λŠ” μƒˆλ‘œμš΄ ν”„λ ˆμž„μ›Œν¬μ΄λ©° 핡심 μ•„μ΄λ””μ–΄λŠ” λ‹€μŒκ³Ό κ°™λ‹€. image

μ‚¬μš©μž μ§ˆμ˜κ°€ μ£Όμ–΄μ§€λ©΄, μ‹œμŠ€ν…œμ€ 특수 토큰 예츑과 μ΅œκ·Όμ ‘ 이웃 검색을 κ²°ν•©ν•˜μ—¬ κ°€μž₯ μ μ ˆν•œ 지식 μ†ŒμŠ€λ₯Ό λ¨Όμ € μ„ νƒν•œλ‹€. 그런 λ‹€μŒ, 지식은 μ™ΈλΆ€ μ†ŒμŠ€λ‘œλΆ€ν„° κ²€μƒ‰λ˜κ±°λ‚˜ LLM이 자체적으둜 μ–Έμ–΄ν™”ν•˜μ—¬ μƒμ„±λœλ‹€. 이 λͺ¨λ“  과정은 ν•˜λ‚˜μ˜ μ™Έμͺ½λΆ€ν„° 였λ₯Έμͺ½μœΌλ‘œ μ§„ν–‰λ˜λŠ” 생성 패슀둜 κ°„μ†Œν™”λ˜μ–΄ μˆ˜ν–‰λœλ‹€.

지식 μ†ŒμŠ€ 선택과 λ‚΄λΆ€ 지식 μ–Έμ–΄ν™”μ˜ 톡합

image

  • LLM이 λ‹¨μˆœνžˆ μ™ΈλΆ€ 검색 μ—¬λΆ€λ§Œ κ²°μ •ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, μ™ΈλΆ€ λ°μ΄ν„°λ² μ΄μŠ€ 검색 λ˜λŠ” μžμ‹ μ˜ λ‚΄λΆ€(νŒŒλΌλ―Έν„°) 지식을 직접 β€˜μ–Έμ–΄ν™”(Verbalization)β€™ν•˜μ—¬ μ‚¬μš©ν• μ§€ λ™μ μœΌλ‘œ 슀슀둜 λΌμš°νŒ…(Self-Routing)ν•˜λ„λ‘ ν•œλ‹€. 즉, LLM 자체λ₯Ό μ€‘μš”ν•œ 지식 μ†ŒμŠ€λ‘œ μ·¨κΈ‰.
  • κ΅¬ν˜„: 이 선택 과정은 ν•™μŠ΅ 및 μΆ”λ‘  μ‹œ special token(<EOQ>, <Self>, <Wiki>, <EOK> λ“±)을 ν™œμš©ν•˜μ—¬, 질문 μž…λ ₯λΆ€ν„° 지식 선택, 지식 생성/검색, μ΅œμ’… λ‹΅λ³€ μƒμ„±κΉŒμ§€ ν•˜λ‚˜μ˜ 순차적인 생성 κ³Όμ •(single left-to-right generation pass)으둜 효율적으둜 μ²˜λ¦¬λœλ‹€.
  • μ–Έμ–΄ν™”: λ‚΄λΆ€ 지식을 ν™œμš©ν•  경우, GenRead와 같은 기법을 μ‚¬μš©ν•˜μ—¬ LLM의 νŒŒλΌλ―Έν„° 지식을 λͺ…μ‹œμ μΈ ν…μŠ€νŠΈ ν˜•νƒœλ‘œ λ‹€μ–‘ν•˜κ²Œ 생성(verbalize)ν•œλ‹€.

닀쀑 μž‘μ—… ν•™μŠ΅ 및 지식 ν’ˆμ§ˆ ν–₯상

  • LLM을 νŒŒμΈνŠœλ‹ν•  λ•Œ, λ‹€μŒ μ„Έ κ°€μ§€λ₯Ό λ™μ‹œμ— μ΅œμ ν™”ν•˜λŠ” 닀쀑 μž‘μ—…(Multi-task) λͺ©ν‘œλ₯Ό μ‚¬μš©.
    • (1) 졜적의 지식 μ†ŒμŠ€(μ™ΈλΆ€ vs. λ‚΄λΆ€) 선택 λŠ₯λ ₯
    • (2) κ³ ν’ˆμ§ˆμ˜ λ‚΄λΆ€ 지식 μ–Έμ–΄ν™” λŠ₯λ ₯
    • (3) 선택/μƒμ„±λœ 지식을 λ°”νƒ•μœΌλ‘œ μ •ν™•ν•œ μ΅œμ’… λ‹΅λ³€ 생성 λŠ₯λ ₯
  • ν•™μŠ΅ 데이터 ꡬ좕: ν•™μŠ΅ μ‹œ, μ–Έμ–΄ν™”λœ λ‚΄λΆ€ 지식과 μ™ΈλΆ€ 검색 κ²°κ³Όλ₯Ό 각각 μ‚¬μš©ν•˜μ—¬ 정닡을 μƒμ„±ν–ˆμ„ λ•Œμ˜ 둜그 μš°λ„(log-likelihood) 등을 λΉ„κ΅ν•˜μ—¬ μ–΄λ–€ μ†ŒμŠ€κ°€ 더 μœ μš©ν–ˆλŠ”μ§€ νŒλ‹¨ν•˜κ³ , 이λ₯Ό β€œμ„ ν˜Έ μ†ŒμŠ€β€ λ ˆμ΄λΈ”λ‘œ μ‚¬μš©ν•œλ‹€.
  • ν’ˆμ§ˆ ν–₯상: 특히 DPO(Direct Preference Optimization)와 같은 기법을 μΆ”κ°€λ‘œ ν™œμš©ν•˜μ—¬, LLM이 더 μœ μš©ν•˜κ³  κ³ ν’ˆμ§ˆμ˜ λ‚΄λΆ€ 지식을 슀슀둜 μ–Έμ–΄ν™”ν•˜λ„λ‘ ν•™μŠ΅μ‹œν‚¨λ‹€.

SR‑RAG ν•™μŠ΅μ€ 데이터 ꡬ좕 β†’ 1단계 BehaviorΒ Cloning β†’ 2단계 DPO λ―Έμ„Έμ‘°μ •β€μœΌλ‘œ κ΅¬μ„±λœλ‹€.

단계핡심 아이디어세뢀 절차 
β‘  데이터 ꡬ좕_LLM 슀슀둜 μƒμ„±ν•œ 지식_κ³Ό _μœ„ν‚€ λ“± μ™ΈλΆ€ 검색 지식_을 λͺ¨λ‘ μˆ˜μ§‘ ν›„,
μ–΄λŠ μͺ½μ΄ 닡변에 더 κΈ°μ—¬ν•˜λŠ”μ§€ 둜그 μš°λ„($l_j$)둜 μžλ™ νŒλ‹¨
<ul><li>λ‚΄λΆ€ 지식 μ–Έμ–΄ν™”: GenRead둜 n개의 λ‹€μ–‘ν™”λœ λ¬Έλ§₯ $c_{i1}, …, c_{in}$ 생성</li><li>μ™ΈλΆ€ 검색: λ°€μ§‘ κ²€μƒ‰κΈ°λ‘œ n개의 λ¬Έλ§₯ $c_{e1}, …, c_{en}$ μˆ˜μ§‘</li><li>각 λ¬Έλ§₯ $c_j$에 λŒ€ν•΄ λ‹΅λ³€ 생성 둜그 μš°λ„ $l_j = p_M(aq, c_j)$ 계산</li><li>둜그 μš°λ„ μˆœμœ„ 기반으둜 더 λ‚˜μ€ 지식 μ†ŒμŠ€(λ‚΄λΆ€ $S_i$ λ˜λŠ” μ™ΈλΆ€ $S_e$) κ²°μ •</li></ul>
β‘‘ 1-Stage BC (Behavior Cloning)지식 μ†ŒμŠ€ 선택, 지식 μ–Έμ–΄ν™”, λ‹΅λ³€ 생성을 λ™μ‹œμ— ν•™μŠ΅<ul><li>μ„ ν˜Έ μ†ŒμŠ€ 선택 손싀($L_{src}$), (λ‚΄λΆ€ 지식 선택 μ‹œ) μ–Έμ–΄ν™” 손싀($L_{verb}$), λ‹΅λ³€ 생성 손싀($L_{ans}$)을 ν•©μ‚°ν•˜μ—¬ ν•™μŠ΅</li><li>μ΅œμ’… 손싀: $L_{stage1} = L_{src} + L_{verb} + L_{ans}$</li></ul>Β 
β‘’ 2-Stage DPO (Direct Preference Optimization)λ‚΄λΆ€ 지식 ν’ˆμ§ˆμ„ 더 높이기 μœ„ν•΄
μ„ ν˜Έ 지식($c_i^+$)κ³Ό λΉ„μ„ ν˜Έ 지식($c_i^-$) μŒμ— λŒ€ν•΄ DPO둜 μΆ”κ°€ νŒŒμΈνŠœλ‹
<ul><li>μ„ ν˜Έ μ†ŒμŠ€ 선택 손싀($L_{src}$)κ³Ό λ‹΅λ³€ 생성 손싀($L_{ans}$)은 μœ μ§€</li><li>λ‚΄λΆ€ 지식 μ–Έμ–΄ν™” 손싀을 DPO 손싀($L^{DPO}{verb}$)둜 λŒ€μ²΄ν•˜μ—¬ ν•™μŠ΅</li><li>μ΅œμ’… 손싀: $L{stage2} = L_{src} + L^{DPO}{verb} + L{ans}$</li></ul>Β 

SR-RAG ν•™μŠ΅ 손싀 ν•¨μˆ˜ μš”μ•½

| μˆ˜μ‹ (Formula) | 의미 (Meaning) | 직관적 ν•΄μ„€ (Intuitive Explanation) | | β€” | β€” | β€” | | $L_{src} = -\\log p_M(\\langle s \\rangle \| q)$ | 지식 μ†ŒμŠ€ 선택 손싀 | ν•™μŠ΅ λ°μ΄ν„°μ—μ„œ κ²°μ •λœ μ„ ν˜Έ 지식 μ†ŒμŠ€ 토큰 <s>λ₯Ό μ˜ˆμΈ‘ν•˜λ„λ‘ ν•™μŠ΅ν•œλ‹€. | | $L_{verb}$ | 지식 μ–Έμ–΄ν™” 손싀 | λ‚΄λΆ€ μ†ŒμŠ€($S_i$)κ°€ μ„ νƒλœ κ²½μš°μ—λ§Œ, κ°€μž₯ 도움이 λ˜μ—ˆλ˜ 졜적 μ–Έμ–΄ν™” λ¬Έλ§₯ $c_i^+$ μ‹œν€€μŠ€λ₯Ό μƒμ„±ν•˜λ„λ‘ ν•™μŠ΅ν•œλ‹€. (μ™ΈλΆ€ μ†ŒμŠ€ $S_e$κ°€ μ„ νƒλœ κ²½μš°λŠ” 손싀값 0) | | $L_{ans}$ | λ‹΅λ³€ 생성 손싀 | μ„ νƒλœ 지식 μ†ŒμŠ€λ‘œλΆ€ν„° 얻은 졜적 λ¬Έλ§₯(λ‚΄λΆ€λ©΄ $c_i^+$, μ™ΈλΆ€λ©΄ $c_e^+$)을 쑰건으둜 μ •λ‹΅ $a$λ₯Ό μƒμ„±ν•˜λ„λ‘ ν•™μŠ΅ν•œλ‹€. | | $L_{stage1} = L_{src} + L_{verb} + L_{ans}$ | 1단계 총 손싀 (BC) | μœ„μ˜ μ„Έ κ°€μ§€ 손싀을 λ‹¨μˆœ ν•©μ‚°ν•˜μ—¬, 기본적인 지식 μ†ŒμŠ€ 선택, μ–Έμ–΄ν™”, λ‹΅λ³€ 생성 행동을 λͺ¨λ°©(Behavior Cloning)ν•˜λ„λ‘ ν•™μŠ΅ν•œλ‹€. | | $L_{stage2} = L_{src} + L^{DPO}_{verb} + L_{ans}$ | 2단계 총 손싀 (DPO) | μ†ŒμŠ€ 선택($L_{src}$) 및 λ‹΅λ³€ 생성($L_{ans}$) 손싀은 μœ μ§€ν•˜λ©΄μ„œ, μ–Έμ–΄ν™” 손싀을 DPO 기반($L^{DPO}_{verb}$)으둜 λ³€κ²½ν•˜μ—¬ λ‚΄λΆ€ 지식 μ–Έμ–΄ν™” ν’ˆμ§ˆμ„ λ”μš± μ •κ΅ν•˜κ²Œ λ§Œλ“ λ‹€. | | $L^{DPO}_{verb}$ | DPO μ–Έμ–΄ν™” 손싀 | λ‚΄λΆ€ μ†ŒμŠ€($S_i$)κ°€ μ„ νƒλœ κ²½μš°μ—λ§Œ μž‘λ™ν•œλ‹€.
$\sigma$λŠ” μ‹œκ·Έλͺ¨μ΄λ“œ ν•¨μˆ˜, $\beta$λŠ” μŠ€μΌ€μΌλ§ νŒŒλΌλ―Έν„°(μ˜¨λ„)이닀.
μ„ ν˜Έ λ¬Έλ§₯ $c_i^+$κ°€ λΉ„μ„ ν˜Έ λ¬Έλ§₯ $c_i^-$보닀 더 높은 ν™•λ₯ μ„ 갖도둝, 즉 λͺ¨λΈμ΄ 더 쒋은 λ‚΄λΆ€ 지식을 μƒμ„±ν•˜λ„λ‘ μ§μ ‘μ μœΌλ‘œ μ„ ν˜Έλ„λ₯Ό ν•™μŠ΅ν•œλ‹€. |

  • μ™„μ „ μžλ™ 라벨링: μ™ΈλΆ€ λͺ¨λΈΒ·νœ΄λ¨Ό μˆ˜μž‘μ—… λΆˆν•„μš” β†’ ν™•μž₯μ„± 우수
  • λ‹€λͺ©μ  톡합 ν•™μŠ΅: μ„Έ 손싀을 λ¬Άμ–΄ ν•œ μ°¨λ‘€ μ’Œβ†’μš° 생성 패슀둜 μΆ”λ‘  κ°€λŠ₯
  • DPO 단계: κ³ λΉ„μš©(β€œSystemΒ 2”) 지식을 μ €λΉ„μš©(β€œSystemΒ 1”) μΆ”λ‘ μœΌλ‘œ μ••μΆ•ν•΄ 효율 ↑

동적 k-NN 기반 μ†ŒμŠ€ 선택 (μΆ”λ‘  μ‹œ):

  • μΆ”λ‘  μ‹œ LLM의 λ‹¨μˆœ ν™•λ₯  μ˜ˆμΈ‘μ—λ§Œ μ˜μ‘΄ν•˜μ§€ μ•Šκ³ , k-μ΅œκ·Όμ ‘ 이웃(kNN) 검색을 ν•¨κ»˜ ν™œμš©ν•˜μ—¬ μ†ŒμŠ€ μ„ νƒμ˜ μ •ν™•μ„±κ³Ό 견고성을 ν–₯μƒν•œλ‹€.
  • μž‘λ™ 방식: νŒŒμΈνŠœλ‹λœ LLM의 νŠΉμ • λ ˆμ΄μ–΄ μˆ¨κ²¨μ§„ μƒνƒœ(hidden state)λ₯Ό μ‚¬μš©ν•˜μ—¬, 미리 κ΅¬μΆ•λœ β€˜μ •μ±… 데이터 μ €μž₯μ†Œ(policy datastore)β€™μ—μ„œ ν˜„μž¬ 질문과 μœ μ‚¬ν•œ κ³Όκ±° μ§ˆλ¬Έλ“€μ˜ 성곡적인 μ†ŒμŠ€ 선택 사둀(μ–΄λ–€ μ†ŒμŠ€λ₯Ό 썼을 λ•Œ κ²°κ³Όκ°€ μ’‹μ•˜λŠ”μ§€)λ₯Ό k개 μ°ΎλŠ”λ‹€.
  • 이점: 이 kNN 정보λ₯Ό LLM의 자체 μ†ŒμŠ€ 예츑 ν™•λ₯ κ³Ό κ²°ν•©ν•˜μ—¬ μ΅œμ’… 결정을 λ‚΄λ¦°λ‹€. μ΄λŠ” νŒŒμΈνŠœλ‹μœΌλ‘œ μΈν•œ LLM의 λŠ₯λ ₯ λ³€ν™”λ‚˜ νŠΉμ • 데이터셋(도메인) 변화에 더 잘 μ μ‘ν•˜λ„λ‘ λ•λŠ”λ‹€.

μ‹€ν—˜ ꡬ성

μ‚¬μš©ν•œ LLMλ“€

  • LLaMA-2 7B Chat
  • Phi-3.5-Mini-Instruct
  • Qwen2.5-7B-Instruct

평가 데이터셋

  • PopQA: λ‘±ν…ŒμΌ μ—”ν‹°ν‹° QA
  • TriviaQA: 일반 μ˜€ν”ˆλ„λ©”μΈ QA
  • PubHealth: 곡쀑보건 팩트체크
  • ARC Challenge: μ΄ˆλ“± κ³Όν•™ 문제 (λ‹€μ§€μ„ λ‹€ν˜•)

μ£Όμš” μ‹€ν—˜ κ²°κ³Ό

| ν•­λͺ© | μ„±λŠ₯ ν–₯상 | 검색 μ‚¬μš©λŸ‰ κ°μ†Œ | | β€” | β€” | β€” | | SR-RAG vs 항상 검색 | +5.1% (정확도) | -29% (retrieval 횟수) | | SR-RAG vs 선택적 검색 | +8.5%~4.7% | -26%~40% |

  • SR-RAG은 λΆˆν•„μš”ν•œ 검색을 μ€„μ΄λ©΄μ„œλ„ μ„±λŠ₯을 ν–₯상
  • 특히 λ‚΄λΆ€ 지식이 μΆ©λΆ„ν•œ 경우, 검색 없이 더 λΉ λ₯΄κ³  μ •ν™•ν•œ 응닡 κ°€λŠ₯

Ablation Study (κ΅¬μ„±μš”μ†Œ 제거 μ‹€ν—˜)

제거 ꡬ성결과
kNN μ œκ±°μ •ν™•λ„ κ°μ†Œ 및 κ²€μƒ‰λŸ‰ 증가
지식 μ–Έμ–΄ν™” λ―Έμ‚¬μš©λͺ¨λΈμ΄ 검색에 κ³Όλ„ν•˜κ²Œ μ˜μ‘΄ν•˜κ²Œ 됨
DPO λ―Έμ‚¬μš©verbalization ν’ˆμ§ˆ μ €ν•˜

=> SR-RAG의 3κ°€μ§€ 핡심 μš”μ†Œ(지식 μ–Έμ–΄ν™”, DPO, kNN 기반 선택)κ°€ λͺ¨λ‘ μ„±λŠ₯에 ν•„μˆ˜μ μ΄λ‹€.

This post is licensed under CC BY 4.0 by the author.

Β© chanho. Some rights reserved.