生活分享

檢索增強生成(RAG)是什麼:讓回答附上可查的依據

檢索增強生成會先從外部資料找出相關內容,再交給語言模型組織回答。本文以活動報名規章的問答為例,拆解建索引、檢索、生成與來源核對,說明它和搜尋、微調的差別,也解釋為什麼有引用仍可能答錯。讀完能判斷問題出在資料未更新、文件沒找齊,還是模型把證據解讀過頭,並知道什麼情況應保留不知道的答案。

更新日期: 閱讀時間約 7 分鐘

幾份文件沿路徑進入放大鏡,象徵找出回答所需的證據
圖片:Mokaair (© Mokaair)

檢索增強生成,英文 Retrieval-Augmented Generation,常縮寫為 RAG,是把外部資料檢索接到文字生成的做法。模型訓練時不可能讀過你昨天才修改的活動辦法,但若系統先找出那份辦法,模型便能依照取回的文字回答。外部資料在這裡是當次作答依據,不必先變成模型。這讓資料更新與模型訓練可以分開處理,也使讀者有機會追查回答的來源。

判斷一套 RAG 系統是否有用,不能只看回答流暢或列了幾個引用。真正要問的是:該找到的條文有沒有進入模型看得到的上下文,答案中的重要限制能否回到原文。本篇用虛構的社群課程報名規章示範;辦法與預期結果都是教學設定,不是任何真實機構的規定。讀者可以用同樣方法檢查公司知識庫、產品說明書或個人筆記問答。

一種組合方式,不是一個資料庫

Lewis 等人的原始論文把語言模型的參數記憶,與外部文件索引的非參數記憶結合,並研究可訓練的檢索與生成架構。今天開發文件裡的 RAG 用法更廣,常指先檢索、再把內容放進提示詞的應用流程;這些系統不一定重做原論文的聯合訓練。因此看到名稱相同,仍需確認資料從哪裡來,以及檢索器是否會隨訓練改變。

搜尋工具通常交付文件清單或片段,RAG 則增加根據片段組織答案的步驟。只是可能使用的儲存與相似度查詢元件,全文索引、結構化查詢也能扮演檢索角色。有精確課程代碼的題目,未必適合只靠語意相近。沒有生成答案的向量搜尋仍是搜尋,不能單憑用了向量便稱為完整 RAG。

資料如何走到答案裡

準備資料時,系統解析原檔、切出可檢索的段落,保留文件識別碼、章節、版本與權限,再建立索引。提問時,檢索器把問題轉成查詢,取回候選段落,必要時重新排序或補抓上下文。模型收到問題加上被挑選的依據,最後產生自然語言答案。這些步驟是否由同一服務執行,不影響概念上的分工。

退費條文應連同適用課程與生效日期進入索引。如果只存一句「可以退費」,卻遺失下一段的截止條件,檢索看似成功也可能錯答。引用連結最好定位到實際段落;只有文件首頁連結,讀者仍得在長篇內容裡找證據。版本更新也要讓舊段落退出適用範圍,不能只是新增新版,讓新舊規章同時競爭搜尋排名。

問題送入檢索器,文件索引提供適用段落,再交給模型產生有條件與出處的答案
檢索器決定模型看到什麼;生成器負責組織答案。 · 圖片:Mokaair (© Mokaair)

示範:一個帶條件的退費問題

假設輸入是「我報了週末陶藝班,開課前取消可以全額退嗎?」資料中有一般退費規則、材料費例外與公告修訂。流程先找到陶藝班所屬類別,再確認一般規則對開課前取消的處理,接著補找材料已採購時是否扣費。輸出應把確定事項、例外與欠缺資訊分開,例如說明可能退回課程費,但材料費仍需查採購狀態,並引用相應條文。

好答案不一定立即給出「可以」或「不可以」。若索引只包含一般規則,系統應表達資料不足,而不是把沒有搜到例外當成不存在例外。可以先把正確條文直接交給模型:若這樣能答對,原本問題多半在檢索;若仍漏掉材料費,則檢查指令、上下文排列或答案驗證。這種分層檢查比一再更換模型更容易找出原因。

