RAG 與知識庫
BM25 是什麼?老派但精準的關鍵字比對演算法
BM25 是什麼?老派但精準的關鍵字比對演算法
在向量搜尋流行之前,搜尋引擎靠的就是這一類演算法。到了 RAG 時代它也沒有退場,因為有些查詢,就是要靠字面精準命中。
你將學到什麼
定義
用關鍵字出現次數、稀有程度與文件長度算相關分數的檢索演算法。
白話比喻
像用書末索引找頁碼:字要對得上才算,對上越多次越前面。
跟誰容易搞混
向量搜尋比的是語意,BM25 比的是字面,兩者常常合併使用。
定義
BM25(Best Matching 25)是一種排名演算法,根據關鍵字在文件中的出現頻率、文件長度,以及關鍵字在整體文件集中的稀有程度,計算文件與查詢的相關分數。
它的核心精神有三個:精準,完全依賴關鍵字是否出現與出現次數;高效,計算快速可擴展;可解釋,評分依據清晰透明。
白話比喻
它像你翻書末的索引。你查一個詞,索引告訴你哪幾頁有,出現越多次的那頁通常越相關。
而且大家都會用的詞不值錢。「的」出現一萬次沒有意義,某個專有名詞只出現在三頁裡,那三頁才是重點,這就是稀有程度的作用。
BM25 跟向量搜尋差在哪?
| 比較項目 | BM25 關鍵字比對 | Vector Search 向量搜尋 |
|---|---|---|
| 比對依據 | 字面是否命中 | 語意是否接近 |
| 同義詞 | 不會匹配 | 可以匹配 |
| 可解釋性 | 高,分數來源清楚 | 較低,靠向量距離 |
| 最擅長的查詢 | 型號、人名、專有名詞、錯誤代碼 | 概念性、口語化的提問 |
實際用例
BM25 的計分邏輯拆開來看有三塊:詞頻代表關鍵字在這份文件中出現幾次,次數越多越相關;反向文件頻率代表這個詞越稀有、區辨能力越強。
第三塊是長度正規化,用來避免偏好過長的文件,否則一份什麼都寫一點的長文會不公平地贏過精準的短文。
常見的應用場景包括搜尋引擎、學術資料庫、企業內部文件檢索,以及 FAQ 與客服系統的常見問題比對。
延伸學習
Build My RAG|RAG 知識庫實戰(三天)
三天完整錄影,從一份文件做到可以問答的知識庫,再自己把它打爛、修好、養得起來。附兩天的操作講義、Demo 程式碼與測試文件組。
NT$ 6,980
ChatGPT 很強,但真正讓你下班的是 Google
六小時完整實錄。從「AI 很厲害,為什麼你還是每天加班」這個問題出發,把 Google Workspace 當成真正的工作平台重新設計一次流程 ── Sheets 的資料結構、Drive 與 Docs 的文件流、Gmail 與 Calendar 的通知系統,再用 Apps Script 讓它自己跑起來,最後收斂成一張屬於你自己的 AI 工作能力地圖。
NT$ 4,599

