ChatGPTのトークンとは?数え方と上限を解説
ChatGPTのトークンとは何なのか調べていると、文字数、トークン数の数え方、日本語と英語の違い、トークン上限、コンテキストウィンドウ、API料金など、聞き慣れない言葉が次々に出てきますよね。
トークンを単純に文字数の言い換えだと思っていると、長文を送ったのに一部しか反映されない、回答が途中で止まる、APIの料金が想定より高くなるといった場面で混乱しやすくなります。ChatGPTは、入力した文章をそのまま文字数で処理しているわけではありません。
また、日本語は何文字で何トークンになるのか、無料版と有料版では上限が違うのか、公式Tokenizerを使えば正確に調べられるのかも気になるところです。ただし、トークンの分割方法や上限はモデルによって異なるため、固定の換算式だけで考えるのはおすすめできません。
この記事では、ChatGPTのトークンと文字数の違いから、日本語と英語の数え方、入力トークンと出力トークン、上限を超えにくい長文の扱い方まで、初めて調べる方にもわかる順番で解説します。
- ChatGPTが文章を処理する仕組み
- 文字数とトークン数が一致しない理由
- トークン上限やAPI料金との関係
- 長文を安定して扱うための整理方法
ChatGPTのトークンとは何か
ChatGPTのトークンを理解するうえで、最初に押さえたいのは、トークンが文字や単語と必ずしも一致しないという点です。まずは、どのような単位で文章が分けられ、入力から回答までにどう使われているのかを整理します。
トークンと文字数の違い
ChatGPTにおけるトークンとは、モデルが文章を処理するときに使う文字列のまとまりです。短い場合は1文字、長い場合は単語全体、場合によっては単語の一部分が1つのトークンになります。
人間は文章を読むとき、「今日」「は」「天気」「が」「いい」のように意味のある言葉を意識します。一方、ChatGPTは文章をモデル専用の方法で分割し、それぞれをトークンIDと呼ばれる数値に変換して処理します。
トークンは文字数を別の呼び方にしたものではありません。文字、単語、記号、空白などを一定の規則で分割した、モデル向けの処理単位です。
たとえば、同じ10文字の文章でも、使われている漢字、ひらがな、英数字、記号によってトークン数が変わります。反対に、文字数が多くても、モデルがよく扱う文字列のまとまりであれば、比較的少ないトークンに分割されることがあります。
| 比較する単位 | 意味 | 特徴 |
|---|---|---|
| 文字数 | 画面上にある文字の数 | 人間が数えやすい |
| 単語数 | 文章に含まれる言葉の数 | 英語では比較しやすい |
| トークン数 | モデルが処理する文字列の数 | モデルや分割方式で変わる |
つまり、500文字の日本語が必ず500トークンになるわけではなく、1,000文字なら必ず2倍になるとも限りません。文章の内容が変われば、同じ文字数でもトークン数は変化します。
トークンという言葉を見たときは、文字数ではなく、ChatGPTが読み書きするために文章を分割した単位と捉えるとわかりやすいですよ。

日本語と英語の数え方
ChatGPTのトークン数を調べる際、日本語と英語では分割され方に違いがあります。英語は空白で単語が分かれているため、単語単位で処理されるように見えますが、実際には長い単語や珍しい表現が複数のトークンに分割されることがあります。
OpenAIの公式案内では、英語に関する一般的な目安として、1トークンは約4文字、または約0.75単語と説明されています。逆に考えると、英単語1語が必ず1トークンになるわけではありません。
日本語には、英語のように単語ごとの空白がありません。さらに、ひらがな、カタカナ、漢字、英数字、句読点が混在するため、文章によって分割結果が大きく変わります。
日本語は1文字につき1~3トークンと説明されることがありますが、これは固定ルールではありません。モデル、エンコーディング、文章の内容によって変わるため、あくまで大まかな傾向です。
たとえば、同じ意味を伝える日本語と英語を比較すると、日本語の方が多くのトークンを使う場合があります。ただし、翻訳後の文章量や表現によって結果は変わるので、日本語は必ず英語の何倍になると断定することはできません。
また、新しいモデルでは日本語を含む多言語の分割効率が改善されることもあります。以前のモデルで測定したトークン数が、現在利用しているモデルでも同じになるとは限りません。

