AIの料金表を見ると、たいてい「100万トークンあたり◯ドル」と書かれています。文字数でも単語数でもありません。
このトークンという単位が、日本語で使う人にとって不利に働きます。同じことを書いても、英語より多く消費するからです。
トークンとは何か
言語モデルは文章をそのまま扱っているわけではありません。まず細かい断片に切り分け、それぞれを数値に置き換えてから処理します。この断片がトークンです。
切り方は文字単位でも単語単位でもなく、その中間にあります。よく出てくる文字の並びは1つのトークンにまとまり、珍しい並びは細かく分かれる。学習データに頻出する形ほど、少ないトークンで表せる仕組みです。
英語なら、ありふれた単語はだいたい1語で1トークンに収まります。だから料金の見積もりは単語数から概算できる。
日本語がどれだけ不利か、数えてみる
同じ意味の日本語と英語の文を8組用意して、実際にトークン数を数えました。使ったのは o200k_base という区切り方です。
| 日本語 | トークン | 英語 | トークン | 比 |
|---|---|---|---|---|
| 17字 | 8 | 33字 | 8 | 1.00 |
| 21字 | 15 | 65字 | 10 | 1.50 |
| 22字 | 19 | 65字 | 12 | 1.58 |
| 24字 | 16 | 63字 | 12 | 1.33 |
| 26字 | 21 | 76字 | 13 | 1.62 |
| 27字 | 22 | 58字 | 12 | 1.83 |
中央値は1.46倍でした。同じことを伝えるのに、日本語は英語のおよそ1.5倍のトークンを使います。
1トークンあたりの文字数を出すと、差の理由が見えます。
| 言語 | 1トークンあたり |
|---|---|
| 日本語 | 1.49文字 |
| 英語 | 5.38文字 |
英語は1トークンで5文字ぶん運べるのに、日本語は1.5文字しか運べない。日本語のほうが1文字あたりの情報量が多いので最終的な差は1.5倍程度に収まっていますが、それでも差は残ります。
なぜこうなるのか
区切り方は学習データから作られます。そして学習データの大半は英語です。
英語で頻出する綴りは効率よくまとめられる一方、日本語は漢字1文字が1トークン、あるいは1文字が複数のトークンに割れることさえある。ひらがなの連なりもまとめられにくい。
表のいちばん上の例だけ比が1.00になっているのは、「こんにちは」のような定型のあいさつがまとめて1トークンに収まっているからです。よく出てくる形は効率がよい。逆に言えば、珍しい言い回しほど不利になります。
見積もるときの目安
実務で概算するなら、日本語は1文字あたり0.67トークンで計算すると近い値になります。2文字で1.3トークンくらい。
3,000字の記事を書かせるなら、出力はおよそ2,000トークン。10,000字の資料を読ませるなら、入力はおよそ6,700トークン。この感覚を持っておくと、料金表を見たときに額が想像できます。
ただし正確な数はモデルの区切り方によって変わります。厳密に知りたいときは、提供元が用意している計算ツールで実際の文章を数えるのが確実です。
入力と出力で単価が違う
もうひとつ押さえておきたいのが、入力と出力で単価が別に設定されていることです。出力のほうが数倍高いのが普通です。
長い資料を読ませること自体は、それほど高くつきません。費用が膨らむのは、長い文章を書かせるときのほうです。
多くのサービスには、キャッシュ入力という枠もあります。同じ内容を繰り返し渡す場合、2回目以降が安くなる仕組みです。同じ長い指示書を毎回頭に付ける使い方なら、ここが効きます。
英語で指示を書くと安くなるのか
ここまで読むと、指示を英語で書けば安くなるように思えます。入力の部分だけを見れば、そのとおりです。
現実にはそう単純に得をしません。理由が3つあります。
ひとつは、費用の大半が出力側で発生すること。日本語で答えさせるなら、指示を英語にしても出力の量は変わりません。単価も出力のほうが高い。
ふたつめは、指示の精度が落ちる危険です。英語で書いたつもりのニュアンスが伝わらずやり直しになれば、その分の費用がまるごと無駄になります。1回の指示で数十トークン節約しても、生成をやり直せば帳消しです。
みっつめが、書く時間。慣れない言語で指示を練る時間のほうが、節約できる金額より高くつきます。
効くのは、同じ長い指示書を何千回も送るような自動処理の場合だけでしょう。手で対話しているうちは、日本語のままで構いません。
会話が長くなると料金が増える理由
見落とされやすい点があります。
対話型のAIは、やりとりのたびにそれまでの会話全体を入力として送り直しています。モデルは前回の内容を覚えていないので、毎回渡すしかない。
10往復した会話の11回目は、直近の1文だけでなく、それまでの10往復ぶんも一緒に送られます。会話が伸びるほど1回あたりの入力が増えていく。
用件が変わったら新しい会話を始めるほうが、費用の面でも精度の面でも有利です。関係のない過去のやりとりを毎回読ませても、いいことはありません。
出典
トークン数は tiktoken の o200k_base で実際に数えたものです。同じ意味の日本語と英語の文を8組用意し、その結果を掲載しています。

