概要
Gigatoken は、既存のHuggingFaceやtiktokenトークナイザーよりも最大 1000倍高速 なトークナイザー。 幅広いCPUや多様なトークナイザーに対応し、 GB/s級のスループット を実現。 HuggingFaceやtiktokenとの 互換モード も用意されており、最小限のコード変更で導入可能。 ベンチマーク で一貫した高速性を証明、特に大規模データ処理で圧倒的なパフォーマンスを発揮。 既存の課題や既知の問題も明記されており、今後の改善予定も記載。
Gigatokenとは
-
Gigatoken は、言語モデル向けの 最速トークナイザー
- 多様な CPUアーキテクチャ (x86, ARMなど)に対応
- 主要な BPEベースのトークナイザー を広範にサポート
- 特に 大規模テキストデータ の高速処理に最適
-
インストール方法
pip install gigatokenで簡単導入
-
主な特徴
- HuggingFaceやtiktokenの既存コードに 最小限の変更 で導入可能
- 独自API使用時は 最大パフォーマンス を発揮
- Rust製・SIMD最適化 による圧倒的なスピード
使い方
-
互換モード(最も簡単)
- 既存のHuggingFaceやtiktokenトークナイザーと 同じインターフェース で利用可能
import gigatoken as gt hf_tokenizer = ... tokenizer = gt.Tokenizer(hf_tokenizer).as_hf() tokens = tokenizer.encode_batch(["This is a test string", "And here is another"]) - tiktokenとの互換も同様に実現
- 既存のHuggingFaceやtiktokenトークナイザーと 同じインターフェース で利用可能
-
Gigatoken API(最速)
- 直接GigatokenのAPIを使うことで 最大限のスループット を実現
import gigatoken as gt tokenizer = gt.Tokenizer("Qwen/Qwen3-8B") file_source = gt.TextFileSource(["owt_train.txt"], separator=b"<|endoftext|>") tokens = tokenizer.encode_files(file_source)
- 直接GigatokenのAPIを使うことで 最大限のスループット を実現
ベンチマーク結果
-
AMD EPYC 9565 144コア
- GPT-2: 24.53 GB/s (HFの989倍、tiktokenの681倍)
- Llama 3: 22.15 GB/s (HFの457倍)
-
Apple M4 Max 16コア
- GPT-2: 8.79 GB/s (HFの1,268倍、tiktokenの140倍)
- Llama 3: 7.60 GB/s (HFの676倍)
-
AMD Ryzen 7 9800X3D 16コア
- GPT-2: 6.27 GB/s (HFの106倍、tiktokenの68倍)
-
各種モデル・バージョン の詳細なスループットも公開
ベンチマークの補足
- OWT (OpenWebText) データセットを使用
- Gigatokenは 分割前の生データ 全体を並列処理
- HFは最初の100MB、tiktokenは最初の1GBを使用(<|endoftext|>で事前分割)
- SentencePiece系 は最適化が弱いが、BPE系は圧倒的な高速化を実現
よくある質問(FAQ)
-
特定CPUやトークナイザーだけ最適化?
- いいえ、 全組み合わせで徹底的に最適化
- SIMD 活用、分岐最小化、キャッシュ最適化で高速化
- Pythonとのやりとり削減、スレッド間通信の回避
-
自分のトークナイザーが対応しているか確認したい
- インストール不要で CLIベンチマーク が可能
uvx --with tokenizers gigatoken bench 'openai-community/gpt2' owt_train.txt --validate --doc-separator "<|endoftext|>" - 結果例:EPYC 144コアで HFの989倍高速、Apple M4 Maxで 1,353倍
- インストール不要で CLIベンチマーク が可能
-
バグや遅いケースを見つけた場合
- GitHub Issue で報告を推奨
既知の課題・注意点
- Pythonとのインターフェース におけるオーバーヘッド(今後改善予定)
- File sink未実装
- WordPiece未対応
- SentencePiece系は最適化が限定的
- Windowsは未検証 (WSL推奨)
AI利用開示
- コードベースの大部分は手作業
- 最終段階で一部AI支援を活用
- API実装、互換性拡張、SIMD最適化戦略の移植など
- 最終段階で一部AI支援を活用
参考文献
- 研究用途での利用時は 以下の形式で引用を推奨
@software{roed2026gigatoken, author = {Marcel R{\o}d}, title = {{G}igatoken: SIMD and Cache Hierarchies for 1000x Faster Byte-Pair Encoding Tokenization on Modern CPUs}, url = {https://github.com/marcelroed/gigatoken}, year = {2026}, }
Gigatoken は、 大規模データ処理 を劇的に高速化したい研究者・開発者にとって、現状最強クラスのトークナイザー。 パフォーマンス重視 の現場で、ぜひ導入を検討。