そのため、普段ChatGPTを使うだけなら、細かな換算式を暗記する必要はありません。APIの費用計算や大量の文章処理など、正確なトークン数が必要な場面だけ、対象モデルに対応したツールで確認する方法が確実です。
単語や記号の分割ルール
トークンは、辞書に載っている単語だけで構成されるわけではありません。モデルが使用するトークナイザーは、学習データに含まれる文字列の出現傾向などをもとに、文章を効率よく扱えるまとまりへ分割します。
よく使われる短い英単語は1トークンになることがありますが、長い専門用語や固有名詞は複数のトークンに分かれる場合があります。日本語でも、1つの漢字が単独で処理される場合もあれば、複数の文字がまとまる場合もあります。
トークン数に影響する主な要素は次のとおりです。
- ひらがな、カタカナ、漢字
- 英単語や略語
- 句読点や括弧などの記号
- 半角スペースや改行
- 絵文字や特殊文字
- URLやメールアドレス
- プログラムコードやインデント
ここで注意したいのは、句読点1個が必ず1トークン、改行1回が必ず1トークンというような単純な規則ではないことです。空白や記号が前後の文字列とまとめて処理される場合もあります。
絵文字も同様です。見た目は1文字でも、内部では複数のUnicode文字を組み合わせて表示している絵文字があります。その場合、画面上では1文字に見えても、複数のトークンへ分割される可能性があります。
URLやプログラムコードは、スラッシュ、ピリオド、括弧、記号、改行などが多いため、見た目の文字数よりも細かく分割されやすい傾向があります。コードを質問するときは、関係のないファイル全体を貼るより、エラーに関係する部分を絞った方が扱いやすいですよ。
特定の文章について、モデル名を示さずに何トークンと断定することはできません。同じ文章でも、使用するモデルやエンコーディングによって結果が変わる可能性があります。
入力と出力で使うトークン
ChatGPTでは、あなたが送信した質問だけがトークンを使うわけではありません。モデルへ渡される情報と、モデルが生成する回答の両方でトークンが使われます。
APIでは、利用者が送信する文章を入力トークン、モデルが生成する文章を出力トークンとして区別するのが一般的です。古い資料では、入力をプロンプトトークン、出力をコンプリーショントークンと呼んでいる場合もあります。
| 種類 | 主な内容 | 増えやすい場面 |
|---|---|---|
| 入力トークン | 質問、指示、会話履歴、添付情報 | 長文資料やコードを送るとき |
| 出力トークン | ChatGPTが生成した回答 | 長い記事や詳細な解説を依頼するとき |
| キャッシュ入力 | 再利用された共通の入力部分 | APIで同じ前提を繰り返すとき |
通常のChatGPTでは、入力欄に書いた今回の質問だけでなく、同じチャット内の過去のやり取り、システム側の指示、カスタム設定、添付ファイルの内容なども処理対象になる場合があります。
そのため、短い質問を送っているのに回答が不安定になるときは、今回の質問ではなく、そこまでに積み重なった会話履歴が影響している可能性があります。
また、回答の長さにも上限があります。大きなコンテキストウィンドウを持つモデルであっても、その全容量を1回の回答に使えるとは限りません。入力できる上限と、1回で生成できる最大出力は分けて考える必要があります。
入力できる量が多いことと、長い回答を一度に出せることは同じではありません。ここを分けて考えると、長文が途中で止まる理由を理解しやすくなります。
コンテキストウィンドウの意味
コンテキストウィンドウとは、モデルが1回の処理で参照できる情報量の範囲です。日本語では文脈窓やコンテキスト長と表現されることもあります。
コンテキストウィンドウには、現在の質問だけでなく、会話履歴、システム指示、添付した文章、ツールから返された情報、生成する回答などが含まれます。モデルによっては、回答を作るための内部処理に使われる領域も考慮する必要があります。
たとえば、コンテキストウィンドウを大きな机だとします。机の上には、質問文、過去の会話、参考資料、回答を書くための空きスペースが必要です。参考資料だけで机を埋めてしまうと、回答を作るための余裕が少なくなります。

