返回首頁

開源模型工具鏈

Hugging Face Tokenizers 0.23.2 將跨語言公平目標納入 BPE 訓練器

新版加入 Parity-aware BPE,讓分詞器在每次合併時優先改善壓縮最差的語言,而非只追求全體最高頻率。這項功能可用於訓練新詞彙表,卻不會自動修正既有模型的中文 token 成本。

Pam Brophy · CC BY-SA 2.0 · Image source
zh-Hant

Hugging Face 於 9 月 3 日發布 Tokenizers 0.23.2,首次在主流 Rust/Python 分詞工具鏈中提供 Parity-aware BPE 實作與 `ParityBpeTrainer`。這是 Tokenizers 進入 1.0 前最後一個 0.x 版本;除新訓練器外,版本亦減少 `get_vocab_size()` 的完整詞彙複製,並把模型讀鎖由每個 pre-token 改為每次呼叫取得一次。

傳統 BPE 每一輪都合併能為整體語料帶來最大頻率或壓縮增益的符號對。當訓練資料由英文等高資源語言主導時,這個全域目標會把大量詞彙容量分配給優勢語言,使其他語言需要更多 token 才能表達相同內容。Parity-aware BPE 改用 max-min 策略:先找出目前壓縮率最差的語言,再選擇最能改善該語言的合併;合併仍套用到全部語料,因此最終產物依然是單一共享詞彙表。

原始研究以不平衡的 30 與 60 語言資料集訓練 128K、256K 詞彙表,並用對齊語料按內容而非 UTF-8 位元組比較壓縮率。作者報告跨語言 token 成本的 Gini 差距下降,而以混合策略訓練的 3B 模型,相對傳統 BPE 的各語言準確率中位變化為正 0.19 個百分點,顯示公平化沒有造成明顯整體能力損失。不過結果也不是所有文字系統一致受益:論文的 script 分析中,傳統 BPE 在 CJK 詞彙利用率仍領先各個公平版本。

這次發布的重要性在於研究演算法已變成可直接組入資料管線的公開元件,而非只留在論文程式。但它只能在訓練新 tokenizer 時改變合併規則;既有模型的 embedding 與 token ID 已固定,不能靠升級套件直接套用。團隊還需準備語言標註,最好另有小型平行語料作為開發集,否則以位元組或空白詞界衡量中文等文字系統可能引入新的偏差。後續值得驗證的是大規模訓練時間、繁簡中文及程式碼混合語料的實際成本,以及新版實作能否重現論文的公平性與下游品質結果。

來源

  1. Tokenizers v0.23.2 release notes
  2. tokenizers 0.23.2
  3. Parity-Aware Byte-Pair Encoding: Improving Cross-lingual Fairness in Tokenization