ChatGPTを扱っている際、日本語で書かれた長文の要約や「長いプロンプト」の入力に苦戦した経験がある方も多いでしょう。日本語で書かれた長文の要約が難しい最大の理由は「トークン数」です。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
ChatGPTにおける「トークン」とは、一言で言えば「一回のやり取りで取り扱えるデータ量」。つまりChatGPTは文章やプロンプトを文字数として認識しているのではなく、トークンで数えています。ちなみにChatGPT(GPT-4)自身に尋ねてみたところ、最大トークン数は2048トークンという答えでした(画像=『オトナライフ』より 引用)
【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
とはいえChatGPTを使う時は「ChatGPTの言い分を鵜呑みにしない」ことも大切。「API経由のトークン数上限は?」と聞き方を変えると、4096トークンという答えが返ってきました。実際に検証してみたところ最新のChatGPTは「4096トークン」で扱われており、2048トークンではない様子(画像=『オトナライフ』より 引用)

「1文字1トークン」ではないため、正確な文字数制限を見繕うことは難しいですが、筆者が検証した限りではおおよそ2800文字を超えだすと「The message you submitted was too long, please reload the conversation and submit something shorter.」という警告が表示されることが増えだします。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
およそ3800文字の原稿をそのままChatGPTに貼り付けたところ「The message you submitted was too long, please reload the conversation and submit something shorter.」という警告が出ました。もっとも3000文字でも警告が出る場合もあれば、処理できるケースもあります。これは「トークンの仕組みと日本語との相性」が影響しています(画像=『オトナライフ』より 引用)

今回はこうしたChatGPTの文字数制限について、検証も交えながら、より詳しく解説します。

ChatGPTの文字数制限とトークンの考え方

ChatGPTは厳密には「文字数制限」はなく、「トークンの制限」があります。つまりテキストは「トークン換算」で考える必要があります。

OpenAIが提供するトークン数の試算ツール「Tokenizer」で、オトナライフの記事を参考にトークン数を見積もってみましょう。なおテストとして使ったのは、以下の記事のテキストです。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
4691文字の原稿なのですが、Tokenizerでトークン数に換算すると「5792トークン」という結果です。2048トークンに収まらないだけでなく、文字数に対してトークン数が膨れ上がっていることが分かります。API経由でこのテキストをそのまま使ったら、料金がかさんでしまいそうですね(画像=『オトナライフ』より 引用)

この4691文字の原稿のうち、3800文字ほどを抜粋してChatGPTに貼り付けると先ほどのように文字数制限エラーが出ました。

一方で2951文字ほどまで削減し、ペーストすると文字数制限エラーは発生しない状況となりました。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
2951文字まで削減すると、トークン数が「4096トークン以内」となったため文章を問題なく扱えたものと見られます(画像=『オトナライフ』より 引用)

おおよそ日本語の文章を扱う時は、2800文字~3000文字の範囲内であれば扱える。トークン数としては「4096トークン以内」と考えておけば問題なさそうです。

トークン数に比べて「日本語で扱える文字数」が少ないのは何故?

結論から言えば「漢字のせい」です。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
たとえば「年現在」という単語は文字数としては3つですが、トークンでカウントすると7トークン。ざっくり「文字数に対して倍のトークン」がかかります(画像=『オトナライフ』より 引用)

日本語で扱える文章量にバラつきが出るのは、その文章に「漢字が多いかどうか」や「英語が多いかどうか」でトークン数がかなり大きく変わるためです。

日本語の文章をすべて「英語」に翻訳したらトークン数はどう変わる?

日本語の文章を扱うと、漢字が多いことからトークン数がかさみます。では「英語に変えれば、日本語の長文でも長文を扱えるのか」検証してみましょう。さきほどと同じく、以下の記事の全文を対象に試してみます。

結論から言えば、驚異的なトークン削減効果を得られました。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
翻訳にはDeepLを用います(画像=『オトナライフ』より 引用)
【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
4691文字の原稿が英訳したことで1万文字を超えたのですが、トークン数は「2739トークン」まで削減されました。当然、4096トークンの制限には引っかかりません(画像=『オトナライフ』より 引用)
【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
オトナライフの「ガラケーはいつまで扱えるのか」の記事の全文(日本語でおよそ4691文字)は、翻訳を行うことでChatGPTで全文を処理対象に含めることができました(画像=『オトナライフ』より 引用)

日本語と英語で処理効率がまったく異なる理由は、OpenAIでは英語の場合、「英単語1つ」につき「1トークン」を消化しているためです。

【完全ガイド】ChatGPTの文字数制限は何文字?文字数制限を超えて長文を扱う方法は?
英単語「Apple」は1トークンに相当します。漢字1文字が2トークン以上消化しているのと比べ、効率が大きく違います(画像=『オトナライフ』より 引用)

よって文字数制限に悩む場合、文章をすべて英訳してしまうのがもっとも効率がいいと言えるでしょう。