
2026/07/23 2:20
GigaToken:言語モデルのトークナイゼーション速度が約1,000倍高速化
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Gigatoken は、HuggingFace および tiktoken などの標準的なトークナイザーの超高速で即座に置き換え可能なものとして機能し、ネイティブ API を通じてデータ処理を革命化します。これは、マルチスレッド Rust プログラミング、SIMD 最適化、キャッシュ階層の改良、分岐の最小化といった高度なエンジニアリング技術によって達成された画期的成果です。ベンチマーク結果では、EPYC 9565 などの高エンド AMD プロセッサ上において、HuggingFace のトークナイザーよりもほぼ 989 倍、tiktoken よりも 681 倍以上の高速化が確認されています。
本ソフトウェアは、Llama 3/4、Qwen、Gemma、Phi-4、DeepSeek、GLM、Nemotron、Kimi K2、Mistral、CodeLlama などの主要な AI モデルをサポートします。スタンドアローン API(最も高速)および HuggingFace または Tiktoken を既存のワークフローで使用するための互換モード(わずかに低速)を備えています。本ツールは現在、Linux ベースのシステム上で AMD EPYC、Apple M シリーズ、または AMD Ryzen チップを使用する際に最適化されたバイト対ペア符号化を用いて最も効果的に動作し、Windows でのサポートは限られています。ユーザーには WSL の使用を推奨します。
今後の計画としては、Python インテグレーションの改良(現在は ABI3 を使用しており、これは内部 API よりもわずかに低速)およびさらなる最適化によるハードウェア互換性の拡大が含まれます。現在知られている制限事項には、API におけるファイルシンクの欠如と SentencePiece 最適化の制限があります。最終的に、Gigatoken は精度を損なうことなく、モデルトレーニングと推論を大幅に高速化するトークナイゼーション時間を劇的に削減することを約束します。研究用途については、@software{roed2026gigatoken...} として引用されるべきです。
本文
Gigatoken:HuggingFace トークナイザ 1,000 倍高速化の代替品
Gigatoken は、言語モデル向けの最も高速なトークナイザーです。テキストデータを GB/s の速度でトークナイゼーション(文字分割)することを可能にします。
- 性能向上: HuggingFace トークナイザーと比較して約 1,000 倍高速。
- 互換性: ほぼすべての一般的なトークナイザーをカバー。
- 実用性: 即座に取り替え可能な代替品。
注釈: HuggingFace トークナイザーと
は既にマルチスレッド Rust で動作していますが、Gigatoken はそれ以上の性能を発揮します。tiktoken
特徴とベンチマーク
- 広範な対応: 幅広い CPU ハードウェアに対応。
- カバー範囲: ほぼすべての一般的なトークナイザーの形式をサポート。
- 詳細数値: スループットの具体的な数字は公式ベンチマーク結果を参照してください。
インストールと使用方法
1. 互換モード(最も簡単)
既存の HuggingFace トークナイザーや
tiktoken のコードからの変更を最小限に抑える方法です。
基本動作例 (HuggingFace)
import gigatoken as gt # HF トークナイザーを初期化 (例:...) hf_tokenizer = ... # Gigatoken ウラッパーに変換 tokenizer = gt.Tokenizer(hf_tokenizer).as_hf() # 既存の API で使用可能 tokens = tokenizer.encode_batch(["これはテスト文字列です", "そしてここがもう一つ"])
基本動作例 (tiktoken)
import gigatoken as gt # Tiktoken トークナイザーを初期化 (例:...) tiktokenizer = ... # Gigatoken ウラッパーに変換 tokenizer = gt.Tokenizer(tiktokenizer).as_tiktoken() # 既存の API で使用可能 tokens = tokenizer.encode_batch(["これはテスト文字列です", "そしてここがもう一つ"])
重要な注意点:
- 互換モードでは、HuggingFace トークナイザーの出力結果を完全に再現するように多大な努力が払われています。
- ただし、この互換性確保には一定のパフォーマンスコストがかかります。
- 1,000 倍という極限的な高速化は達成できませんが、全体的な速度向上は期待できます。
2. Gigatoken API(最高性能)
最大パフォーマンスを発揮する設定方法です。モデル名を直接指定したり、ファイルから読み込むことも可能です。
モデル名を指定して初期化する際
import gigatoken as gt # HF モデル名を受け入れます tokenizer = gt.Tokenizer("Qwen/Qwen3-8B")
テキストファイルを直接読み込む場合 (TextFileSource
)
TextFileSourceimport gigatoken as gt file_source = gt.TextFileSource(["owt_train.txt"], separator=b"