Hugging Face、次期「tokenizers v1」を発表 互換性を維持し処理速度を最大数十倍に高速化
要点
-
Hugging Faceは2026年9月21日、トークナイズ処理ライブラリの次期版「tokenizers v1」の詳細を公開した。
-
従来のv0.23と同一のトークンID出力やAPIの互換性を保ちつつ、処理速度を最大で数十倍に向上させた。
-
大規模学習や推論時にトークナイズ処理がGPUの足かせとなる課題を解消するため、内部設計を刷新した。
-
SIMDによる分割やメモリ再確保の排除、ネイティブ並列化など複数の最適化技術を導入している。
-
Hugging Faceは2026年9月21日、自然言語処理向けトークナイズライブラリの次期メジャー版「tokenizers v1」のリリース候補版(RC)に関する技術情報を公式ブログで公開した。従来のバージョン0.23と出力結果やAPIの互換性を完全に保ちながら、内部アーキテクチャの刷新により最大で数十倍の高速化を実現したという。
GPUのデータ飢餓を防ぐパフォーマンス刷新
トークナイザー(テキストを機械学習モデルが処理できる数値列へ変換するコンポーネント)は、従来はモデル本体と比べて計算負荷が低く、全体の性能ボトルネックにはなりにくいとされてきた。
しかし、モデルの高速化やワークロードの大規模化に伴い、大量データによる学習や高並行な推論、長文処理において、トークナイズ処理の遅延がGPUを遊休させる「データ飢餓」を引き起こすケースが増えていたという。Hugging Faceは、GPUの待機時間をなくすことを目指し、v1で性能の徹底的な最適化に踏み切ったとしている。
なお、今回の刷新にはgigatokenやtiktokenなどのオープンソースコミュニティの知見が取り入れられているほか、IBMやNVIDIA、ExecuTorchチームがパッチ提供や動作検証に協力したと説明している。
既存機能の互換性と汎用性を維持
tokenizers v1は、v0.23と全く同一のトークンID列を出力するよう設計されている。語彙(ボキャブラリ)や結合優先順位(マージランク)も維持されるため、既存コードの挙動を変えずに導入可能だという。
また、特定手法への特化を避け、BPE(バイトペアエンコーディング:頻出バイト列を順次結合する手法)を用いる8つのモデル群に加え、WordPieceやUnigramを採用するモデル群を含めた従来の全モデルを引き続きサポートする。「正規化」「事前トークン化」「モデル」「後処理」の4段階からなる処理パイプライン全体に改良が加えられた。
高速化を実現した6つの技術的アプローチ
v1の高速化は、主にモデル処理ステージにおけるメモリ管理や並列処理の抜本的な見直しによって実現された。公開された主な改善点は以下の通りである。
- ワークスペースの分割(workspace split):単一クレート(Rustのパッケージ単位)構成を分割。実行用ランタイム「tk-encode」を分離し、シリアライズや学習機能は必要な場合のみリンクする構成にした。
- メモリ再割り当ての排除(no-alloc model):マージ作業領域を呼び出し元のスクラッチバッファ内に確保し、ループ処理中のメモリアロケータ呼び出しを完全に排除した。
- ビットストリームによる分割(bitcannon):事前トークン分割において、正規表現の代わりにSIMD(複数データを一括並列処理するCPU機能)を用いたビットストリーム演算を採用し、分割処理を高速化した。
- マージループの再設計(merge-loop rewrite):マージ対象を事前確保バッファ内の侵入型双方向連結リストとして管理。データ移動をなくし、2つのインデックス更新のみでマージを完結させる。
- 単語キャッシュの導入(word cache):事前トークンからIDへの変換結果を記録するスレッドローカルなキャッシュを追加。同一単語の重複マージを1回で済ませる。
- ネイティブ並列処理の強化(native parallelism):各スレッドが専用サブプールからバッファとキャッシュを取得する設計(PR #2365)に変更し、単一ロックでのスレッド待機列を解消した。
ベンチマーク環境の提供
Hugging Faceは、スレッド数に応じたスケーリング性能や言語別・モデル別のスループット、レイテンシ、メモリ消費量などを検証したベンチマーク結果を公開している。これらの検証はリポジトリ「tokbench」として公開されており、開発者が自身の環境で測定を再現するためのコマンドも提示されている。