「ChatGPTに長文を貼り付けたら『文字数が多すぎます』って言われた」「APIを使ったら料金が思ったより高かった」――そんな経験、ない? AIと話すとき、裏側では「トークン」っていう単位がずっと動いてるんだけど、これを知っておくと「なんで?」がぜんぶ解決するよ。この記事を読めば、トークンのことがまるごとわかるよ。
- トークンはAIが文章を処理するときの単位で、文字数とは微妙に違うもの(日本語は1文字≒1〜2トークン)
- AIには一度に扱えるトークン数の上限があり、これをコンテキストウィンドウと呼ぶ
- APIを使うとトークン数が料金に直結するので、効率よく使うことが大切
もうちょっと詳しく
トークンは、AIがテキストを扱うための「最小単位」だよ。AIは文章を受け取るとき、まずトークナイザー(つまり文章をトークンに分解する仕組み)を通して、言葉をバラバラの部品に分ける。それぞれの部品に番号(ID)を振って、数字の列として処理するんだ。人間で言えば、文章を読むとき頭の中で「単語」や「フレーズ」ごとに意味を区切るのと似てるよ。この分け方はAIの種類によっても違って、GPTシリーズはBPE(バイト対符号化)、日本語特化モデルは日本語に最適化した方式を使っていたりする。使うAPIによって「同じ文章でも何トークンか」が微妙に変わることも覚えておくといいよ。
日本語は英語より同じ文字数でもトークン数が多くなりやすい。APIコストの見積もりは「文字数×1.5〜2」で計算すると安全!
⚠️ よくある勘違い
→ 日本語は1文字が1〜2トークンになることが多く、英語と比べてもトークン数の数え方が違う。「1000文字=1000トークン」と思って予算を立てると、実際には2倍近くかかってびっくりすることがある。
→ OpenAIの「Tokenizer」ページなど、無料で試せるツールで実際のトークン数を確認する習慣をつけると、コストの見積もりがぐっと正確になるよ。
[toc]
トークンってそもそも何? ──AIの「言葉の単位」を知ろう
AIは文章をそのまま読んでいない
ChatGPTやClaudeなどのAIに文章を送ると、AIはいきなり「文章」として理解するわけじゃないんだ。まず文章を細かいかたまりに分解して、それぞれに番号を付けて処理する。このかたまりのひとつひとつをトークンと呼ぶよ。
たとえば英語の「I like cats」は「I」「like」「cats」の3トークン。日本語の「ねこが好き」は「ね」「こ」「が」「好」「き」のように分かれることもあれば、「ねこ」「が」「好き」みたいにまとまることもある。分け方はAIの種類によって違うけど、だいたい日本語なら1文字あたり1〜2トークンになると思っておけばOK。
なぜトークンで分けるの?
ここでちょっと想像してみてほしいんだけど、外国語を勉強するとき、一文字ずつバラバラに覚えるより「単語のかたまり」で覚えるほうが早いよね。AIも同じで、意味のあるかたまりで処理したほうが効率がいいんだ。
「走る」「走り」「走った」みたいに形が変わる言葉も、トークンに分解することで「これは全部”走”が核心だ」と気づきやすくなる。コンピュータは数字が大好きだから、言葉を数字の列(トークンID)に変換して扱うのが一番速い。このトークンへの変換処理をトークナイズ(Tokenize)、つまり「トークンに変換すること」と呼ぶよ。
コンテキストウィンドウ ──AIが一度に覚えられる量
AIには「作業机」の広さがある
AIには、一度に処理できるトークン数の上限があって、これをコンテキストウィンドウ(Context Window)と呼ぶ。つまり「AIが一度に見られる文章の量」のことだよ。
わかりやすく言うと、AIの作業机みたいなもの。机が広いほどたくさんの資料を広げて作業できるけど、机が小さいと古い資料を端に追いやらないといけない。コンテキストウィンドウが狭いと、長い会話の中で「最初に言ったこと」をAIが忘れてしまうんだ。
最近のAIはどれくらい覚えられる?
2024〜2025年ごろのAIモデルのコンテキストウィンドウはこんな感じだよ。
- ChatGPT(GPT-4o):約128,000トークン
- Claude 3.5 Sonnet:約200,000トークン
- Gemini 1.5 Pro:約1,000,000トークン(100万!)
200,000トークンは日本語でだいたい10〜15万文字くらい。文庫本1冊分くらいは余裕で入るよ。でも、長い会話をずっと続けたり、大量のドキュメントを貼り付けたりすると、どんなに広い机でもいつかはいっぱいになる。上限を超えると古い情報から順番に「忘れて」しまうんだ。
入力トークンと出力トークン
コンテキストウィンドウの中には入力トークン(自分が送る文章)と出力トークン(AIが返事する文章)の両方が含まれる。つまり「質問も返答も全部合わせて上限内に収まらないといけない」ということ。長い返答をAIに書いてもらいたいときは、質問側をコンパクトにする工夫が大事になるよ。
トークンと料金の関係 ──「なんで高くなるの?」の謎を解く
APIはトークン課金が基本
ChatGPTのアプリは月額固定で使えるけど、プログラムからAIを使う場合はAPI(Application Programming Interface)、つまり「プログラム同士をつなぐ窓口」を使うことが多い。このAPIの料金は、ほとんどの場合トークン数に応じた従量課金(使った分だけ払う仕組み)になってるんだ。
たとえば「1000トークンを送って、500トークンの返答をもらった」なら、1500トークン分の料金が発生する。モデルによって単価が違って、賢いモデルほど高い。
入力と出力で料金が違う
面白いのが、入力トークンと出力トークンで単価が違うこと。一般的に出力トークンのほうが高い。なぜかというと、AIが文章を「生成する」作業は、「読む」作業より計算コストがかかるから。
スーパーのレジで例えると、商品を並べる(入力)より、店員さんが一品ずつ値段を打ち込む(出力)ほうが手間がかかるイメージ。AIが長い文章を返せば返すほど、料金が積み上がっていく仕組みなんだよ。
キャッシュで節約できることも
最近のAPIにはプロンプトキャッシュという機能があって、「同じ文章を何度も送るとき、2回目以降は割引にするよ」という仕組みが使えるものもある。たとえば毎回同じシステム指示(「あなたはカスタマーサポートの担当者です」など)を送る場合、キャッシュを使えばコストをぐっと下げられるんだ。
トークンを意識した使い方 ──賢くAIを使うコツ
なるべく短く、必要なことだけ送る
APIを使うとき、送る文章が短いほどコストが下がる。だから「背景を長々と説明してから質問する」より「結論から先に書いて、必要な情報だけ絞る」ほうが効率がいいよ。
たとえばこんな感じ。
- ❌ 長い:「先日、お客様から連絡があり、商品の返品について相談を受けました。お客様は3週間前に購入したもので、使用はしていないそうです。この場合、どのように対応すればいいか教えてください。」
- ⭕ 短い:「未使用・購入3週間の商品返品依頼への対応手順を教えて。」
意味はほぼ同じでも、トークン数はかなり違う。APIをたくさん使う場面では、この工夫が積み重なって大きな節約になるよ。
長いドキュメントは要点だけ渡す
100ページのPDFをまるごとAIに渡すと、トークンが爆発的に増えて料金も跳ね上がる。そういうときは「要点だけを抜き出してから渡す」か、「ページを分割して必要な部分だけ渡す」のがベスト。AIはコンテキストウィンドウの上限内なら全部読んでくれるけど、上限を超えた分は読んでもらえないから、どうせ全部入らないなら最初から絞ったほうがいいんだ。
出力の長さをコントロールする
「詳しく教えて」と言うと、AIはたくさん書いてくれるけどトークンも増える。「3行で教えて」「箇条書きで5点だけ」と指定すると、出力トークンが減って料金が下がるよ。使う場面に合わせて出力の長さを指定する習慣をつけると、コストのコントロールがしやすくなるんだ。
トークンを確認する方法 ──実際にやってみよう
無料で試せるツールがある
「自分の文章、何トークンあるんだろう?」って気になったら、OpenAIが公式に提供しているTokenizerというツールで確認できるよ。テキストを貼り付けると、何トークンに分解されるか色分けして見せてくれる。日本語も対応しているから、実際に試してみると「トークンってこういうものか」という感覚がつかめるよ。
APIレスポンスにトークン数が含まれている
APIを使ってプログラムを作るとき、AIからの返答の中にusage(使用量)という情報が含まれていて、「今回の入力は〇〇トークン、出力は〇〇トークンだった」とわかるようになってる。この数字を記録しておくと、コストの管理がしやすくなるよ。
- prompt_tokens:自分が送った入力のトークン数
- completion_tokens:AIが返した出力のトークン数
- total_tokens:合計のトークン数
プログラムを書くときはこの数字をログに残しておくと、「どの処理が一番トークンを使ってるか」が見えてきて、最適化のヒントになるよ。トークンを制する者がAI活用を制する、なんて言い方もできるかもしれないね。
トークナイゼーションって何?わかりやすく解説
