MODULE m1 · 8.0 HOURS
理解 RAG 架構
已完成 0%
LEARNING OBJECTIVES
本模組目標
- 理解 RAG (Retrieval-Augmented Generation) 架構的核心組成部分。
- 識別大型語言模型 (LLM) 的知識限制以及基於檢索增強的必要性。
- 能夠解釋檢索-生成管道的結構流程。
RAG (Retrieval-Augmented Generation) 架構概述
最新自然語言處理 (NLP) 和深度學習模型透過學習海量文本數據展現卓越性能,但對於模型訓練時未包含的最新資訊或特定領域的非公開數據,則會出現幻覺 (hallucination) 或不了解資訊的限制 [S1]。
透過檢索克服 LLM 的限制
RAG 是一種方法,它不是讓模型將所有知識記憶在參數 (parameter) 內部,而是在「適當的時機 (just-in-time)」檢索與問題相關的外部可信文件,並將其作為生成階段的輸入 [S2]。
核心組成部分
- 檢索器 (Retriever):接收使用者的查詢 (query),並從向量資料庫等中識別出相關性高的文件片段 (chunk)。
- 增強 (Augmentation):將檢索到的文件與原始問題組合,建構要傳遞給 LLM 的提示 (prompt)。
- 生成器 (Generator):基於增強的資訊生成事實基礎的響應。
這種結構有助於保持模型的知識更新,並使生成答案的依據可追溯,從而確保可靠性。
WORKED EXAMPLES
講解範例
- 案例 1: 傳統 LLM 方式 - 當詢問「告訴我今天的新聞」時,模型可能無法識別訓練數據之後的事件,從而有產生錯誤資訊的風險。
- 案例 2: RAG 方式 - 當詢問「告訴我今天的新聞」時,1) 檢索器 (Retriever) 透過外部搜尋引擎或即時新聞 API 收集相關報導,2) 並將其作為上下文 (context) 包含在內傳遞給 LLM,從而生成準確的最新資訊回應。
LAB PROTOCOL
RAG 架構流程視覺化與分析
- 1
打開 Jupyter Notebook 並繪製 RAG 基本管道的 3 階段(輸入、檢索、生成)結構圖。
- 2
從開放授權文件語料庫中提取 5 個短文本,建立資料集樣本。
- 3
編寫一個簡單的關鍵字匹配檢索器 (Retriever) 函數,使其返回符合問題的文件。
- 4
編寫程式碼實現增強階段,將檢索到的文件注入提示模板。
安全檢查
- 絕不將實際個人資訊或機密文件用作語料庫數據。
- 使用API時,請檢查呼叫次數限制(Rate Limit),並在測試程式碼中設定種子(seed)值以確保再現性。
實驗繳交成果
- RAG 架構圖(包含在 Notebook 單元格內)
- 簡易關鍵字搜尋器實作程式碼
- 文件注入型提示生成結果
ASSIGNMENT
RAG 資訊檢索管道分析報告
繳交成果
評分標準
- RAG 的 3個階段(檢索、增強、生成)是否被準確區分並說明?
- 在檢索階段,關於檢索到不相關文件的可能性分析是否合理?
- 是否遵循非公開數據安全指南進行實作?
KNOWLEDGE CHECK
理解檢查
FIELD CHECK
完成標準
- 能夠說明 RAG 架構的組成要素。
- 確認實作的 RAG 管道程式碼正常運作,能夠檢索和增強相關文件。
- 在分析報告中說明 RAG 管道的局限性與改進方向。
MODULE SOURCES
本模組參考資料
- Stanford CS 224N | Natural Language Processing with Deep Learningweb.stanford.edu · university
- Natural Language Processing with Deep Learning CS224N/Ling284web.stanford.edu · university