再設計一個變體:讀者問的是已經停辦的舊課程。預期系統辨認課程版本,查當時適用的辦法;如果索引只保留現行版,應說明目前資料無法回答歷史個案。不能拿最新文件回答所有年份,也不能因為文句高度相似便忽略適用時點。這個測試能揭露只靠文字相似度很難看出的問題。

有來源仍可能答錯

RAG 改善取得證據的機會,沒有把生成器變成必然正確的引用機器。文件可能過期、相互矛盾或本來就錯;相似度查詢也可能把名字接近的另一門課放在前面。模型還可能引用真實文字,卻接出原文不支持的結論。因此要分別衡量相關資料是否找齊,以及答案是否忠於資料,兩者不能互相代替。

權限也屬於檢索品質。一般學員只能看公開辦法時,系統不能先取回內部個案紀錄,再期待模型自行不透露。比較穩妥的設計是在查詢時依讀者身分限制範圍,並把取回文字視為待分析的內容。文件若包含要求忽略規則的句子,不代表那句話有權改寫任務。來源可靠、使用者有權看,以及文字相關,是不同的檢查。

何時值得使用,如何驗收

資料持續更新、答案要附出處、同一模型要服務多個資料集合時,RAG 常是合適起點。若需求是穩定遵守格式或學會特殊語氣,微調可能更貼近問題,兩者也能併用。若資料只有短短一頁,直接提供整頁上下文可能足夠,未必需要完整索引服務。工程複雜度應跟資料規模、更新需求與資料權限一起考量。

匯入時先準備一組常見且可由原文確認的問題,另放入跨章節、舊版幹擾和資料未涵蓋的案例。檢查每題取回哪些段落、答案哪些句子有依據,以及缺資料時是否坦白停住。再記錄等待時間與文件更新後何時可查到。驗收結果應保留問題、文件版本與引用位置,日後更新模型或索引時才能重做同一組比較。

概念對照;來源查證於 2026 年 9 月。
方法處理重點需要留意
直接搜尋交付文件或片段讀者自行彙整答案
RAG取回依據後生成回答檢索與引用仍需驗證
微調訓練行為或能力不等於即時資料更新

  • 生活分享

    世界模型(World Model)是什麼:讓 AI 預測「接下來會怎樣」

    世界模型指 AI 內部用來預測「這樣做之後會怎樣」的模型,但這個詞至少有三種用法:強化學習代理在想像中練習用的環境模型、LeCun 主張預測抽象表示的架構路線,以及能隨操作即時生成畫面的互動環境。內容用示例說明怎麼在想像中規劃,並列出大型語言模型有沒有世界模型的正反研究,附讀新聞時的檢查問題。

  • 生活分享

    視覺語言模型(VLM)是什麼:讓 AI 讀圖片、再用文字回答

    視覺語言模型(VLM)能同時接收圖片與文字,再用文字回答。內容拆解視覺編碼器、連接層與語言模型三段結構,說明 CLIP、Flamingo、LLaVA 三篇論文各補上哪一塊,並和多模態 AI、文字生圖分清楚;也整理它常犯的錯:數錯數量、搞混位置、說出圖裡沒有的東西,附上讀收據時逐行核對的步驟。

  • 生活分享

    溫度(Temperature)是什麼:AI 回答變化程度的取樣參數

    溫度(temperature)是文字生成時調整取樣的參數,讓模型從下一個 token 的機率分布裡抽得更集中或更分散。用假想的台南早餐示例算出低溫與高溫的差別,說明 top-p 的來源和它與 top-k 的差別,並依官方文件與論文指出:調低溫度不代表更準,設成 0 也不保證每次相同,部分模型還不開放調整。

  • 生活分享

    合成資料(Synthetic Data)是什麼:兩種用途、品質控管與模型崩潰

    合成資料是由演算法或模型產生、模仿真實資料特徵的資料,常見用途有兩種:訓練模型,以及在隱私需求下替代真資料。內容依 Self-Instruct、模型崩潰研究(替換與累積資料的差別)與 NIST、ICO 的隱私文件,說明做法、抽查流程,以及它不能保證的事。

最新旅遊情報攻略

資料來源

生活分享