ChatGPTをはじめとする生成AIについて調べていると、「入力トークン」「出力トークン」という言葉を目にすることがあります。
特にAIサービスの料金表を見ると、
- 入力トークン:○○ドル/100万トークン
- 出力トークン:○○ドル/100万トークン
といった表記があり、「トークンって何?」「文字数とは違うの?」「入力と出力でなぜ料金が違うの?」と疑問に感じる人も多いでしょう。
結論から言えば、トークンとは、AIが文章を処理するときに使う「文章の単位」のようなものです。
人間は文章を「単語」や「文字」として読むことが多いですが、AIは文章をそのまま人間と同じように扱っているわけではありません。文章を細かい単位に分割して処理しています。
そして、
AIに渡した文章 → 入力トークン
AIが生成した文章 → 出力トークン
と考えると、まずは理解しやすいでしょう。
この記事では、AI初心者の方でもイメージしやすいように、トークンの基本から料金との関係まで詳しく解説します。
そもそも「トークン」って何?
まず、「トークン」という言葉から見ていきましょう。
AIは、人間のように文章をそのまま読んで理解しているわけではありません。
たとえば、
私はAIについて勉強しています。
という文章をAIに入力したとします。
人間なら「私は」「AIについて」「勉強しています」という意味のまとまりとして自然に理解できます。
一方、AIは入力された文章を、内部で処理しやすい細かな単位に分割します。
このときに使われる単位が**トークン(token)**です。
ただし、ここで注意したいのが、
1トークン=1文字
ではないということです。
また、
1トークン=1単語
でもありません。
実際には、使用するAIモデルや言語、文章の内容などによって、どのように分割されるかが変わります。
そのため、「日本語100文字だから必ず○○トークン」と単純に計算できるものではありません。
トークンは「文章をAIが扱うための部品」と考えると分かりやすい
初心者の方は、トークンについて難しく考えすぎる必要はありません。
まずは、
トークン=AIが文章を処理するために分けた部品
と考えると分かりやすいでしょう。
たとえば人間が文章を読むとき、
「今日は天気が良いので、公園に行きます。」
という文章を、一つの文章として認識できます。
AIは内部では、この文章をそのまま一塊として扱うのではなく、処理しやすい単位に分解します。
イメージとしては、
「今日」「は」「天気」「が」「良い」「ので」「、」「公園」……
のような細かい部品に分けていく感じです。
実際の分割方法はAIモデルによって異なるため、これはあくまでイメージです。
重要なのは、
AIは文章をトークンという単位に変換して処理している
ということです。
「入力トークン」とは?
ここからが本題です。
AIに文章を入力したとき、その文章をAIが処理するために使うトークンが入力トークンです。
たとえばChatGPTに、
この記事の内容を初心者にも分かりやすく説明してください。
と入力したとします。
この文章がAI内部でトークンに分割されます。
このとき使われるトークンが「入力トークン」です。
つまり、
ユーザー → AI
の方向に送られる情報が入力トークンと考えると分かりやすいでしょう。
ただし、実際のAIサービスでは、単純に「自分が入力した文章」だけが入力トークンになるとは限りません。
ここは非常に重要なポイントです。
入力トークンには「会話の履歴」なども含まれる
ChatGPTのような会話型AIでは、現在の質問だけをAIが見ているとは限りません。
会話の流れを維持するために、過去のメッセージなどがAIに渡される場合があります。
たとえば、
ユーザー:「おすすめのパソコンを教えて」
AI:「用途は何ですか?」
ユーザー:「ゲームと動画編集です」
という会話をしているとします。
最後の「ゲームと動画編集です」という一文だけを見ても、「何について答えているのか」が分かりにくいですよね。
そこでAIは、必要に応じて過去の会話内容も参照します。
その結果、
現在の質問+会話履歴など
がAIに渡されることになります。
そのため、APIなどでAIを利用する場合には、「自分が今回入力した文章は短いのに、入力トークンが意外と多い」ということが起こる場合があります。
「出力トークン」とは?
一方、AIが回答を生成するときに使うトークンが出力トークンです。
つまり、
AI → ユーザー
の方向に生成される文章に使われるトークンです。
たとえばAIに、
日本の首都を教えてください。
と質問した場合、
日本の首都は東京です。
と回答したとします。
この「日本の首都は東京です。」に相当する部分が、AIから見た出力になります。
これをトークンとして数えたものが出力トークンです。
簡単に整理すると、
| 種類 | 意味 |
|---|---|
| 入力トークン | AIに渡す文章や情報 |
| 出力トークン | AIが生成する文章や情報 |
という関係です。
入力トークンと出力トークンを身近な例で考える
もっと簡単に考えてみましょう。
あなたがAIに、
「桃太郎の物語を1000文字程度で説明してください」
とお願いしたとします。
この場合、
あなたがAIに送った「桃太郎の物語を1000文字程度で説明してください」
が入力です。
そしてAIが、
「昔々、あるところに……」
と説明文を生成します。
こちらが出力です。
つまり、
質問・指示・資料など → 入力トークン
AIが作った回答 → 出力トークン
という関係になります。
なぜ「文字数」ではなく「トークン」なの?
ここで、
「それなら文字数で料金を決めればいいのでは?」
と思う人もいるでしょう。
確かに、人間にとっては「1000文字」のほうが分かりやすいですよね。
しかし、AIにとって文字は必ずしも処理単位として適しているわけではありません。
AIモデルは、文章をトークンという単位に分割して処理する仕組みになっています。
そのため、AIサービスの内部的な処理量を表すには、文字数よりもトークン数のほうが都合が良いのです。
また、英語、日本語、中国語など、言語によって文字や単語の構造が大きく違います。
そのため、
「1000文字=全言語で同じ処理量」
とは限りません。
トークンを使うことで、AIが実際に処理する単位に近い形で使用量を計測できます。
「1トークン=1文字」ではないので注意
トークンについて一番多い誤解が、
1トークン=1文字
という考え方です。
これは正しくありません。
また、
1トークン=1単語
というわけでもありません。
トークンは、AIモデルが文章を処理するための独自の単位です。
そのため、
- 英語では単語の一部になる場合がある
- 日本語では文字や文字列などがまとまりになる場合がある
- 記号や数字もトークンとして扱われる
- 同じ文字数でも文章によってトークン数が変わる
といったことがあります。
したがって、
「○文字だから○トークン」と完全に正確な換算をすることは難しい
と覚えておくとよいでしょう。
日本語はトークン数が多くなりやすい?
AIサービスについて調べていると、
「日本語は英語よりトークンを多く消費する」
という説明を見かけることがあります。
これは、ある程度その傾向があります。
ただし、すべてのAIモデルで同じ割合になるわけではありません。
AIモデルによってトークン化の仕組みが異なるからです。
また、日本語と英語では文章の構造も違います。
例えば英語では、
I like computers.
のように単語がスペースで区切られています。
日本語では、
私はパソコンが好きです。
のように、基本的に単語と単語の間にスペースを入れません。
こうした違いもトークン化に影響します。
そのため、
「日本語は必ず英語の○倍のトークンになる」
と決めつけるのは適切ではありません。
AIサービスを利用するときには、使用しているモデルのトークナイザーによって実際のトークン数が変わると考えておきましょう。
入力トークンと出力トークンでは料金が違うことがある
AIのAPI料金表を見ると、
入力トークン
と
出力トークン
で料金が別々に設定されていることがあります。
例えば仮に、
- 入力:100万トークンあたり1ドル
- 出力:100万トークンあたり5ドル
という料金設定だったとしましょう。
この場合、入力よりも出力のほうが5倍高いことになります。
なぜでしょうか?
AIが回答を生成するには、単に入力された文章を受け取るだけではなく、モデルが計算を行いながら一つずつ出力を生成していく必要があるからです。
そのため、AIサービスによっては出力トークンのほうが高く設定されています。
もちろん、料金体系はサービスやモデルによって異なります。
「出力トークンは必ず入力トークンより高い」わけではありません。
ここも注意してください。
長い回答をAIに書かせるほど出力トークンが増える
これはAIを使ううえで非常に分かりやすいポイントです。
例えば、
「AIについて100文字で説明してください」
と頼む場合と、
「AIについて5000文字で詳しく説明してください」
と頼む場合では、当然ながら後者のほうがAIが生成する文章は長くなります。
その結果、出力トークンも増える傾向があります。
つまり、
短い回答 → 出力トークンが少ない
長い回答 → 出力トークンが多い
という関係です。
APIを使ってAIサービスを開発する場合などでは、これは料金に直接関係してきます。
入力が長くてもトークンは増える
出力だけではありません。
AIに大量の文章を読ませれば、入力トークンも増えます。
例えば、
「この100ページの資料を読んで要約してください」
という使い方を考えてみましょう。
AIに渡す資料が長くなるほど、AIが処理する入力トークンも増えます。
さらにAIが長い要約を作れば、今度は出力トークンも増えます。
つまり、
長い資料+長い回答
という使い方では、入力・出力の両方が増える可能性があります。
AIの「コンテキストウィンドウ」とも関係している
トークンを理解すると、AIについてよく出てくるもう一つの言葉も分かりやすくなります。
それが、
コンテキストウィンドウ
です。
簡単に言えば、
AIが一度に扱える情報量の上限
のようなものです。
例えば、あるAIモデルが「100万トークン」のコンテキストに対応しているとします。
これは、
「100万文字まで入力できる」
という意味ではありません。
100万トークン分の情報を扱える
という意味です。
ここでも「文字数」と「トークン数」を混同しないことが重要です。
会話が長くなるとどうなる?
ChatGPTのような会話型AIを長く使っていると、
「最初に話したことをAIが覚えているように感じる」
ことがあります。
これは、会話の文脈をAIが参照しているためです。
ただし、AIモデルには扱えるコンテキスト量に上限があります。
会話が非常に長くなれば、AIが処理する情報量も増えていきます。
そのため、AIサービスでは会話履歴の扱い方を工夫したり、古い情報を要約したりするなど、さまざまな仕組みが使われています。
ここでもトークンが重要な役割を持っています。
「100万トークン」と聞くとものすごく多く感じる
AIサービスの料金表では、
100万トークン
という数字をよく見かけます。
初めて見ると、
「100万文字?」
「そんなに使うの?」
と思ってしまうかもしれません。
しかし、100万トークンと100万文字は同じではありません。
また、一般的な個人利用で毎回100万トークンを消費するわけでもありません。
