← 返回首頁
LESSON 023AI 開發10 分鐘

RAG 是什麼?像讓 AI 參加開卷考:先去找相關資料,再拿著資料回答

RAG 是 Retrieval-Augmented Generation。第 23 篇用開卷考理解檢索、文件切塊、Embedding、Vector Search、Context,以及為什麼 RAG 能讓 AI 回答自己的資料。

今天用這個比喻不是要求考生只靠記憶作答,而是先翻到最相關的幾頁,再根據那些資料回答問題

假設公司昨天才發布一份新規定:

「從 9 月開始,海外出差每日餐費上限調整。」

你今天就問 AI:

「去東京出差一天可以報多少餐費?」

如果這個模型幾個月前就訓練完成,它不可能憑空知道昨天才出現的公司文件。

但你也不一定需要為了改一條規定,就重新訓練整個模型。

更直覺的方法是:

先把相關文件找出來,再把文件內容一起交給模型回答。

這就是理解**檢索增強生成(Retrieval-Augmented Generation, RAG)**最好的入口。

把 RAG 想成一場開卷考

閉卷考時,學生只能靠腦中記得的東西回答。

開卷考則不一樣。

老師問:

「公司海外差旅餐費上限是多少?」

學生先翻公司手冊,找到差旅章節,再根據那幾頁作答。

RAG 也很像這樣。

它把流程拆成兩大部分:

檢索(Retrieval):先找出與問題最相關的資料。

生成(Generation):再讓生成模型根據問題和找到的資料產生答案。

RAG 中間的 A 是 Augmented,意思是「增強」。也就是用外部檢索到的資訊,增強模型這一次回答時能看到的上下文。

先複習 Embedding 和 Vector Database

前一篇 Lesson 021:Embedding 是什麼? 講過:Embedding 會把內容轉成向量,讓系統可以比較哪些內容在語意上比較接近。

接著 Lesson 022:Vector Database 是什麼? 講過:向量資料庫可以保存、索引並搜尋大量向量,快速找出語意上接近的資料。

這兩個概念常常會出現在 RAG 裡。

但要注意:RAG 不等於 Vector Database。

向量資料庫只是其中一種常見檢索方法。你也可能用關鍵字搜尋、SQL、搜尋引擎、知識圖譜,甚至把多種方法混在一起。

一套最基本的 RAG 流程長什麼樣?

假設你有一本 200 頁的員工手冊。

第一步:把文件拆小

通常不會每次都把整本 200 頁塞給模型。

系統會把文件拆成較小的片段,這個動作常叫做文本切塊(Chunking)。

每一小段可以叫一個 Chunk。

例如:

Chunk A:請假規定
Chunk B:差旅補助
Chunk C:資安規範
Chunk D:設備申請

為什麼要拆?

因為使用者問差旅時,真正需要的可能只是其中兩三段,而不是整本手冊。

第二步:把每個 Chunk 做成 Embedding

每一段文字被轉成向量,然後和原文、來源頁碼、文件名稱等資料一起保存。

例如:

文字:海外出差每日餐費上限……
Embedding:[......]
文件:Travel-Policy-2026.pdf
頁碼:18

這一步等於先幫圖書館裡的每一小段資料標上「意思座標」。

第三步:使用者問題也做成 Embedding

使用者問:

「東京出差餐費一天最多報多少?」

系統把這句話也轉成向量。

然後拿它去做 Vector Search,找到最接近的幾個 Chunk。

例如:

  1. 海外差旅餐費規則
  2. 日本地區差旅補助
  3. 報帳憑證要求

第四步:把找到的資料塞進 Context

這裡會用到前面學過的 上下文視窗(Context Window)。一句話 recap:Context Window 就是模型這一次回答時能看到的資訊範圍。

系統會把:

一起送給模型。

這時模型不是靠「記得公司政策」回答,而是因為這一次它真的看到了相關文件片段。

第五步:模型生成答案

最後模型可能回答:

「依據 2026 Travel Policy 第 18 頁,日本地區每日餐費上限為……」

如果系統設計得好,還可以把文件名稱或引用一起顯示,讓使用者知道答案從哪裡來。

RAG 最大的價值:資料可以更新,不必重新訓練模型

假設明天公司又改規則。

使用 RAG 時,你可以更新文件和索引。

下一次搜尋,就有機會拿到新的資料。

這和重新訓練模型是兩件完全不同的事。

RAG 比較像:

換掉考場上的參考資料。

而不是:

把學生送回學校重新受訓。

這個差別會在下一篇 Fine-tuning 再講得更清楚。

RAG 可以降低幻覺,但不能保證不出錯

前面 Lesson 006:AI 幻覺是什麼? 講過:模型可能產生看起來合理、實際上錯誤的內容。

RAG 的確能讓模型多看到可靠資料,因此常能改善「憑空回答」的問題。

但 RAG 本身也可能錯。

例如:

所以 RAG 的品質至少同時取決於:

資料品質 + 檢索品質 + Prompt / 規則 + 模型能力。

Chunk 越小越好嗎?

不一定。

如果切得太大,裡面可能混進很多不相關內容。

如果切得太小,又可能失去前後文。

例如一句:

「以上限制不適用於經主管核准的緊急出差。」

如果它被單獨切成一塊,你可能根本不知道「以上限制」指什麼。

所以 Chunking 本身就是 RAG 實作裡很重要的一部分。

Top 5 就一定是最好答案嗎?

也不一定。

Vector Search 常會拿前幾名,例如 Top 5。

但數量太少可能漏掉重要資料,太多又可能把雜訊塞進 Context。

有些系統還會增加重新排序(Reranking):先粗略找一批候選,再用另一個方法重新判斷誰最相關。

你可以把它想成圖書館先找到 30 本可能相關的書,再讓第二位館員挑出真正最值得看的 5 本。

RAG 和 AI Agent 有什麼關係?

Lesson 020:AI Agent 是什麼? 的一句話 recap:Agent 會根據任務決定是否使用外部工具,再把工具結果帶回工作流程。

Retrieval 完全可以是 Agent 的一個工具。

例如 Agent 先判斷:

「這題是公司內部政策,我應該先查知識庫。」

接著執行 RAG Retrieval,再根據結果回答。

所以 Agent 和 RAG 不是競爭關係,反而經常一起出現。

RAG 不等於「把所有文件塞給模型」

如果你每次都把 500 頁 PDF 全部放進 Prompt,那比較像「整箱書搬到考桌上」。

RAG 的重點在於 Retrieval:

先從大量資料裡找出真正相關的少數內容,再交給模型。

這樣通常更省 Context,也更容易控制資料來源。

今天只要記住一句話

RAG 就像讓 AI 參加開卷考:先從外部資料中 Retrieval 找到相關內容,再把這些內容放進 Context,讓模型根據資料 Generation 回答。

下一篇我們來處理最容易混在一起的三件事:Prompt、RAG 和 Fine-tuning,到底什麼時候該用哪一個?

正式資料來源

比喻是理解入口;正式定義與細節請以原始資料為準。

  1. OpenAI — Retrieval ↗
  2. Pinecone — Retrieval-Augmented Generation ↗
← 上一章022Vector Database 是什麼?像一座不只照書名找書,還能照『內容意思』找資料的圖書館
下一章 →024Fine-tuning 是什麼?像真的重新訓練員工:不是每次交代,也不是臨時翻手冊
COMMUNITY

留言

有想法、疑問或想補充的地方,都可以留在這裡。

0 / 1200