Dev & Code 3 h agoブックマークに追加
マルセル・ロエドは、*GigaToken* を公開しました。これは言語モデル用のトークナイザーで、参考実装に比べて約3桁の性能向上を主張しています。最適化された点を振り返ります。
言語モデルを事前学習するか、またはファインチューニングのために数テラバイトのテキストデータセットをエンコードする必要があります。テキストの生データを数値識別子に変換するトークナイザーは、しばしば見えないボトルネックです。参考実装では、大規模コーパスでモデルのフォワードパスと同じくらいの時間を消費することがあります。
GigaTokenは、Marcel RoedがGitHubに公開したもので、通常のBPE(バイトペアエンコーディング)トークナイザーの参考実装に比べて~1000倍の性能を誇ります。これは真剣に受け止めるべき数字です。たとえ1桁のオーダーであっても、単一のマシンで可能なことを変えます。
BPEトークナイザーは3つのことを行います:
t + h → th、その後th + e → the)。大規模な性能向上は、以下の複数の要因が組み合わさった結果です:
tokenizersの純Python版や最初のtiktoken)は、各ステップでルールのリストを走査します。最適化された実装(Rustのtiktokenなど)は、事前計算されたマージツリーと優先度付きキューを使用して、アクティブなペアのみを処理します。GigaTokenはさらにこの論理を進めます。トークナイザーは華やかではありません。論文では目立たず、ほとんどの人はO(無料)で動作すると仮定しています。しかし、数兆トークン規模のトレーニングコーパス(Llama 3、DeepSeek V3など)を準備する場合、トークナイザーの10倍の性能向上は、数週間のコンピューティング時間を節約することになります。
性能向上が重要な具体的な事例:
高速なトークナイザーは、正確なトークナイザーに取って代わるものではありません。使用前に確認すべき点:
オープンソースのLLMエコシステムは、「配管」層を成熟させつつあります。インファレンスサーバー(vLLM、TGI、llama.cpp)、トレーニングフレームワーク(Megatron、DeepSpeed)に続いて、データブリックのパフォーマンスレベルでの再記述が行われています。GigaTokenは、tiktoken-rs、arrow-rs、Pythonで動作していたものをRustやC++でシステム的に再記述する動きの一部です。
覚えておくべきこと
本記事は人工知能により作成され、人間の編集管理のもとで校閲されています。