Skip to content

台大 ADL 2025 第 8 講:RAG——從檢索、重排序到 Search-R1,以及 HW3

2026年9月30日1 分鐘
TL;DRLLM 記不住長尾知識、知識會過時,也碰不到私有文件。ADL Fall 2025 的 RAG 講義先用「問 LLM 陳縕儂是誰」的幻覺例子開場,再把 RAG 拆成索引、檢索、生成三段:sparse(TF-IDF、BM25)與 dense(DPR、Contriever)檢索、dense retriever 怎麼訓練、pre-/post-retrieval 的進階技巧與 pointwise/pairwise 重排序,最後用「檢索什麼、怎麼用、何時檢索」三個問題整理 RAG、RETRO、FLARE、Search-R1 等演進。HW3 的公開資訊只有題目「Retriever & Reranker Training for RAG」。

🌏 English version

這是台大陳縕儂 深度學習之應用 2025 Fall 導讀的第 11 篇。課程是 ADL Fall 2025(114-1,2025/09/01–12/15)。9/29 教師節、10/06 中秋節兩週停課,RAG 排在停課後的 10/13;當週助教課是 LLM Basics & MoE,作業欄是 HW 3。

本文依據:RAG 講義(60 頁),以及六支影片:8.1 大家都在用的 RAG 是甚麼呢?(27:32)、8.2 RAG Framework 基本設計流程(39:52)、8.3 Advanced RAG 如何改進 RAG 效果呢?(10:26)、8.4 RAG Roadmap RAG 發展與各種不同的嘗試(28:17)、8.5 RAG Pros & Cons 多種RAG類型與優劣比較(17:23)、8.6 RAG Q&A(24:19,課堂問答,沒有對應講義)。HW3 說明影片是 ADL 2025 Fall Homework 3(20:34,2025-10-12 上傳)。全部在 2026-09-30 打開核對,本文頁碼都指講義 PDF。

系列位置:上一篇 PEFT:Adapter、LoRA、Prompt Tuning 與 HW2|下一篇 NLG:解碼、控制與評估|系列總覽

為什麼要先查再答

四個例子

講義開場的三個例子都用中文問 LLM(第 2–5 頁):

  • 問「你知道蔡英文嗎?」,模型答得很完整。有名的人,訓練資料裡資訊夠多。
  • 問「你知道台大的陳縕儂嗎?」,模型說她是電機系教授、專長是半導體,幾乎全錯。第 3 頁的結論:LLM 記不住長尾資訊的細節。
  • 加上搜尋結果再問一次,回答就變成資工系、語言理解與對話系統等正確資訊。第 4 頁的結論:knowledge grounding 有助於減少幻覺。
  • 問「台灣現任總統是誰?」,模型還是答蔡英文。第 5 頁:LLM 的知識容易過時,也很難更新;另一種解法是 knowledge editing。

第 9 頁再補一層:生成會跟著預訓練資料的分布走。例子是「我好朋友是護士」之後,模型會接「她對待病人很有耐心」。

Parametric memory 的四個限制

第 10 頁把問題整理成清單。LLM 把大量資訊存在參數裡,但:

  1. 模型記不住所有東西。
  2. 世界會變。
  3. 私有文件無法透過網路取得。
  4. 黑盒模型的答案很難驗證對不對。

第 11 頁把 RAG 要處理的知識歸成三類:長尾知識、動態變化的知識、不在預訓練資料裡的知識。

前身:WebGPT

第 6–8 頁先介紹 WebGPT(Nakano 等,2021):用人類示範資料微調 GPT-3,讓它產生帶參考來源的回答。模型把搜尋當成 token 接龍,先生成 [SEARCH] ... [END] 當查詢,再生成 [CLICK] 1 [END] 點開文件,學的是人類的操作行為。

RAG 框架:索引、檢索、生成

第 12 頁的框架圖有四個元件:文件經過 indexing 存起來,查詢進來時先 retrieval,把找到的內容和查詢一起放進 prompt,再交給 LLM 輸出。圖上把 LLM 標成開源或閉源都可以。

索引與檢索