会話が長くなった際に起こる問題は、単純に古い文章が順番に消えることだけではありません。製品側で文脈が管理されたり、一部の情報が優先されたりする場合もあり、どの文章がどの程度参照されるかを利用者が完全に把握することは困難です。
なお、コンテキストウィンドウとChatGPTのメモリ機能は別の仕組みです。コンテキストウィンドウは現在の回答に使える作業範囲で、メモリは好みや継続的な情報を別の会話でも活用するための機能です。
記憶の違いを詳しく整理したい場合は、ChatGPTはどこまで覚えているかを解説した記事も参考にしてください。
メモリに保存されているからといって、過去の会話全文が毎回そのまま読み込まれるわけではありません。重要な作業条件は、そのチャット内でも明確に伝える方が安全です。
ChatGPTのトークンとは何に関係するか
トークンは、文章の分割方法を説明するだけの専門用語ではありません。入力できる情報量、回答の長さ、長文処理の安定性、API料金など、ChatGPTを使うさまざまな場面に関係します。ここからは、実際の利用で困りやすいポイントを見ていきましょう。
モデルごとのトークン上限
ChatGPTやOpenAI APIで利用できるトークン数の上限は、モデルごとに異なります。すべてのChatGPTに共通する最大トークン数が1つだけ決まっているわけではありません。
古い記事では、ChatGPTの上限は4,096トークン、無料版は8,000トークン、有料版は32,000トークンなどと書かれていることがあります。しかし、これらは特定の時期や旧モデルを前提にした数値であり、現在のChatGPT全体へそのまま当てはめることはできません。
現在は、選択するモデル、回答モード、契約プラン、利用する機能などによって、扱える文脈の範囲が変わります。OpenAI APIには100万規模のコンテキストウィンドウを持つモデルもありますが、それがChatGPTの各プランで同じ条件のまま使えることを意味するわけではありません。
| 確認対象 | 見るべき項目 | 注意点 |
|---|---|---|
| ChatGPT | プラン、モデル、モード | 利用条件が動的に変わる場合がある |
| OpenAI API | コンテキストと最大出力 | モデルページごとに仕様が異なる |
| 古い解説記事 | 公開日と対象モデル | 旧モデルの数値が残っている場合がある |
もう1つ大切なのが、コンテキストウィンドウと最大出力トークンを区別することです。コンテキストウィンドウが大きくても、1回の回答で出力できるトークン数には別の上限が設定されます。
また、表示されている上限をすべて利用者の文章だけで使えるとも限りません。システム指示や会話履歴、添付ファイル、ツールの結果なども領域を使うため、実際に貼り付けられる文章量には余裕を持たせた方が安全です。
ChatGPTの回答が途中で止まる原因を詳しく知りたい場合は、ChatGPTで文章が途切れる原因と対策も確認してみてください。
モデル名、コンテキスト上限、利用回数、プラン条件は変更される可能性があります。正確な情報は公式サイトをご確認ください。
トークン数を調べる方法
文章の正確なトークン数を調べたい場合は、OpenAIが提供するTokenizerや、Python向けのtiktokenを使用します。文字数から暗算するより、対象モデルに対応した方法で計測する方が確実です。
公式Tokenizerで確認する
プログラミングを使わずに確認したい場合は、OpenAIの公式Tokenizerがわかりやすいです。入力欄へ文章を貼り付けると、テキストがどのようなまとまりに分割されるかを視覚的に確認できます。
基本的な流れは次のとおりです。
- Tokenizerを開く
- 使用するモデルやエンコーディングを選ぶ
- 確認したい文章を貼り付ける
- 表示されたトークン数を確認する
モデルを選べる場合は、実際に使用するモデルに近いものを指定してください。別のエンコーディングで計測すると、実際のAPI処理と結果が異なる可能性があります。
Pythonのtiktokenで数える
多数の文章をまとめて調べたい場合や、APIへ送信する前に自動でチェックしたい場合は、Pythonライブラリのtiktokenが便利です。
import tiktoken
model_name = "使用するモデル名"
text = "トークン数を確認したい文章"
encoding = tiktoken.encoding_for_model(model_name)
tokens = encoding.encode(text)
print(len(tokens))ただし、モデル名やライブラリの対応状況は更新されます。新しいモデルを指定した際にエラーが出る場合は、公式ドキュメントで対応するエンコーディングを確認してください。
ChatGPT本人に数えさせる場合の注意
ChatGPTへ、この文章は何トークンですかと質問する方法は、正確な計測には向きません。ChatGPTは文章の内容を説明できますが、自分が内部で使用したトークン列を常に正確に取得して回答しているわけではないからです。
大まかな目安を知る用途には使えても、API料金の見積もりや上限判定では、Tokenizerやtiktokenの結果を優先してください。
通常のChatGPT利用では、毎回トークン数を測る必要はありません。大量の文章、コード、API処理など、上限や費用が問題になる場面で確認すれば十分です。
API料金とトークンの関係
OpenAI APIでは、処理したトークン数が料金計算に使われます。一般的には、入力トークン、キャッシュ入力トークン、出力トークンで単価が分かれています。
ここで注意したいのが、ChatGPTの月額プランとOpenAI APIは別のサービスだという点です。ChatGPT Plusなどを契約していても、APIの利用料金が月額料金に含まれるわけではありません。
API料金の基本的な考え方は次のとおりです。
- 長いプロンプトほど入力トークンが増える
- 長い回答ほど出力トークンが増える
- 入力と出力では単価が異なる場合がある
- モデルごとにトークン単価が異なる
- 検索などのツール料金が別途発生する場合がある
たとえば、毎回同じ長い指示文と異なる質問をAPIへ送信すると、その指示文も入力トークンとして繰り返し処理されます。対応モデルではプロンプトキャッシュが自動的に適用され、完全に一致する先頭部分を通常より低い料金で再利用できる場合があります。
ただし、キャッシュ入力の割引率は全モデル共通ではありません。キャッシュが利用できる条件、保持される時間、入力・出力の単価もモデルによって変わります。
API料金を抑えたいときは、単純に日本語を英語へ変換するより、次の見直しを優先する方が現実的です。
- 不要な会話履歴を送らない
- 回答に必要な資料だけを渡す
- 出力形式と長さを明確に指定する
- 用途に合うモデルを選ぶ
- 共通の指示をプロンプトの先頭にまとめる
APIの料金や契約条件は変更される可能性があります。料金を試算する際は、OpenAIの公式料金ページで最新情報を確認してください。
会社の予算、契約、会計処理に関わる場合、最終的な判断は専門家にご相談ください。
長文は重要情報を先に整理する
ChatGPTへ長文を送るときは、情報をすべて詰め込むより、回答に欠かせない条件を先に整理する方が安定します。トークン上限に余裕があっても、重要な条件が大量の文章に埋もれると、期待した回答にならないことがあるからです。
私が重要だと考えるのは、文章の長さよりも情報の優先順位が伝わる構造です。依頼の目的、守るべき条件、参照資料の順に並べるだけでも、ChatGPTが何を優先すべきか判断しやすくなります。
長文プロンプトは、次の順番で整理すると扱いやすくなります。
- 目的
- 最重要条件
- 出力形式
- 参考情報
- 補足条件
たとえば、記事を作成してもらう場合、最初に大量の参考資料を貼り、その最後に記事を書いてくださいと付け足すより、冒頭で目的と条件を示した方が明確です。
目的:
初心者向けの記事を作成する
最重要条件:
専門用語には説明を付ける
確認できない数値は断定しない
出力形式:
見出しと本文をHTMLで出力する
参考資料:
以下の文章を優先して使用する
---参考資料が非常に長い場合は、いきなり完成原稿を求めるのではなく、先に要点を整理させる方法もあります。要点を確認してから構成案を作り、最後に本文を作成すると、前提のズレに早く気づけます。
ただし、同じチャット内で文章を何回にも分けて送れば、自動的にトークンを節約できるわけではありません。同じチャットでは過去のメッセージも文脈として参照されるため、分割しただけでは会話全体の情報量が減らない場合があります。
分けることより、残す情報と削る情報を決めることが重要です。途中経過、重複した指示、使わなくなった案を整理し、現在必要な条件だけをまとめ直しましょう。

