Token Counter
v0.1.02026年9月26日 に追加サンプルデータOpenAI 互換のエンコーディング(cl100k_base、o200k_base)で BPE トークン数を数えます。トークンの一覧は作りません。
cargo install kura-rs
kura add token-counter3 個のソースファイルを自分のプロジェクトにコピーします。以後、コードはあなたのものです。
別のツールの kura コマンドとぶつかる場合は、cargo install kura-rs --bin kura-rs で入れて kura-rs add を使ってください。
use crate::parts::token_counter::{Encoding, count};
let n = count(Encoding::O200kBase, &prompt);
assert!(n <= 128_000, "prompt too long: {n} tokens");検証
サンプルデータtiktoken 0.9.0(Python)と差分テストで比較しました。同じ入力を両方の実装に与え、出力を突き合わせています。
参照実装
tiktoken
Python 0.9.0
テストケース
5,000
差分テスト
成功
5,000 / 5,000
すべて一致
最終実行
2026年9月26日
UTC
この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。
ベンチマーク
サンプルデータ入力サイズごとに kura-rs(Rust)と tiktoken を比べています。 入力が約 1,285 件を超えると速い。最大 1.7× 速い。
この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。
kura-rs (Rust)tiktoken
数値の表を見る
| 入力サイズ | kura-rs (Rust) | tiktoken | 倍率 |
|---|---|---|---|
| 100 | 0.05 ms | 0.03 ms | 1.7× 遅い |
| 1,000 | 0.31 ms | 0.3 ms | 1.0× 遅い |
| 10,000 | 2.6 ms | 3.4 ms | 1.3× |
| 100,000 | 24 ms | 36 ms | 1.5× |
| 1,000,000 | 235 ms | 390 ms | 1.7× |
ファイル
- parts/token_counter/mod.rs
- parts/token_counter/bpe.rs
- parts/token_counter/ranks.rs