第 6 章 · RAG:讓 AI 引用「你的、最新的」知識
第 1 章講過模型的兩大痛:會幻覺、知識停在訓練截止日。它不知道你公司的內部文件,也不知道昨天發生的事。**RAG(Retrieval-Augmented Generation,檢索增強生成)**就是為了治這兩個病而生——而且它是目前企業導入 AI 最主流的做法。
💡 一句話:RAG = 先去「查」相關資料,再把資料塞進 context、讓模型「根據資料」回答。 把「開卷考試」的概念用在 AI 上。
為什麼需要 RAG?
想像你問一個很聰明但「只讀到去年、而且沒看過你公司文件」的顧問問題。兩種做法:
- 不用 RAG:直接問,他只能憑記憶答 → 可能過時、可能唬爛(幻覺)。
- 用 RAG:先從你的文件庫撈出最相關的幾頁塞給他,再叫他「只根據這幾頁回答」 → 答案有根據、能附出處、資料是最新的。
RAG 帶來三個關鍵好處:接地(有根據,減少幻覺)、時效(隨時更新知識庫即可)、可引用(能標出處,讓人查證)。
RAG 的完整流程
RAG 分兩個階段:事前建索引(把你的資料處理好、存起來)與當下查詢回答。
flowchart TB
subgraph 事前:建立知識庫
D[你的文件] --> C[切塊 Chunk]
C --> E[轉成向量 Embedding]
E --> V[(向量資料庫)]
end
subgraph 當下:回答問題
Q[使用者問題] --> QE[問題也轉成向量]
QE --> R[到向量庫找最相似的幾塊]
V --> R
R --> RR[重排序 Rerank<br/>挑出最相關的]
RR --> G[把資料+問題塞進 context<br/>讓模型作答]
G --> A[有根據的答案 + 出處]
end
一步步看:
- 切塊(Chunk):把長文件切成小段(例如每 300~500 字一塊)。因為你不會把整本書塞給模型,而是只給「相關的幾塊」。
- 轉向量(Embedding):把每一塊文字轉成一串代表「意思」的數字(回想第 1 章)。
- 存進向量資料庫(Vector DB):專門存這些向量、並能快速找「最相似」的資料庫。
- 檢索(Retrieve):使用者提問時,把「問題」也轉成向量,去向量庫找意思最相近的幾塊。
- 重排序(Rerank):對撈到的候選再用更精準的模型排一次,把最相關的挑到最前面。
- 生成(Generate):把「撈到的資料 + 問題」一起塞進 context,讓模型根據這些資料回答。
核心魔法:語意搜尋(不是關鍵字搜尋)
傳統搜尋是比對關鍵字:你搜「筆電」就找不到只寫「notebook」或「膝上型電腦」的文件。
RAG 用的是語意搜尋:因為每段文字都被轉成「代表意思的向量」,意思相近的向量距離就近。所以你搜「筆電」,也能撈到談「膝上型電腦」的段落——它比對的是意思,不是字面。
| 關鍵字搜尋 | 語意搜尋(向量) | |
|---|---|---|
| 比對的是 | 字面 | 意思 |
| 「筆電」找得到「notebook」嗎 | ❌ | ✅ |
💡 實務上最強的是混合搜尋(Hybrid Search):關鍵字搜尋(精準抓專有名詞、型號)+語意搜尋(抓同義、相關)兩個一起用,再 rerank,效果最好。
常見的向量資料庫有 pgvector(PostgreSQL 外掛)、Pinecone、Weaviate、Qdrant 等,先知道名字就好。
切塊策略:RAG 好不好用,一半看這裡
「怎麼切塊」聽起來很枝微末節,卻是 RAG 成敗關鍵:
- 切太大:一塊塞太多雜訊,稀釋重點(回想第 3 章 context rot)。
- 切太小:語意被切斷,撈到半句話沒頭沒尾。
- 較好的做法:按語意單位切(段落、章節),並讓相鄰塊稍微重疊,避免把一句話從中砍斷。
進階:RAG 也在進化
- GraphRAG:不只存「片段」,還建一張「知識圖譜」(誰跟誰有關係),適合需要跨多份文件、多跳推理的問題。
- Agentic RAG:讓 agent(第 7 章)自己決定「要不要查、查幾次、查什麼」,而不是死板地固定查一次。
先知道有這些方向即可,別一開始就上重武器。
怎麼知道你的 RAG 有沒有做好?
RAG 常見的失敗有兩種,各自要看不同指標(這也是第 10 章「評估」的一個縮影):
| 失敗 | 白話 | 要看的指標 |
|---|---|---|
| 沒撈到對的資料 | 該給的段落根本沒被找出來 | 檢索命中率 |
| 撈到了卻答錯 | 資料有給,模型卻沒照著答、或亂加料 | 忠實度(faithfulness) |
⚠️ 最常見的誤會:「RAG 就不會幻覺了」。錯。如果撈到的是錯的、或不相關的資料,模型照樣會給你一個很有自信的錯答案。 RAG 降低幻覺,但不是免死金牌——所以要評估。
重點回顧
- RAG = 先檢索、再生成:治「幻覺」與「知識截止」,讓 AI 引用你的、最新的資料並附出處。
- 流程:切塊 → 轉向量 → 存向量庫 → 檢索 → 重排序 → 生成。
- 核心是語意搜尋(比對意思,不是關鍵字);實務首選混合搜尋 + rerank。
- 切塊策略是成敗關鍵:按語意切、適度重疊。
- RAG 不是免死金牌:撈錯資料照樣答錯,一定要評估檢索命中率與忠實度。
到這裡,階段二(工作流與知識)完成了。接下來進入最熱門、也最容易被神化的主題——AI Agent。下一章我們拆穿它:它其實只是「一個會用工具的迴圈」。