> ## Content Index
> Fetch the complete content index at: http://localhost:2368/llms.txt
> Use this file to discover other available public pages before exploring further.

# 檢索增強生成（RAG）
- URL: http://localhost:2368/retrieval-augmented-generation/
- Published: 2026-07-06T05:44:29.000Z
- Updated: 2026-08-23T13:54:25.000Z
- Description: 讓 LLM 在生成前先從外部資料源檢索相關資訊的技術，突破訓練資料限制並減少幻覺；含「要不要上 RAG」的實務決策原則。
- Author: yuchang23
- Tags: #wiki, #wiki-method

> **定義**：檢索增強生成（Retrieval-Augmented Generation, RAG）是一種讓大型語言模型（LLM）在生成回應前，先從外部資料源檢索相關資訊並納入上下文的技術。2020 年首次提出，現已成為現代 AI 系統廣泛採用的方法，用來突破模型訓練資料的時效與領域限制。

RAG 的核心想法是把 LLM 的生成流程與文件查詢（或網路搜尋）結合：與其期待模型「記得」所有知識，不如在回答當下把相關資料找出來餵給它。這讓靜態的預訓練模型能處理最新資訊與領域特定知識，同時因為回應可以附上來源，提高了透明度與可驗證性。

## 運作流程

RAG 分為三個關鍵階段：

- **資料準備**：將參考資料轉換為嵌入向量（embedding，向量空間中的數值表示），存入向量資料庫供檢索。可處理非結構化文字、半結構化資料或知識圖譜等結構化資料。
- **檢索（Retrieval）**：根據使用者查詢，文件檢索器從資料庫中選出最相關的文件，檢索方法取決於所用的索引類型。
- **生成（Generation）**：透過提示工程將檢索到的資訊注入 LLM，模型基於查詢與檢索文件生成輸出。部分系統會再加入重新排序（re-ranking）、上下文選擇與微調。

## 優點與動機

- 讓 LLM 使用領域特定或更新的資訊，突破訓練資料的限制。
- 減少 AI 幻覺（hallucination）——例如模型描述不存在的政策、推薦虛構的法律案例。
- 降低重新訓練的需求，節省計算與財務成本。
- 回應可附上來源，提高透明度與可驗證性。

## 限制與挑戰

- **幻覺未完全解決**：LLM 仍可能圍繞檢索到的來源資料產生幻覺，例如從章節標題斷章取義而不理解上下文。
- **認知限制**：模型難以辨識自身資訊不足的情況，在該表達不確定時仍可能硬生成答案。
- **RAG 投毒（RAG poisoning）**：系統可能檢索到事實正確但具誤導性的來源；面對衝突資訊時難以判斷準確性，也可能混合過時與更新的資訊產生誤導性回應。
- **流程限制**：向量搜尋可能遺漏回答問題所需的關鍵事實；重新訓練的需求減少但未完全消除。

## 要不要上 RAG：實務決策（檢索 vs 全塞）

幫內部系統加 AI 問答助理時的典型決策：要做 RAG（先建檢索系統，AI 回答前先去搜相關文件），還是「全塞」（把所有文件整包放進 AI 的上下文）？

實際的判斷依據：**先量文件總量，再選架構**。若文件總量遠低於模型上下文上限（例如 20 萬 token，約十幾萬中文字），全塞＋快取（同樣的文件內容重複使用有折扣）就夠，回答品質還更穩——RAG 反而引入「搜不到對的段落」這個新故障模式。等文件量真的超過上限再上 RAG。

- **決策心得**：不要因為某技術流行就用它。這個原則後來也用在個人 wiki 上。
- **附帶的驗收要求**：AI 助理的每個回答必須附出處（哪份文件哪一段），不然沒辦法驗證它是不是在瞎掰——不管用 RAG 還是全塞都適用。

## 關鍵改進技術

- **編碼器改進**：稀疏向量（編碼詞彙身分）與密集向量（編碼語意）的取捨與混合；以點積和近似最近鄰搜尋（ANN）最佳化相似度計算；晚期互動（late interaction）在檢索後做更精確的詞彙比較。
- **檢索中心方法**：以逆克漏字任務（ICT）預訓練檢索器；監督式檢索最佳化讓檢索機率對齊生成模型的機率分佈；訓練中以重新排序優先考慮最相關文件。
- **重排序模型（Rerank）**：在檢索後、生成前加入專用 rerank 模型（如 Cohere Rerank、bge-reranker），對初步檢索結果重新排序，能明顯提升 top-k 品質，是實務上 CP 值最高的 RAG 改進手段之一。
- **語言模型改進**：Retro 模型重新設計語言模型以納入檢索器，使小 25 倍的網路達到相當的困惑度；Retro++ 為更可重現的版本，包含上下文內 RAG。
- **分塊策略（Chunking）**：固定長度重疊分塊（快速簡便，重疊維持語意上下文）、基於語法的分塊（以句子切分，如 spaCy、NLTK）、依文件格式分塊（尊重程式函式、HTML 表格、PDF 等內建結構，可用 LangChain、Unstructured 等函式庫）。
- **混合搜尋**：結合傳統文字搜尋與向量資料庫結果，合併後再輸入語言模型，彌補單一方法的不足。

## 變體：GraphRAG

GraphRAG 是微軟提出的 RAG 變體：先用 LLM 把文件庫建成知識圖譜，查詢時走圖譜找關聯，而不是純向量相似度。對「跨文件的全局問題」（例如：這批文件的共同主題是什麼）效果比傳統 RAG 好很多，但知識圖譜的索引建置成本明顯較高。

## 主要應用場景

- **企業應用**：讓聊天機器人存取公司內部資料。
- **權威來源回應**：基於授權資訊生成答案。
- **醫療領域**：讓 LLM 輸出建立在外部醫學知識來源之上（評估、倫理與臨床可靠性仍有挑戰）。