必要な文脈だけを残すコツ
会話が長くなって回答のズレが増えたときは、古いチャットをそのまま使い続けるより、新しいチャットへ必要な情報だけを引き継ぐ方法が有効です。
新しいチャットに移る際は、元の会話全文をコピーする必要はありません。現在の目的、決定済みの条件、未解決の課題、次に行う作業だけを引き継ぎます。
引き継ぐ内容は、次のようにまとめられます。
- 作業の目的
- すでに決まったこと
- 変更してはいけない条件
- 使用する資料やデータ
- まだ決まっていないこと
- 次に依頼したい作業
ChatGPTへ引き継ぎ用の要約を作らせる場合は、単に会話を要約してくださいと頼むのではなく、次のチャットで作業を再開するために必要な情報だけを整理してくださいと指示します。
この会話を新しいチャットへ引き継ぎます。
次の項目に分けて整理してください。
・作業の目的
・決定済みの条件
・重要な事実
・使用中の文章やデータ
・未解決の課題
・次に行う作業
雑談、重複した説明、採用しなかった案は除外してください。作成された要約は、そのまま使わず一度確認してください。数値、固有名詞、禁止事項、出力形式などが抜けている場合は、自分で追記します。
また、途中で条件を変更した場合は、古い条件と新しい条件を同時に残さないことも大切です。「以前はAだったが現在はB」のように変更後の状態を明示すると、矛盾を減らせます。
引き継ぎの具体的な流れやテンプレートは、ChatGPTのスレッド引き継ぎ手順で詳しく整理しています。
新しいチャットに移動すれば、元の会話内容が自動ですべて引き継がれるとは限りません。作業に必須の条件は、引き継ぎ文の中へ明記してください。
長文を安定して扱うには、文章を小分けにするだけでは不十分です。必要な文脈を要約し、重複を削り、現在の目的に関係する情報だけを残す。この運用が、トークンの無駄を減らしながら回答の一貫性を保つ方法です。
ChatGPTのトークンとは何かを総括
ChatGPTのトークンとは、モデルが文章を処理するために使用する文字列の単位です。文字数や単語数と似ているように見えますが、同じものではありません。
1つのトークンは、1文字、単語全体、単語の一部、句読点や空白を含むまとまりなどになります。日本語と英語でも分割傾向が異なり、同じ文章であってもモデルやエンコーディングが変われば、トークン数が変化する可能性があります。
この記事の要点
- トークンは文字数と同じではない
- 日本語の固定換算式はない
- 入力と出力の両方でトークンを使う
- 上限はモデルやプランによって異なる
- APIではトークン数が料金に関係する
- 正確な数はTokenizerなどで確認する
普段ChatGPTへ短い質問をするだけなら、トークン数を細かく数える必要はありません。一方、長文記事、議事録、プログラムコード、複数の資料、APIによる大量処理を扱う場合は、トークンの考え方が重要になります。
特に覚えておきたいのは、会話を複数回に分ければ必ず上限対策になるわけではないことです。同じチャット内では過去の会話も処理対象になり得るため、長くなったら必要な文脈だけを整理し、新しいチャットへ引き継ぐ方が安定します。
また、長文では重要な条件を先に示してください。目的、最重要条件、出力形式、参考資料の順に整理すると、情報量が多くても優先順位が伝わりやすくなります。
トークンは文字数を数えるための難しい専門用語ではなく、ChatGPTが一度にどれだけの情報を読み、どれだけの回答を作れるかを考えるための基準です。
モデルや料金の数値を暗記するより、文字数とは一致しないこと、入力と出力の両方で使われること、必要な文脈だけを残すことの3点を理解しておけば、ChatGPTの長文処理で迷いにくくなりますよ。

