跳到主要內容
BERT 斷詞號稱快 50 倍,中文別直接套用
/閱讀約 3 分鐘/

BERT 斷詞號稱快 50 倍,中文別直接套用

Hugging Face 團隊公開 BERT tokenizer 正規化最佳化,報告相較舊版最高約五十倍的斷詞吞吐提升。本文交代略過 ASCII 與快取的做法、中文及短輸入限制,以及仍在 Draft PR 的開發狀態,避免把斷詞加速當成整個模型都變快。

Hugging Face 團隊在 10 月 15 日公開 BERT tokenizer 最佳化,報告相較 tokenizers 0.23 最高約五十倍的斷詞吞吐提升。這次改的是送進模型前的文字編碼流程,並非模型推論速度。來源:官方團隊文章

少做不必要的文字處理

作者先量出文字正規化的耗時,再調整處理方式。英文與程式碼中大量的 ASCII 字元不需要 Unicode 正規化,因此可以整段略過;需要處理的字元則透過快取減少重複查表,並在內容沒改變時避免額外配置記憶體。

這類 tokenizer 會出現在向量搜尋、重排與分類模型的前處理。大量英文文件要建立索引、或需處理程式碼的團隊,是這次更新較直接的受益對象;加速發生在斷詞這一步,整個服務會快多少仍取決於它原本占用的時間。

中文與短輸入,未必跟著變快

官方文章指出,中文沒有相同增益,部分小輸入甚至變慢。原因包含中文的 ASCII 比例較低,BERT 的中文處理又仍需要在字元旁加空白。繁中知識庫不能直接照搬標題倍率,也不能把英文資料的結果當成中文部署保證。

截至十月十七日,對應修改仍是 Draft PR,尚不能當成穩定版已交付。想追進度可看 tokenizers 修改提案;想重現比較,作者另公開 測試程式與結果,包含主分支、最佳化分支與舊版的對照。

重現程式把吞吐、正規化成本與版本比較分開整理,方便查出提升發生在哪一段。

作者同時檢查輸出 token 一致,避免只追求速度卻改變模型輸入。這些是官方報告,本文沒有重跑測試。若你的服務大量處理英文或程式碼,可先量斷詞耗時並關注合併進度;主要處理中文的團隊,暫時不該據此承諾加速。