piapia123
ja

GPT トークナイザー(cl100k_base の本物 BPE)

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

これは本物の BPE トークン化で、「4 文字で 1 トークン」といった概算ではありません。概算は英文の散文ではたまたま近いものの、中国語(1 文字がしばしば 1〜2 トークン)、コード(インデントや記号の切り方は BPE 次第)、課金とコンテキスト予算(数え間違えたトークンがそのまま費用)では必ず外します。 公式の cl100k_base 規則に従います。tiktoken の分割正規表現でテキストを断片に分け、各断片について「rank が最小の隣接ペアを結合」し、rank をトークン id に戻します。したがって結果は OpenAI 公式と一致します —— `"hello world"` は `[15339, 1917]`、`"你好"` は `[57668, 53901]`。 語彙(約 1 MB)はこのページだけ必要時に読み込み、展開はブラウザ内蔵の `DecompressionStream` で行います。外部ライブラリも通信も不要です。処理はすべてブラウザ内で完結し、貼り付けたテキストはページから出ません。

機能

  • 本物の BPE:公式 cl100k_base の分割正規表現 + 最小 rank ペアの結合
  • 各トークンの id とテキストを行ごとに表示
  • 漢字が 2 トークンに分かれる場合、UTF-8 の途中は文字化けではなく 16 進で表示
  • トークン数・文字数・UTF-8 バイト数を表示
  • 「バイト/トークン」比を算出(課金やコンテキスト見積もりに便利)
  • 中国語・英語・コードを公式規則で分割
  • 語彙はこのページのみで読み込み、他のページを重くしない

使い方

  1. トークン化したいテキストを貼り付けます
  2. トークン数・文字数・バイト数がすぐ表示されます
  3. 下に各トークンの id とテキストが並びます
  4. 不要なら一覧やバイト表示をオフにできます

よくある質問

本物のトークン化ですか、概算ですか?
本物です。cl100k_base の完全な BPE 語彙(約 1 MB)を読み込み、tiktoken の公式規則で分割・結合するため、OpenAI 公式とトークン単位で一致します。`"hello world"` → `[15339, 1917]`、`"你好"` → `[57668, 53901]` で確認できます。
「你好世界」が 2 ではなく 5 トークンなのはなぜ?
cl100k_base には「你」「好」のような単字トークンしかなく、「世界」は 1 トークンではありません。`3574 244 98220` に分割されます(`3574` は「世」の最初の 2 バイトなので 16 進表示)。`[57668, 53901]` は「你好」の結果です —— この二つは混同しやすい例です。
GPT-4o の o200k_base に対応しますか?
現在は cl100k_base(GPT-3.5 / GPT-4 が使うもの)のみです。持っていない語彙を持っているとは言いません。別の語彙はさらに約 1 MB のデータを伴うため、必要になった時点で追加します。
通信しますか?
しません。語彙はページに同梱され、展開はブラウザ内で行います。入力したテキストは端末内の計算にのみ使われ、どこにも送信されません。

関連ツール