第 13 頁:文件先切成 chunk/passage,再編碼,查詢進來時算相關性。檢索分兩類:

類型做法講義列的方法
Sparse retrieval(第 14 頁)詞彙比對n-gram(TF-IDF)、BM25
Dense retrieval(第 15 頁)神經編碼器轉成向量,算 cosine 相似度現成 embedding(預訓練 BERT、GPT);對比學習學出的 embedding:DPR、Contriever

Dense retriever 怎麼訓練

第 16 頁用「美國哪一州面積最大?」當例子:查詢編碼器和文件編碼器各自產生向量,以內積 s(q, d) 當分數,訓練目標是讓正確文章 d⁺ 在所有候選裡的 softmax 機率最大。

第 16 頁的對比損失
L = − log(  exp(s(q, d⁺))  /  Σᵢ exp(s(q, dᵢ))  )

dᵢ 包含一篇正確文章 d⁺ 與多篇負例 d⁻。講義在這頁下方註明:成對的訓練資料很難蒐集。

成對資料難取得,於是第 17–19 頁換個方向:用語言模型估計 P(q | d),也就是「看了這篇文件後生成這個查詢的機率」,拿來當相關性(query likelihood,講義引 Sachan 等 2023)。第 18–19 頁是課程團隊自己的延伸(Huang & Chen, 2024):用 query likelihood 訓練無監督的多語 dense retriever,在 XOR-TyDi QA 上的結論是用 query likelihood 訓練勝過用成對資料訓練。

生成

第 21 頁是 RAG 的 prompt 範例(圖片)。第 23 頁列出 RAG 的問題:

  • 檢索端:切出來的 chunk 不對齊或不相關;多個來源的資訊重複。
  • 生成端:產生檢索內容不支持的幻覺;輸出不相關、有毒或帶偏見;太依賴檢索內容、只是照抄。

Advanced RAG:檢索前後各加一段

第 24–25 頁在框架上加了 pre-retrieval 與 post-retrieval 兩段:

  • Pre-retrieval:決定要不要檢索、改寫查詢、擴充 chunk 讓 LLM 看更多上下文、sparse 與 dense 並行的混合檢索。
  • Post-retrieval:重排序(把最相關的內容往前移)、壓縮上下文(挑出必要資訊、縮短長度)。

重排序

第 26 頁比較兩種用 LLM 重排序的 prompt:

  • Pointwise:請模型給查詢和單一段落 1–5 分的相關性分數。
  • Pairwise:給兩個段落,問哪一個比較相關(A 或 B)。講義的結論是 pairwise 比較準。

第 27–29 頁又是課程團隊的研究(Huang & Chen, 2024):InstUPR 先做 pointwise、再做 pairwise 的 zero-shot 指令式重排序,第 28 頁的結論是它和監督式 reranker 表現相當。PairDistill 則用前一輪的重排序結果當損失,反覆訓練 retriever。第 30 頁的 ITER-RETGEN(Shao 等,2023)把前一輪的輸出接在查詢後面,當作下一輪檢索的輸入。

RAG Roadmap:檢索什麼、怎麼用、何時檢索

第 31–48 頁是整講最有結構的一段。講義用三個問題當三欄,逐步把方法填進表格(表格引自 ACL 2023 Retrieval-based LM tutorial 的投影片,再加上 2025 年的方法)。下表只填講義把方法放進去的那一格,沒標的寫「—」:

方法檢索什麼怎麼用何時檢索講義的註解
RAG(Lewis 等,2020)文字 chunk放在輸入層生成開始時一次端到端訓練 retriever 與 generator(第 33 頁)
RETRO(Borgeaud 等,2022)文字 chunk注入中間層—比放在輸入層有效率,但需要訓練(第 35 頁)
Retrieval-in-context(Ram 等、Shi 等,2023)——每 n 個 token檢索越頻繁越有幫助,但推論越慢(第 38 頁)
FLARE(Jiang 等,2023)——自適應先生成,模型信心低時才檢索(第 40 頁)
Search-R1(Jin 等,2025)——自適應用 RL 學何時搜尋,reward 是答案正確(第 42 頁)
AdaSearch(Lin 等,2025)——自適應用 RL 學「知道自己知道什麼」,reward 是答案正確加上決策正確(第 43 頁)
kNN-LM(Khandelwal 等,2020)token輸出層每個 token檢索相似例子、用它們的下一個 token;更細緻、省計算,但佔空間(第 45 頁)
Efficient NN-LM(He 等,2021)token輸出層自適應改善 kNN-LM 每個 token 都要檢索的低效率(第 47 頁)

