パフォーマンス

v0.1系列で各処理が実行される場所

処理

実行経路

バイナリwheelでの正規SHA-256

Rust

o200k_basecl100k_baseのバッチトークン化

Rustで並列実行。ネイティブ処理中はGILを保持しない

Hugging Face tokenizer JSONによるバッチ計数

Rust

フレームのプランニングと変換

Pythonのイミュータブルなプランナー

Pythonトークナイザープラグイン

バッチ対応のPythonコールバック。GILを保持する場合がある

DataFusion

Rustセッションは公開されているが、Pythonのフレームプランはまだ実行しない

アーキテクチャは、ネイティブ実行をさらに拡大できるよう意図的に設計されています。ただし、ドキュメントとベンチマークでは将来の経路ではなく、現在の実行経路を説明する必要があります。

トークンキャッシュ

トークン数は、トークンプロファイルのフィンガープリントとコンテンツハッシュをキーとしてプロセス内にキャッシュされます。v0.1系列では、最大100,000件のプロセスローカルなメモリ内LRUキャッシュです。ワーカー間では共有されず、永続化もされません。

古い計数結果が使われないよう、トークナイザーの語彙、エンベロープ規則、プラグイン設定を変更した場合は、フィンガープリントも変更する必要があります。

ベンチマーク方針

リポジトリでは、Criterionを使ってハッシュ計算とネイティブトークン化をベンチマークします。CIは同一のrunnerで基準リビジョンと変更後のリビジョンを比較し、設定されたベンチマーク群で10%を超える性能低下を拒否します。

この基準は性能低下を検知するための指標であり、普遍的なスループット性能を示すものではありません。本番性能は、ペイロードサイズ、選択したトークナイザー、キャッシュヒット率、Pythonコールバック、マシンのアーキテクチャに左右されます。ハードウェアとコーパスの詳細を含むバージョン管理されたベンチマーク報告をまだ維持していないため、v0.1系列では代表スループット値を公表していません。

高スループットの経路ではネイティブプロファイルを使い、プラグイン処理をバッチ化し、項目ごとのネットワークポリシーを避けてください。トークン化だけでなく、アプリケーション全体のパイプラインを測定します。