Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LLM RAG 擷取增強生成介紹 - 3 種 RAG/Self-RAG/CRAG 全解析

SJ Chou
February 06, 2025

LLM RAG 擷取增強生成介紹 - 3 種 RAG/Self-RAG/CRAG 全解析

Outline
1. 典型大語言模型 AI 幻覺問題
2. 擷取增強生成介紹
3. 自我反思擷取增強生成
4. 糾錯檢索增強生成
5. 結論
6. 參考資料

SJ Chou

February 06, 2025
Tweet

More Decks by SJ Chou

Other Decks in Technology

Transcript

  1. Outline • About LLM AI Hallucination Problem 典型大語言模型 AI 幻覺問題

    • Retrieval-Augmented Generation Introduction (RAG) 擷取增強生成介紹 • Self Retrieval-Augmented Generation (Self-RAG) 自我反思擷取增強生成 • Corrective Retrieval-Augmented Generation (CRAG) 糾錯檢索增強生成 • Conclusion 結論 • Reference 參考資料
  2. 什麼是 LLM 幻覺? 傳統的 LLM 透過過去大量的資料學習,在回答問題的時候容易產生「幻覺 Hallucination」也就是我們常說的睜著眼睛說瞎話。這樣情境通常是因為 LLM 學習 時並沒有正確的資料,但是生成回應時基於機率模式,還是會盡可能拼湊出錯誤的答

    案。 在某些情況下,如果我們已經期望 LLM 想要回答的範圍,那我們就可以將資料先準 備好。這種感覺有一點像是把簡答題改為選擇題,但是問題來了,總不能每次都準備 好一堆資料才開始問問題,這樣會造成輸入的 Token 太多太複雜,因此我們必須事先 準備好資料,讓 LLM 可以在這些資料尋找適合的答案。 實際上並不是把這些資料讓 LLM 進行訓練,因此資料不會存在 LLM 參數中,這些 「記憶」又稱為「非參數記憶(Non-Parametric Memory)」。
  3. 如何改善 LLM 面對未知問題的能力? 需要改善 LLM 的回應能力可以透過 Fine-Tuning 或 RAG 等方法,我們分別說明兩種

    方法的差異: • Fine-Tuning 將新的資料基於原本的參數進行訓練,讓模型學習更多的資料,這種方法對於現 今動不動就上百億參數的 LLM 來說,實現上會比較困難,需要有足夠強大的硬 體。 • RAG 利用 LLM 可以理解資料的能力,直接擴充並且可侷限 LLM 回應的範圍,雖然速 度不及 Fine-Tuning,但是快速擴增的能力帶來不少好處。
  4. Model Fine-Tuning vs RAG • Fine-Tuning 又稱為 Domain-Specific Fine-tuning (DSF)

    ◦ 需要較高的運算 ◦ 無法保證最終學習效果 (無法絕對避免幻覺) ◦ 針對經常變動的資料訓練不易 ◦ 大量資料訓練後不影響回應速度 (適合大規模學習) ◦ 可改善語意、風格、詞彙能力 ◦ 可縮小模型改善效率 (SLM) • RAG ◦ 不需要重新計算模型 ◦ 快速適應新資料 / 容易抽換 ◦ 大幅度減少幻覺的範圍 ◦ 大規模資料影響回應效率 (適合專門領域的回應 ) ◦ 僅針對外部給予的資料有最佳的反應能力 ◦ 需依賴大模型的理解與搜尋能力
  5. RAG 解決的什麼問題? • 以往 通用 AI LLM 在回應問題時也使用了通用的回答 (來至於既有的參數記憶) ,但是這個通用的回答在特定專用領域中往往不善其人意

    (又稱 AI 幻覺) • RAG 透過已經設計好的資料提供 LLM 進行檢索與回應,提昇 AI 在特定領域的 可用性,整個過程就像是 Open Book 測驗
  6. RAG (Retrieval-Augmented Generation) 檢索增強生成的由來 2020 年由 Yunfan Gaoa, Yun Xiong,

    Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, and Haofen Wang 共十位作者發表的論文 Retrieval-Augmented Generation for Large Language Models: A Survey 開啟了 LLM 落地應用的大門。
  7. 實現 RAG 的基本要素 • LLM AI 由於問題與答案的過程都需要 LLM 介入,因此選用一個強大的 LLM

    模型是必 要的,可以透過 API 串接 OpenAI ChatGPT 或者自建 Llama 等等開源模型 • Vector Store 用來儲存讓 LLM 快速閱讀的向量資料庫,主要會將需要擴增的資料透過與使用 的 LLM 一樣的 Embedding 傳換成向量,讓 LLM 可以外掛一個有記憶的腦袋來 強化自己的能力 • Procedure 最後需要根據想要解決的問題定義資料流程,這裡除了既有的 Vector Store 也可 以透過即時網路上的資料來組合回應,讓 LLM 可以自動處理新資訊,比如目前 常用的 LangChain
  8. 實現 RAG 檢索增強生成的概念 RAG 就像 OpenBook 考試的概念相同,原始的 LLM 就是會考試的學生,可能書讀的 不多也不精,但是如果考試的時候採用

    OpenBook,聰明的 LLM 考生就可以在書本 中查詢到最適合的解答。實際的過程就是在書本中找到最大內積的資料,這就有很高 的機率是正確的,這在 RAG 中又稱為 MIPS (Maximum Inner Product Search) 最大 內積搜尋。 但現在還有一個問題,如果考試時間很短,但是書本太厚,要如何加速?這時候我們 就需要事先預習並做好索引,這個過程在 RAG 裡面稱為 Document Index。實際上我 們會將資料透過 Document Encoder 轉換成 Embedding 並且儲存在向量資料庫中, 這樣就可以加速 MIPS 實現的效率。
  9. 輸出模型:RAG-Sequence 與 RAG-Token 兩種常用的 RAG 輸出模式: • RAG-Sequence 使用相同的檢索文本,開放領域問答、生成和分類任務中均表現出色 •

    RAG-Token 抽取不同的檢索文件並相應地邊際化,在生成特定內容時表現更為靈活,能夠動 態選取最相關的文檔來生成準確的答案
  10. Self-RAG (Self-reflection) • 讓 LLM 透過反思的方法來強化問題與回答的 內容 • 實務上可以先透過 RAG

    尋找多個可能的答案 ,答案可能來自於多分文件或者網路查詢 • 針對每一個答案再次透過 LLM 進行評估,透 過相關性與正確性篩選出最適合的答案 • 需要把多個回應透過 LLM 進行推理,所以速 度通常比較慢一些
  11. Corrective Retrieval-Augmented Generation (CRAG) • 主要方法 ◦ Retrieval Evaluator (檢索評估器)

    ◦ Knowledge Refinement (知識精練) • CRAG 理論上優於 Self-RAG • 更適合對答案準確性要求較高,但對信息 檢索速度不要求的場景
  12. CRAG 與 Self-RAG 比較 • 工作流程 Self-RAG 可以直接使用大型語言模型生成答案 ,無需進行信息檢索。而 CRAG

    則需要先檢索相 關信息,然後進行評估和篩選,最後才生成答 案。 • 模型結構 self-RAG 的模型結構比 CRAG 更複雜,需要進 行更複雜的訓練過程,並在生成答案時進行多 標籤生成和評估。這導致 self-RAG 的推理成本 更高,效率更低。而 CRAG 的模型結構較為輕量 級,推理速度更快。 • 性能表現 CRAG 在大多數情況下都優於 self-RAG,能夠 生成更準確、更相關的答案。
  13. RAG / Self-RAG / CRAG 的差異 一樣是 Open Book 的情況下

    • RAG 對於每一道題目,都仔細查閱參考書,找到相關章節,理解並總結內容,然後將答案寫 在試卷上。 • Self-RAG 快速回答熟悉的題目。對於不熟悉的題目,可以參考參考書,快速找到相關章節,並在頭 腦中進行整理和歸納,然後將答案寫在試卷上。 • CRAG 翻書找資料,先整理多個可能的答案 (可能有對有錯),針對這些答案進行確認與評估, 最後選擇出最適合的答案進行作答。 (更高的反思能力)
  14. 結論 • 根據問題則適合的 RAG 組合最為重要,每個場景的需求不同,沒有一定的正確 答案。 • 在實際的測試上 LLM 模型原本的能力也是非常重要,適合且強大的

    LLM 才能 在擴增的資料中展現最佳的理解與統整能力。 • RAG 針對限制範圍的應用已經相當成熟,不需要對 LLM 進行額外的處理就可 以透過資料流程達到不錯的效果。
  15. Reference • 深入淺出RAG經典論文 • 利用 Langchain 實作系列 RAG 進階流程:Query Analysis

    & Self-reflection • Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity • Retrieval-Augmented Generation for Large Language Models: A Survey • 利用 LangChain 實作多模態模型的 RAG:除了讀文章也能看圖答題 • CRAG: 革命性AI技術如何讓機器回答更精準? • SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION • Building adaptive RAG from scratch with Command-R