同じ内容を書いても、日本語は1トークンあたり1.22字、英語は4.79字でした。1文字あたりの重さが4倍近く違います。
文字数から見積もると外れます。実際に数えたところ、種類によって誤差は0%から175%まで開きました。
同じ内容を日本語と英語で書き、実際に数えました。1文字あたりの重さが大きく違います。
トークン使用量追跡で扱う数字の中身を、実際に数えて確かめました。使ったのは同じ内容を日本語と英語で書いた5組です。
数え方は推測ではありません。実際に使われている符号化の仕組みを入れて、そのまま数えました。
import tiktoken
ENC = tiktoken.get_encoding('o200k_base')
def count(s):
return len(ENC.encode(s))
日本語 英語 文字数 トークン 1トークンあたり 文字数 トークン 1トークンあたり トークン比 31字 25 1.24字 84字 20 4.20字 1.25倍 31字 26 1.19字 99字 21 4.71字 1.24倍 32字 27 1.19字 103字 23 4.48字 1.17倍 22字 20 1.10字 83字 15 5.53字 1.33倍 26字 18 1.44字 81字 15 5.40字 1.20倍 合計: 日本語 142字 / 116トークン、英語 450字 / 94トークン 日本語は英語の 1.23倍のトークンを使う(同じ内容) 1トークンあたりの文字数: 日本語 1.22字・英語 4.79字
上の表を見てください。日本語は1トークンあたり1.22字、英語は4.79字でした。
この数字は2通りに読めます。1文字あたりで見ると、日本語は英語の4倍近く重いということです。
一方で日本語は文字数そのものが少なくて済みます。同じ内容で142字と450字でした。差し引きすると、トークン数の差は1.23倍まで縮みます。
同じ文でも、使う符号化の版によって数が変わります。実際に測ったところ25.9%減りました。
文 cl100k_base o200k_base 宿泊費の上限は1泊12000… 34 25 出張報告書は帰着後3営業日以… 39 26 海外出張の渡航前の承認は、海… 28 20 The accommodat… 20 20 The trip repor… 21 21 合計: cl100k_base 212トークン / o200k_base 157トークン
英語の行は20と20、21と21で変わっていません。減っているのは日本語だけです。
1文字あたりの重さが4倍近く違う。
呼び出しごとに使ったトークン数を記録して、あとから分解できるようにします。費用と待ち時間の両方に効く数字です。
トークン使用量追跡は、呼び出しごとに使ったトークン数を記録して把握する取り組みです。
トークンは、文章を機械が扱う単位に切ったものです。数えるための道具も公開されていて、OpenAIのモデルで使うための高速な符号化器だと説明されています。
文字とは一致しません。前の節の実測でも、日本語では1トークンが1.22字、英語では4.79字でした。
4番目が抜けやすい項目です。合計だけ分かっても、どこを削ればよいか決まりません。
多くの場合、呼び出しの返り値に使用量が入っています。自分で数え直す必要はありません。
自分で数えるのは、送る前に量を見積もりたいときです。渡せる上限を超えないか確かめる場面で使います。
使ったのは公開されている符号化器で、実際に課金される数と一致する保証はありません。提供元やモデルによって使う版が違います。ここで見せているのは、言語と文章の種類によって1文字あたりの重さが変わるという関係です。費用への効き方はコスト監視の記事で扱います。
tiktoken is a fast BPE tokeniser for use with OpenAI's models.原文tiktoken README この内容の有効期限2027-02-18
1つの係数で換算すると、文章の種類によって大きく外れます。実際に数えるほうが確実です。
トークン使用量追跡を始める前に、文字数から見積もろうとすることがあります。どれだけ外れるかを実際に数えました。
種類 文字数 実際のトークン 1文字=1トークンと見た場合の誤差 規程の条文 31字 25 +24.0% かな中心の文 38字 29 +31.0% 漢字中心の文 17字 16 +6.2% 数字が多い文 46字 33 +39.4% 英数字混じり 66字 24 +175.0% 記号が多い文 31字 25 +24.0% 短い文 5字 5 +0.0% 箇条書き 23字 20 +15.0% 種類 1トークンあたりの文字数 規程の条文 1.24字 かな中心の文 1.31字 漢字中心の文 1.06字 英数字混じり 2.75字
上の表を見てください。誤差は0%から175%まで開きました。1つの係数では合いません。
いちばん外れたのは英数字が混じる文で、1トークンあたり2.75字でした。かな中心の文の1.31字と2倍以上違います。
業務の文書には、製品名・URL・識別子がよく混じります。この帯があるので、平均の係数を当てても外れます。
符号化器は元に戻せる作りになっています。元に戻せて情報が落ちないので、トークンから元の文へ戻せると説明されています。
つまり数えることに曖昧さはありません。見積もるより、実際に数えるほうが速くて正確です。
桁を知りたいだけなら見積もりで足ります。月に何万トークンか、何億トークンかを判断する場面です。
上限に収まるかを判断する場面では使えません。175%の誤差があると、超えるかどうかが決まりません。
文章の種類で、1トークンあたりの文字数が倍以上違う。
It's reversible and lossless, so you can convert tokens back into the original text原文tiktoken README この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る