ChatGPTに長文を送ったら、途中で「さっき何の話してましたっけ?」みたいな返答が来た。
どうやら「トークン数」というものの上限が来たらしい。
なんとなく使うと増えるものって感覚あるけど具体的にこれってなんだろ
調べてみると、これが結構大事な概念だった。今日はそれをメモしておく。
トークンって何?
一言でいうと、AIが文章を読むときに使う「言葉のかたまり」のこと。
人間が文章を読むとき、一文字ずつじゃなくて、なんとなく単語や文節で区切って理解してる。AIも同じで、文章を丸ごとそのまま処理するんじゃなくて、まず小さなかたまり(=トークン)に分解してから読む。
英語なら、だいたい1単語が1トークンになる。
“I love AI.” → [I] [love] [AI] [.] → 4トークン
単純でわかりやすい。
ところが日本語になると、話が変わる。

日本語はなぜ損なの?
結論から言うと、同じ内容を書いたとき、日本語は英語の1.5〜2倍以上のトークン数になることが多い。(モデルによっては3倍近くなるケースもある)
なんでそうなるかというと、日本語は文字の種類が多くて複雑だから、トークンへの分解が細かくなりがち。目安としてはこんな感じ。
- ひらがな1文字 → 1〜2トークン
- 漢字1文字 → 2〜3トークン
- 英単語1つ → 約1トークン
例えば「私はAIが好きです」は、[私][は][AI][が][好き][です] と分解されて、8〜10トークンくらい消費する。英語で “I love AI.” と言えば 4トークンで済む。
同じことを言ってるのに、日本語のほうが倍近いトークンを使う。
これが何に影響するかというと、主に2つある。
損①:APIを使うとお金が割高になる
「API」は、ChatGPTやClaudeを自分のアプリやツールに組み込むときに使う仕組みのこと。料金はトークン数で決まる。
API料金 = 入力トークン数 × 単価 + 出力トークン数 × 単価
日本語で同じ量のやり取りをすると、英語より多くのトークンを消費するから、その分コストが上がる。
仕事でAIを使ったシステムを作ってると、この差がじわじわ効いてくる。「なんかAPIの請求高いな」ってなったら、まずトークン数を疑うのがSEとして正解。

損②:AIが早めに「記憶オーバー」になる
AIには一度に読める情報量に上限がある。これを「コンテキストウィンドウ」(AIの記憶量みたいなもの)と呼ぶ。
わかりやすく言うと、「このノートには最大1000トークン分しか書けない」みたいな制限がある。
英語で書いた場合と日本語で書いた場合、どちらも同じ「1000トークン分」のスペースしかないから、日本語の方が情報を少ししか詰め込めない。
AIに長文を読ませたり、長い会話をしてると、日本語の方が先にこの上限に引っかかる。上限を超えた部分は、AIにとって「見えない情報」になるから、「あれ、さっき言ってたこと覚えてないの?」ってなる。これの正体がコンテキストウィンドウの限界。

じゃあどうすればいいの?
「全部英語で使えばいいじゃん」という話になるかもしれないけど、現実問題むずい。
一番シンプルな対策は、プロンプトの言い回しを短くすること。同じ意味なら短い方がトークンの節約になる。
| 長い言い方 | 短い言い方 |
|---|---|
| 詳しい説明をしていただけますでしょうか | 詳しく説明して |
| ご確認のほどよろしくお願いいたします | 確認して |
| もう少し噛み砕いて教えてもらえますか | もっと簡単に |
日本語って丁寧な表現が多いぶん、トークンも多くなりがち。
友達に話すくらいのノリでAIに指示を出す方が、コストが下がって実は合理的だったりする。
まとめ
- トークン = AIが文章を処理するときの最小単位のかたまり
- 英語:1単語 ≒ 1トークン / 日本語:1文字 ≒ 1〜3トークン
- 同じ内容を書いたとき、日本語は英語より多くのトークンを消費する(1.5〜3倍程度、モデルによって差がある)
- APIのコストはトークン数で決まるので、日本語は割高になりやすい
- AIの「記憶量(コンテキストウィンドウ)」もトークン数で決まるため、日本語は早めに上限に達する
- 対策は「プロンプトを短くする」こと
「なんかAIが途中で忘れるな」とか「API料金が思ったより高いな」ってなったとき、今日の話を思い出してほしい。これ知ってから、ちょっとだけAIの扱いがうまくなった気がしてる。
▼前の記事もどうぞ
ブラウザと検索エンジンって何が違うの?SE2年目が全部調べ直した

コメント