技術架構 Dify

Dify 知識庫變大之後:檢索品質與資源的取捨

很多人以為知識庫塞越多資料,AI 回答越準。實際上多數情況剛好相反。這篇講知識庫長大之後會發生什麼,以及分塊、Top-K 該怎麼調。

RoamerHost 營運團隊 6 分鐘閱讀
想直接開始?Dify 託管,60 秒自動部署 AI 應用開發平台 — No-Code 建構你的 AI。月付 NT$1,599 起 立即訂閱 Dify
本文目錄

剛開始用 Dify 的人,最常做的一件事是把手上所有文件都丟進知識庫。

直覺上這很合理:資料越多,AI 知道得越多。實際上到某個規模之後,回答品質會開始下降,而且原因不容易看出來。

30 秒總覽

問題答案
資料多了會更準嗎通常相反
為什麼撈回的段落數固定,競爭者變多
最有效的解法按主題拆成多個知識庫
Top-K 該調大嗎不該,三到五段通常最好
先撐不住的是建立索引的時間,不是查詢

為什麼資料變多反而變差

RAG 的運作方式是:使用者問問題 → 系統在知識庫裡找出最相關的幾段 → 把這幾段連同問題一起送給模型 → 模型根據這些段落回答。

關鍵在「最相關的幾段」是有數量上限的。

知識庫從 50 段變成 5,000 段,系統一樣只撈回三到五段。差別是:現在有更多長得很像但其實不相干的段落在跟正確答案競爭。

結果就是那個很多人遇到但講不出原因的現象——「以前問得到的問題,現在答錯了。」

分塊大小的取捨

文件會被切成小段(chunk)再建立索引。這個大小直接決定檢索品質。

切太小切太大
檢索精準度高低(一段裡混了多個主題)
上下文完整度低(答案被切斷)高
典型症狀回答斷頭、缺前後文回答離題、抓到不相干內容

沒有一體適用的數字,但有個判斷原則:一段應該剛好包含一個完整的概念。

FAQ 型的內容適合切小(一問一答就是一段),操作手冊適合切大一點(一個完整步驟不該被拆開)。這也是為什麼不同性質的文件最好分開建知識庫,而不是全部混在一起。

Top-K 不是越大越好

Top-K 決定每次檢索撈回幾段。很多人把它調大,想說「多給一點資料總不會錯」。

會錯。撈回十幾段的問題有三個:慢、貴(送給模型的 token 變多)、而且模型會被不相干的內容帶偏。

多數情境三到五段就夠。如果三段撈不到正確答案,問題出在分塊或文件品質,調大 Top-K 只是把雜訊一起帶進來。

知識庫該怎麼長大

比起「塞更多」,這幾個做法有效得多:

  • 按主題拆成多個知識庫。產品文件、退換貨政策、技術規格各自獨立,讓應用依情境選用。這是改善檢索品質最有效的一步。
  • 定期清掉過期內容。舊版的產品說明留在庫裡,它會跟新版競爭,而且模型分不出哪個是新的。
  • 來源檔先整理過。把 200 頁的手冊拆成幾個主題檔案,比整本丟進去好很多。
  • 用真實問題測。拿客戶實際問過的十個問題定期測一輪,這比看任何指標都準。

資源會在哪裡先撐不住

知識庫變大,最先有感的是建立索引的時間——每次新增文件都要重新解析與產生向量,大檔案在這一步吃記憶體。

日常查詢的成本增加得比較緩慢,但同時使用的人多的時候會放大。方案的 2 vCPU/10 GB 對純文字知識庫相當充裕,真正逼近上限的通常是放了大量掃描 PDF 的情況。

不過在加資源之前,值得先確認你遇到的是資源問題還是設計問題——這兩者的症狀不一樣。

拆知識庫的三種切法

切法什麼時候用
按主題最常見——產品/政策/技術規格
按對象有些內容不該讓客戶看到
按時效現行版與歷史版分開

第三種最容易被忽略,但影響很大:舊版產品說明留在同一個庫裡,它會跟新版競爭,而模型分不出哪個是現行的。

拆完之後,應用可以依情境選用不同的知識庫,或用工作流先分類再決定查哪一個。做法在 工作流編排教學。

知識庫長大的三個階段

階段症狀該做的
剛開始回答準,偶爾找不到補文件就好
中期開始答錯,而且錯得很有自信拆知識庫、清過期內容
後期上傳變慢、索引時間長看資源,或減少來源檔大小

最危險的是中期。「以前問得到的問題,現在答錯了」——因為現在有更多長得很像但不相干的段落在跟正確答案競爭。

這個階段最容易做出的錯誤反應是「再補更多文件」,那會讓情況更糟。

怎麼知道該拆了

三個具體訊號:

  • 同一個問題,答案時好時壞——檢索撈到的段落不穩定
  • 回答引用了明顯不同主題的段落——例如問退貨政策卻引用了產品規格
  • 你自己都說不清楚知識庫裡有什麼——那模型更不可能分得清

拆分方式在下面那段。拆知識庫是唯一一個「做了幾乎一定會變好」的調整,比調任何參數都有效。

常見問題

Q:知識庫有筆數上限嗎?

空間上,純文字的需求很小。但放得下不代表該放——品質瓶頸會遠早於容量瓶頸出現。

Q:拆成幾個比較好?

按主題拆,不是按數量拆。產品文件、退換貨政策、技術規格各自獨立是常見的分法。判斷標準是「這兩類內容會不會互相干擾」。

Q:舊版本的文件要刪掉嗎?

要。舊版產品說明留在庫裡會跟新版競爭,而模型分不出哪個是現行的。過期內容該移出去,不是留著當參考。

Q:怎麼測有沒有變好?

準備十個真實問過的問題,每次調整後跑一遍。沒有固定的測試題,「感覺變好了」通常是錯覺。

Q:文件更新了要重傳嗎?

要,知識庫不會自動同步。價格與政策這類會變的內容尤其危險——機器人會很有自信地回答舊版資訊。

定期該做的一件事

知識庫不是設定完就結束的東西,它需要維護。最低限度是每季用固定的十個問題測一輪。

那十題要是真實問過的問題,而且要固定不換——換題目就沒有基準了。測完記錄哪幾題答錯、錯在檢索還是生成。

連續兩季答對率下降,通常代表兩件事之一:文件累積太多該拆了,或有過期內容還留在庫裡跟新版競爭。

資料來源與延伸連結

Dify 的功能與介面會隨版本調整,實際操作前建議對照官方文件:

延伸閱讀

想找人幫你做?

這些流程要是不想自己搭,或是規模大到需要有人一起規劃,浪花科技(RoamerHost 的母公司)承接企業流程自動化與 AI Agent 的委託開發:

準備好開始使用 Dify 了嗎

完成訂閱後 60 秒,系統自動幫你裝好 Dify——獨立容器、資源硬性上限不與他人共用、HTTPS 開箱即用。

月付・不綁約・隨時可取消續約

嗨,我是小浪!有任何問題都歡迎點我詢問,我來幫你解答。

小浪

小浪 - AI小助手

在線中
小浪

有任何問題都歡迎隨時詢問我,我會盡力為你解答!

Powered by RoamerHost AI