RAG 是什麼?用人話解釋讓你的 AI 不亂講話的技術
RAG(Retrieval-Augmented Generation,檢索增強生成)就是讓 AI 答案只能來自你給的資料、答不出來就老實說。本文用人話解釋向量、切段、檢索、重排這些術語,以及為什麼做好 RAG 比做出來難得多。
或者說:怎麼讓 AI 只回答你給它的東西,絕不亂講?
一個比喻先講清楚
想像你雇用一個剛畢業的助理。你給他兩種訓練方式:
第一種:讓他死背整本員工手冊。考他的時候,他憑記憶回答。 - 缺點:記憶會偏差、會混淆、會自己腦補補空缺 - 而且員工手冊更新後,他還是記得舊版,要重新訓練才會改
第二種:讓他學會怎麼查員工手冊。考他的時候,他先翻到正確章節,只看那幾頁,再回答。 - 優點:答案永遠來自最新版手冊 - 答不到的時候會誠實說「手冊沒寫,我去問主管」 - 加新章節不用重訓他,他下一秒就會用
第二種就是 RAG。
LLM(大語言模型)被當成那個「會查書的助理」,而不是「死背書的助理」。
RAG 全名是什麼
Retrieval-Augmented Generation,中文叫「檢索增強生成」。
拆成三個動作:
- Retrieval — 檢索:從知識庫找出跟問題相關的內容
- Augmented — 增強:把找到的內容塞進 prompt
- Generation — 生成:讓 LLM 基於這些內容回答
順序很重要:先檢索,後生成。LLM 看到的不是「整個世界的知識」,只有「你篩選給它的這幾段」。
那個「向量」是什麼?用人話
中間最神秘的是「怎麼從一堆文件裡找出跟問題相關的內容」。傳統做法是關鍵字搜尋(SQL LIKE),但有兩個致命缺陷:
問題:「我帳號被盜了怎麼辦?」 - 知識庫條目:「異常登入的處理流程」 - 關鍵字搜尋:抓不到(「帳號」「被盜」這兩個詞,標題裡都沒出現)
解法:把每段文字轉成一串數字,叫做「向量」(vector),代表它的語意位置。
具體一點:
「我帳號被盜了」 → [0.21, -0.45, 0.78, ..., 0.12]
「異常登入處理」 → [0.19, -0.43, 0.81, ..., 0.15] ← 數字很像,在同一區域
「TVC 廣告報價」 → [-0.55, 0.92, -0.30, ..., 0.61] ← 數字差很多,在遠處
這串數字是用一個叫「embedding model(嵌入模型)」的 AI 算出來的,它讀過數十億句話,學會把意思相近的東西放在數字空間相近的位置。
於是檢索變成:把問題也轉成向量,然後找數學上距離最近的幾個段落。這叫「cosine similarity」(餘弦相似度),其實就是兩個向量的夾角越小、越相似。
不用懂數學,記得這個畫面:
意思就是位置。位置近的就是相關的。
RAG 做得簡單,做得好很難
聽起來不難對吧?把文件切段、轉向量、搜尋、丟給 LLM。但讓 RAG 答得準,中間有四個工程坑:
坑 1:切段策略(chunking)
把一份 100 頁的 PDF 怎麼切?
- 切太細(每段 50 字):資訊片段化,LLM 拼不起完整答案
- 切太大(每段 2000 字):一段裡藏太多事,向量取的是「平均語意」,搜尋會失準
實務做法:每段 300-500 字、相鄰段重疊 50 字(避免關鍵句被切兩半)。
而且切段時要考慮自然邊界——不能把同一個 FAQ 答案切兩半。要按 markdown 標題、條列、段落結構切,不是按長度。
坑 2:Embedding 模型選擇
中文跟英文的最佳 embedding 模型不同。
- 通用英文最強:OpenAI
text-embedding-3-large、Cohereembed-v3 - 中英雙語穩定:
paraphrase-multilingual-MiniLM-L12-v2(我們小愛用的) - 純中文最強(2026 年初):
bge-m3、gte-Qwen2
選錯模型,同一個知識庫表現差 30%。
坑 3:Hybrid Search(混合檢索)
純向量搜尋有個缺點:人名、產品代號、數字 ID 這種「精確匹配」事情,向量會失準。
例子:玩家問「S-1A 怎麼解任務?」 - 純向量:可能把「S-1A」當成一般符號,匹配到其他任務的答案 - 加上 BM25 關鍵字搜尋:「S-1A」精確命中,結果一起排序
實務上要做 dense (向量) + sparse (BM25) 混合搜尋,再用 reranker 模型重新排序 top 結果。
坑 4:Reranking(重排)
向量搜尋找出 top 20 候選後,要用一個更精準的模型(通常更小但更深)重新排序前 3-5 個。
為什麼?embedding 模型訓練目標是「相似」,reranker 訓練目標是「相關性」——不一樣。embedding 抓出「形狀」相近的,reranker 確認「真的能回答問題」的。
省略 reranking 通常 top-1 命中率掉 15-20%。
RAG 的「最後一哩路」:不准 LLM 自由發揮
做完上面四件事,你還是會看到 LLM 自由發揮——它讀完知識庫片段,還是會自己補。
例子: - 問:「A 方案多少錢?」 - 知識庫片段抓到:「A 方案介紹...(沒寫價格)」 - LLM 答:「A 方案 NT$3,000 起。」 ← 掰的
這時候要做的不只是技術問題,是規則設計:
1. system prompt 明寫:「只能用知識庫回答。沒寫的事一律說『我不確定,
請真人協助』。不要憑常識補腦。」
2. 每次回應強制輸出 ACTION tag([ANSWER]/[UNKNOWN]/[HANDOFF]),系統按
tag 路由——不准 LLM 自己 fallback 到掰
3. 答案附 citation,讓 LLM 知道會被追溯
這三件事一起做,LLM 才會真的「乖」。
→ 想看實際運作?薩摩官網的小愛 → 就是這套架構在跑。問她「你們做電商嗎?」,她不會掰,她會說「這個我不確定,要不要留 Email 給薩摩」。
為什麼大多數 AI 客服 SaaS 的 RAG 普通
技術都公開了,為什麼大家做得不一樣?
答案是經濟學,不是技術。
| 工程環節 | 細心做 | 套版做 |
|---|---|---|
| 切段策略 | 為每個客戶調參 | 統一規則 |
| Embedding 模型 | 依語言 / 領域選 | 一個模型打天下 |
| 混合檢索 | 視 KB 內容啟用 | 純向量 default |
| Reranking | 加一層 reranker | 省成本不做 |
| 規則設計 | 一客戶一份 SOP | 通用 system prompt |
一個賣 3,000 月費的 SaaS,沒辦法為你的 KB 細調這些。經濟上不成立。
→ 想要 RAG 做到 80 分以上,需要的是客製化交付,不是 SaaS。
結論:RAG 是答案,但不是萬靈藥
RAG 治得了 AI 「亂掰」這條 bug,但只有做好的 RAG 才行。做出來不難,做好難。
你可以這樣評估市面 AI 客服:
問廠商三個問題:
- 你們用什麼 embedding 模型?中文表現怎樣?(答不出來就 SaaS 套版)
- 答案會附 citation 嗎?(說「會但功能還沒開」 = 沒做)
- 不知道的事情會自己掰嗎?(讓他現場 demo,問一個 KB 沒寫的事)
三個問題答得出來,才是會做 RAG 的供應商。
參考閱讀: - 為什麼 AI 客服總是答非所問? → - AI 同事完整介紹 → - 想自己玩玩看 RAG?去薩摩首頁右下角 找小愛聊天,刁難她
黃少民 / Satsuma Creative
整合行銷創意公司。我們做廣告、做遊戲出身,把 AI 當同事培養,不是當工具賣。