讀這張表的方法:每往右或往下一格,都是在「效果」與「成本」之間換一個平衡點。RETRO 換來效率但要重訓;每 n 個 token 檢索一次換來效果但變慢;Search-R1 與 AdaSearch 則把「要不要查」交給模型自己學。

檢索來源與選型

第 49–50 頁談檢索來源:非結構化文字、半結構化的文字加表格(例如 PDF,問題在資料毀損與表格擷取,轉成純文字再做 RAG 效果不理想)、結構化的知識圖譜。第 50 頁引 GraphRAG 綜述(Peng 等,2024),結論是知識圖譜對推理密集的任務更有幫助。

第 51–54 頁引 Gao 等 2023 的 RAG 綜述,用一個資工系學生被問「NVIDIA 總部和新壽的合約牽涉哪些法律規範?」來比喻三種路線:

路線比喻優點缺點
Prompting直接用自己腦中的知識回答簡單、有效率完全依賴內部知識
RAG翻法律教科書再回答適合動態環境、可解釋性高延遲高、受檢索品質影響
Fine-tuning先修一門相關課再回答能深度客製模型的行為與風格重新訓練成本高

第 54 頁的結論:選 RAG 還是 fine-tuning,取決於資料變動程度、客製需求與可用的計算資源。

第 55–58 頁補上 retrieval-augmented LLM 的四種訓練方式(不訓練、獨立訓練、依序訓練、聯合訓練,引 RA-LLM 綜述)與應用範圍。最後列出 RAG 的六個優點:準確、即時、可解釋、可客製、安全與隱私、成本(不必更新模型)。

HW3:只拿得到題目

課程頁 10/13 那一列的 HW 3 按鈕直接連到 YouTube 上的 ADL 2025 Fall Homework 3。能確認的只有:

  • 題目:影片說明欄寫「Retriever & Reranker Training for RAG」,也就是訓練 RAG 的 retriever 與 reranker。
  • 影片長度 20:34,2025-10-12 上傳。
  • 對照 Course Logistics 第 11 頁,第三份作業的主題是 RAG。

拿不到的:影片沒有字幕,也沒有公開的規格投影片或文字版說明。資料集、語料、基礎模型、baseline、評估指標、繳交格式與截止日期,本文都無法確認,所以一律不寫。作業繳交走 NTU COOL,需要台大帳號。

校外怎麼做:題目正好對上講義第 15–29 頁。可以自己挑一個公開的問答資料集,先用 BM25 當 baseline,再用第 16 頁的對比損失微調一個 dense retriever,最後加一層 pointwise 或 pairwise 的 reranker,比較三個階段的檢索指標。評分方式要自己定,也無法和官方評分對照。

讀完這一講,你應該能

  • 說出 parametric memory 的四個限制,以及 RAG 針對的三類知識。
  • 畫出 RAG 的四個元件,並說出 sparse 與 dense retrieval 的差別。
  • 解釋 pointwise 與 pairwise 重排序的差別,以及講義為什麼認為 pairwise 比較準。
  • 用「檢索什麼、怎麼用、何時檢索」三欄,把 RAG、RETRO、FLARE、Search-R1 放到對的位置。

今晚可以做的一件事:拿你熟悉的一個冷門人物或內部文件,問任何一個 LLM 兩次,一次直接問,一次把相關段落貼進 prompt 再問。第 3、4 頁的差別你會親眼看到,接著試試把貼進去的段落換成不相關的,就能看到第 23 頁說的「太依賴檢索內容、只是照抄」。

延伸閱讀

下一篇:NLG:解碼、控制與評估

參考資料