知識庫檢索效果怎麼驗
知識庫要驗檢索效果,先備一組已知出處的題目,再記下每一題有沒有取回那一段原文、取回的是不是已經停用的版本,以及答覆在送出前有沒有對上引用。題目對上的文件已在索引裡、但切段把句子切開,才重切;現行版本還沒寫進索引,才重建索引。
目錄
驗檢索和搭建、管版本分開
搭建知識庫時要定的是哪一批文件可以當準則、誰可以讀、現行路徑在哪。版本要管的是哪一份檔案標成現行、誰可以把舊稿標成停用。這一筆驗的是:拿已知出處的題目去查,取回的段落是不是題目上寫的那一段現行原文。三件事不要併成「把文件放進去就會答對」。分別見 企業知識庫怎麼搭建、知識庫文件版本怎麼管。
權限仍然沿用文件庫已經設好的群組。驗檢索的人用的帳號,必須是題目所屬目錄允許閱讀的帳號;用一個打不開該目錄的帳號去測,未取回不能算成檢索失敗。角色與目錄怎樣對上,見 企業AI助理如何設定權限。交付範圍見 企業知識庫與內部助理。
題目、出處和可接受的答要成套
2026年10月21日閱讀的 Microsoft Learn:RAG 準備階段 寫明,收集測試查詢的產出包含三項:查詢,也就是一位正當使用者可能提出的問題;上下文,也就是文件裡對上該查詢的原文,每一段寫上頁碼和實際文字;答案,也就是對該查詢有效的回應,可以是文件原文,也可以是從一段或多段上下文改寫而來。該頁沒有刊登日期。問題必須能由文件內容回答。該頁並寫明,主題專家往往難以一次列全題目,可以用代表性文件產生合成問題,但產出要由主題專家覆核,確認問題對得上用途、答案對得上問題。
公司的題目集就用這三項:題目、出處(文件、頁碼、原文)、可接受的答。沒有頁碼和原文的題,不進這一套。合成題在負責人覆核之前,不拿來當驗收。該頁另寫,使用案例的客戶或主題專家應作為品質關口,判斷文件、題目和答案是否完整、有代表性且正確,並定期覆核題目和答案,使它們繼續準確反映來源文件。定期的間隔由公司自己定,該頁沒有給天數。
命中和未命中記在同一本
2026年10月21日閱讀的 Microsoft Learn:RAG 資訊檢索階段 寫明,評估搜尋結果時用準備階段已經收集的兩項:查詢,以及測試文件裡對上該查詢的全部文字。該頁列出三種做法。Precision at K:在全部搜尋結果中,正確辨認為相關項目的百分比,着重結果準不準。Recall at K:該頁的用詞是,前 K 筆裡的相關項目,占「全部可能的 relative items」的百分比,着重覆蓋。Mean reciprocal rank:已排序結果裡,第一個相關答案的倒數排名的平均,着重第一個相關結果出現的位置。該頁沒有刊登日期。
該頁寫明,正面例子希望這些指標盡量接近 1,負面例子——資料本不該答得了的查詢——希望盡量接近 0;全部測試查詢都要測,正面和負面分別求平均。頁面沒有另外給一個及格分數。現場紀錄可以先寫人讀得懂的一欄:已知出處有沒有出現在取回的結果裡、若出現則排在第幾筆、若沒出現則記未命中。要報數字時,再按該頁的三種做法計算,並寫明 K 是這次紀錄裡的哪一個數。K 由這次測試寫明,不從該頁抄一個固定值,因為該頁沒有指定 K。
取回停用版本,不算命中現行
取回的段落若來自已經標成停用的檔案,這一題對現行文本記成未命中,並在備註寫「取回的是停用版本」加上該版本的標記。不要因為字面相似就改記成命中。現行標記在哪個存放處、誰可以把舊稿標成停用,沿用版本那一篇的寫法。題目集裡的出處若還指着舊頁,先按準備階段所說,定期把題目和答案改到仍然準確反映來源文件,再重測。
停用版本被取回,修的是索引裡留下的舊檔,不是把題目改得含糊以便「更容易命中」。負責人先確認存放處上的現行檔,再把該檔的切段寫進索引。舊檔從供檢索的結果裡拿掉或標成不可引用,和版本紀錄同一天做。兩天對不上,下一次測試仍會把舊句當成依據。
送出前對上引用裡的原文
2026年10月21日閱讀的 Microsoft Learn:RAG 語言模型端到端評估 把 groundedness(有時稱為 faithfulness)寫成:衡量回應是否完全基於上下文,並驗證回應沒有使用上下文以外的資訊。該頁寫明,這個指標低,表示語言模型可能輸出不準確或沒有意義的回應;計算結果低時,應評估是否要補充資料、調整切段策略或切段大小,或調整提示。該頁沒有刊登日期,也沒有規定必須由人簽核才算這個指標達標。
送出前的核對是知識庫自己的規則:答覆寫出文件名和段落,負責人打開該段,句子確實在裡面,才可以離開草稿。段落裡沒有這句,答覆維持草稿,並在紀錄寫上對不上的那一句。這和搭建時「回覆要帶路徑、對不上就留在草稿」是同一件事,用在已經能量測的題目集上。見 企業知識庫怎麼搭建。指標可以事後算;送出前這一筆核對不靠指標代替。
切段和重建索引看的不是同一件事
2026年10月21日閱讀的 Microsoft Learn:RAG 切段階段 把切段寫成把文件分成大小合適、各自含有語意相關內容的塊。該頁寫明,整份文件或過大的塊成本高,可能超出模型的 token 上限,效果也不好;把和查詢無關的資訊送進模型,可能得到不準確或無關的回應。塊太小、不足以回答查詢,結果也差,跨在多塊上的相關上下文可能取不齊。該頁沒有刊登日期。
設計與評估指南 把流程寫成:切段、為塊加上後設資料、用嵌入模型向量化、再把塊存進搜尋索引。現行檔的塊還沒存進索引,或索引裡仍只存着停用版本,要做的是把現行檔寫進索引,而不是先改切段大小。現行檔已經在索引裡,但取回的塊把句子和它所依賴的條件切開,才回到切段,按文件結構重切這一檔,再存進索引。檢索階段的向量搜尋一節另寫明,查詢嵌入前要做和切塊時相同的清理,並且必須使用為切塊做嵌入的同一個模型。該頁有一部分配置是針對 Azure AI Search 的說明;同一模型這一點是該節寫明的。模型不一致造成的未命中,不靠把段落切短來修。
文件沒有寫的題,答覆應寫未找到
準備階段寫明,要同時收集文件答得了的題,和文件沒有寫到的題。測試時,尤其是測試語言模型時,要確定資料不足以回答時系統怎樣回應。該頁列出的做法是:說明自己不知道答案,或說明不知道並給一個可能找到更多資料的連結。
題目集裡的負面題,預期就是未找到。系統若寫出一段上下文裡沒有的話,這一題記成未命中,即使讀起來完整。不把這段話補進文件來遷就錯誤的答覆。若業務上確實要有依據,由該題目的負責人寫進現行文件、更新題目集的出處,再重測。在這之前,答覆只保留未找到。
沒有出處的題不拿來驗
題目集裡每一行都要有文件、頁碼和原文。缺了出處,這一題只留在收集表,不拿來計算命中。只有問題、沒有可接受的答,同樣留在收集表,等負責人寫上答案再移入題目集。移入之前不拿它計算命中率。
及格分數、題目數量和模型名稱的排序留在公司自己的紀錄,並註明日期。上述頁面沒有指定題目要有幾則,也沒有比較哪一家模型較準。題目集可以用之前,用三件事看:每題是否有出處和可接受的答、命中與否是否連同停用版本一起記、送出前是否對過引用。三件事都在紀錄上,才用這套題目說檢索有沒有達到這次要的結果。
