huggingface/tokenizers
💥 Fast State-of-the-Art Tokenizers optimized for Research and Production
🤖 huggingface/tokenizers とは?
Rustで記述された高性能なオープンソースのトークナイザーライブラリで、Python、Node.js、および(計画中の)他の言語向けのバインディングを提供します。BPE、Unigram、WordPiece、WordLevelなど、現代のほぼすべてのLLMで使用されるトークナイザーを実装しており、生のテキストをモデルが理解できる整数IDに変換(およびその逆)するための業界標準エンジンを目指しています。
🚀 クイックスタート (Python)
pip install --pre tokenizers # pre‑release contains the new v1 API
from tokenizers import Tokenizer
# Load a pretrained tokenizer (e.g. Llama‑3.1) directly from the Hub
tokenizer = Tokenizer.from_pretrained("meta-llama/Llama-3.1-8B")
ids = tokenizer.encode("Hello, y'all! How are you 😁 ?").ids
print(ids)
# → [128000, 9906, 11, 379, 65948, 0, 2650, 527, 499, 27623, 223, 949]
print(tokenizer.decode([15339, 1917])) # → "hello world"
⚙️ コア設計
- Rustコア – 参照実装。SIMD依存関係なしで、非常に軽量(gzippedで約325 KB)なバイナリにコンパイルされます。
- モジュール化されたCrates – 推論 (
tk‑encode)、事前トークナイズ (bitcannon)、JSON読み込み (tk‑serialize)、レガシー変換 (tk‑convert)、学習 (tk‑train)、および開発専用のビットマップジェネレーター用の独立したサブcrate。 - ゼロコピー、バッチ指向API – 今後のv1機能には、エンコードされたIDのゼロコピービューやバッチエンコードAPIが含まれます。
- ハードウェア対応パス – ARM上のNEON、最新x86上のAVX‑512/VBMI、およびポータブルなフォールバックをサポート。SIMDはオプションであり、正確性のために必須ではありません。
📦 言語バインディング
| 言語 | ステータス |
|---|---|
| Rust (参照) | ✅ |
| Python | ✅ |
| Node.js | ✅ |
| C / C++ / Java / Go | 🚧 計画中 |
| Ruby | コミュニティ管理の外部リポジトリ |
🛣️ ロードマップのハイライト (v1.0.0)
- Python API – 完全な学習、バッチエンコード、オフセット出力、パディング、ストリームデコード機能の復活。
- パフォーマンス –
bitnorm正規化、学習の高速化、デコード速度の向上、単語キャッシュの最適化。 - GPU対応プロトタイプ –
tk‑devicesにより、大規模なバッチデコードのために語彙とIDをデバイス上に保持する手法を模索。 - 追加バインディング – C/C++コア、続いてJava、Go、Swiftなど。
📈 パフォーマンスとフットプリント
- ライブラリのcrateサイズは gzippedで325 KB。Rustの全ソースコード(オプションのSIMDカーネルを含む)でも1 MB未満です。
- ベンチマーク(リンク先のインタラクティブデモを参照)では、主要なすべての事前トークナイズ正規表現において、既存のトークナイザーをCPU上で上回る結果を示しています。
📚 ドキュメントとリソース
- ガイドとクイックツアー – https://huggingface.co/docs/tokenizers/
- APIリファレンス – https://docs.rs/tokenizers/
- ライブベンチマークデモ – https://huggingface-tokenizers-v1.static.hf.space/
🎯 ターゲットユーザー
- モデル開発者:学習や推論のために高速で正確なトークナイズを必要とする方。
- 本番サービス:LLMを大規模に提供し、軽量で依存関係のないランタイムを求める方。
- 研究者:独自のトークナイザーを構築したり、新しい事前トークナイズアルゴリズムを実験したりする方。
📜 ライセンス
MIT – リポジトリの LICENSE ファイルを参照してください。
関連
- Dispatch
- プロジェクト
- Dispatch
- Dispatch
- Dispatch