パフォーマンス¶
v0.1系列で各処理が実行される場所¶
処理 |
実行経路 |
|---|---|
バイナリwheelでの正規SHA-256 |
Rust |
|
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系列では代表スループット値を公表していません。
高スループットの経路ではネイティブプロファイルを使い、プラグイン処理をバッチ化し、項目ごとのネットワークポリシーを避けてください。トークン化だけでなく、アプリケーション全体のパイプラインを測定します。