[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μ λ΄λΆ μ§μ νμ©μ κ·Ήλννλ μλ‘μ΄ νλ μμν¬μ΄λ©° ν΅μ¬ μμ΄λμ΄λ λ€μκ³Ό κ°λ€.
μ¬μ©μ μ§μκ° μ£Όμ΄μ§λ©΄, μμ€ν μ νΉμ ν ν° μμΈ‘κ³Ό μ΅κ·Όμ μ΄μ κ²μμ κ²°ν©νμ¬ κ°μ₯ μ μ ν μ§μ μμ€λ₯Ό λ¨Όμ μ ννλ€. κ·Έλ° λ€μ, μ§μμ μΈλΆ μμ€λ‘λΆν° κ²μλκ±°λ LLMμ΄ μ체μ μΌλ‘ μΈμ΄ννμ¬ μμ±λλ€. μ΄ λͺ¨λ κ³Όμ μ νλμ μΈμͺ½λΆν° μ€λ₯Έμͺ½μΌλ‘ μ§νλλ μμ± ν¨μ€λ‘ κ°μνλμ΄ μνλλ€.
μ§μ μμ€ μ νκ³Ό λ΄λΆ μ§μ μΈμ΄νμ ν΅ν©
- 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(a | q, 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 κΈ°λ° μ ν)κ° λͺ¨λ μ±λ₯μ νμμ μ΄λ€.