iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
Claude AI

30 天帶 Claude 上工:從聊天助手到工程協作夥伴系列 第 10

先翻目錄再作答:RAG 到底在做什麼?

  • 分享至 

  • xImage
  •  

上一篇說,備料台上該放的是一張清單,要用的時候才去冰箱拿。RAG 就是這件事最常見、也最成熟的實作。

假設你要查一本 300 頁的手冊。正常人不會從第一頁重讀到最後一頁,而是先翻目錄、找到關鍵的那幾頁,再帶著那幾頁回答問題。RAG(Retrieval-Augmented Generation)走的就是這個流程:文件先被切成較小的 Chunk,轉成能表示語意的 Embedding 存進向量資料庫;使用者提問時,系統先去搜尋最相關的幾段,再把那幾段交給模型整理成答案,必要時附上來源。

好處不只是省 Token。Lewis 等人當年提出 RAG,針對的是一個更根本的問題:模型參數裡的知識是靜態、不透明的,不重新訓練就改不了。把知識搬到外部索引之後,要更新只需要換索引。順帶的效果才是把整份 PDF 塞進去所帶來的那些麻煩——重要資訊被無關文字淹沒,Token、延遲與成本一起上升。

但檢索本身也會壞,而且壞得很安靜。

語意相似不等於正確。 Embedding 找的是「像」,不是「對」。問「這個功能什麼時候停用」,很可能撈回一段講「什麼時候啟用」的文字——因為兩句話在向量空間裡幾乎貼在一起。這就是 Day 02 那件事在檢索層重演一次:系統算的還是合理性,不是真實性。

切塊會切壞東西。 切在句子中間、把表格攔腰截斷都很常見;chunk 切太小會失去脈絡,切太大又會稀釋重點。而且就算正確的段落被撈出來了,塞十段進去,Day 03 的 lost in the middle 照樣會發生。

所以 RAG 出問題時,要把檢索和生成分開評:檢索看「該找到的那幾段有沒有被撈出來」,生成看「拿到正確段落之後有沒有答對」。這就是 Day 08 說的「分清楚是哪一站出的錯」——兩者混在一起,分數掉了你不會知道該修哪一邊。

檢索錯了,後面寫得再流暢,也只是拿錯課本作答。

延伸閱讀

  • Patrick Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020(arXiv:2005.11401)。要注意的是,論文裡的 RAG 是端到端訓練的:檢索器(DPR 的查詢編碼器)與生成器(BART)一起學,檢索到的文件當成潛在變數做邊際化,消融實驗顯示不讓梯度回傳到檢索器會使效果明顯下降。今天實務上講的 RAG 多半完全不訓練,只是推論時的切塊、嵌入、搜尋與拼裝。名字相同,工程不同。

上一篇
備料台比菜單更重要:什麼是 Context Engineering?
下一篇
找得到不代表找得準:Chunking、Retrieval、Reranking 怎麼配?
系列文
30 天帶 Claude 上工:從聊天助手到工程協作夥伴13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言