設想一份課程手冊剛剛更新。你把新舊兩版都放進知識庫,問 AI:「這次申請需要提交哪些材料?」它很快列出了一份清單,還附上了出處。
但點開出處,問題出現了:其中一段來自舊版手冊,另一段只是介紹申請流程,並沒有列出全部材料。回答看起來完整,證據卻沒有完整地支持它。
檢索增強生成,通常簡稱 RAG,把外部資料引入語言模型的回答過程。EvoClass 的 AI025《實用 RAG 系統:從知識庫到檢索增強生成》用五個課時展開這條路徑。課程關心的,正是資訊怎樣從原始文件走到可以核對的答案。
第一處斷點,可能藏在資料進入系統之前
在 Lesson 1:RAG 與知識庫構建基礎 中,課程先區分提示、微調與 RAG,並把資料清理、元數據和版本管理納入知識庫構建。
這一步容易被當成準備工作,實際卻決定了後續能夠核對什麼。文件屬於哪個版本,適用於誰,條款從什麼時候生效,都可能影響答案。若這些資訊在匯入時丟失,生成階段再流暢,也很難補回可靠的依據。
回到那份手冊,可以先問一個很樸素的問題:系統能否區分「這是一份新文件」與「這是一份當前有效的規定」?發佈時間和適用時間並不總是一回事。
因此,構建知識庫時需要考慮的不只是把正文存進去,還包括保留它的身份和使用條件。
切得更細,未必找得更準
一份長手冊往往需要拆成可以檢索的片段。拆得太小,可能留下了材料名稱,卻丟掉前面的適用對象;拆得太大,答案又可能淹沒在無關內容裏。
Lesson 2:分塊、嵌入與索引 把分塊放在召回、排序、上下文和引用之間討論。片段的邊界,會同時影響「能不能找到」與「找到以後能不能正確使用」。
例如,一條規定的例外條件寫在下一段,只保留第一段,就可能讓一個有條件的要我看起來適用於所有人。這類問題值得在資料整理階段發現,而不必等到最終答案出錯才追查。
課程還把語義相似與答案用途區分開來。兩段文字談論同一主題,並不意味着它們都包含使用者需要的那條證據。
找到相關資料之後,還需要篩選
使用者有時會問一個概念,有時會報出精確的編號、產品名稱或條款。兩類問題,對檢索的要求並不相同。
在 Lesson 3:混合檢索與重排序 中,課程討論關鍵詞匹配與語義檢索各自的用途,並進一步引入重排序。
可以把它理解為兩次選擇:先盡量找回可能有用的候選,再判斷哪些片段真正包含回答問題所需的資訊。只看相似度分數,往往不足以完成第二次判斷。
檢查手冊問答時,可以把失敗拆開記錄:有效條款根本沒有進入候選,還是進入了候選卻被排在後面?這兩種情況需要處理的環節不同。保留中間結果,才有機會把「答錯了」變成一個能夠定位的問題。
有出處,還要看出處是否支持結論
引用讓讀者有機會回到材料,卻不能單憑引用的存在就認定回答可靠。需要繼續檢查:這段材料是否有效,是否對應這句話,是否覆蓋了其中的限定條件。
Lesson 4:引用、時效與評估 將證據召回和生成忠實度分別討論;Lesson 5:從原型到生產 則把關注點延伸到延遲、成本、故障診斷和證據不足時的處理。
一個值得嘗試的學習任務,是圍繞同一份材料準備幾類問題:正文直接給出答案的、需要結合多處資訊的、涉及舊版本的,以及材料根本沒有回答的。逐一檢查系統拿到了什麼證據,又根據證據說出了什麼。
這些問題是學習建議,並非本文已完成的系統測試。它們提醒我們,知識庫的價值需要在真實的資訊差異中檢驗,不能只憑幾次順利的演示來判斷。
可以從 AI025 課程頁面 開始,順着資料到答案的每一次交接往下看。下一次面對一份附有出處的回答,值得追問的是:這些出處,究竟支持了回答中的哪些話?
本文依據 EvoClass 當前課程材料整理,課時連結指向英文材料。文中的手冊問答為教學設想;未據此宣稱已部署系統的準確率、性能或資料存取能力。訪客可查看當前開放內容,完整學習權限以頁面提示為準。