生成AIのプロンプトの文字数制限

スポンサーリンク

生成AIのプロンプトの文字数制限について解説しています。

これの関してChatGPT(https://chat.openai.com/chat/)に「プロンプトは文字数制限はありますか?」と質問をしてみました。なお、今回用いるのは、GPT-3(ChatGPT Mar 23 Version)となります。

はい、一般的にプロンプトには文字数制限があります。ただし、それぞれの場合によって異なる場合があります。たとえば、コマンドラインインターフェース(CLI)の場合、プロンプトは通常、1行に収まるように設計されています。そのため、一般的に80文字から100文字程度の長さに制限されます。また、プログラムやスクリプトを実行するためのプロンプトでは、コマンドや引数がすぐに見えるようにするために、短いプロンプトが使用されることが一般的です。しかし、GUI(グラフィカルユーザインターフェイス)の場合、プロンプトに文字数制限はありません。

質問した結果、得られた回答が上記となります。なお、コマンドラインインターフェース(CLI)とは、コンピュータを操作するためのインターフェースの1つで、テキストベースの入出力を利用する。インターフェイスとは、「異なるもの同士をつなぐ架け橋のような役割を持つもの」です。今回の場合は人間とAIを繋いでいます。

次にChatGPTに「ChatGPTにおいてプロンプトは文字数制限はありますか?」と質問してみました。

ChatGPTにおいて、プロンプトには文字数制限があります。GPT-3の仕様に従い、最大2048文字までのテキストを入力できますが、一度に入力することができる最大のテキスト量は2048文字ではありません。実際には、プロンプトに入力できるテキスト量は、使用するWebアプリケーションやインターフェースに依存します。例えば、一部のウェブサイトやアプリケーションでは、プロンプトに入力できるテキスト量が比較的短い場合があります。一般的には、適切な長さのプロンプトを使用することで、より正確な回答を得ることができます。

質問した結果、得られた回答が上記となります。上記の回答から大事だと考えられるのは「適切な長さのプロンプトを使用することで、より正確な回答を得ることができる」ということだろう。

なお、今回はChatGPTに「Is there a character limit for prompts in ChatGPT?」(英語)で質問もしてみました。

Yes, there is a character limit for prompts in ChatGPT. The maximum character limit for a prompt is currently 2048 characters, including spaces and punctuation. If you exceed this limit, you may receive an error message indicating that your prompt is too long.

It’s worth noting that while you can submit a prompt up to the maximum limit, longer prompts may not always lead to better or more accurate responses. In fact, sometimes shorter, more focused prompts can result in more useful and relevant responses.

(はい、ChatGPTではプロンプトに文字数制限があります。現在、プロンプトの最大文字数は、スペースや句読点を含めて2048文字です。この制限を超えると、プロンプトが長すぎることを示すエラーメッセージが表示されることがあります。

最大限のプロンプトを送信することはできますが、長いプロンプトが必ずしも良い回答や正確な回答につながるとは限らないことに留意してください。むしろ、より短く、より焦点を絞ったプロンプトが、より有用で適切な回答をもたらすこともあります。)

質問した結果、得られた回答が上記となります。回答から「プロンプトの最大文字数は、スペースや句読点を含めて2048文字」であることが確認された。あと、「より短くより焦点を絞ったプロンプトがより有用で適切な回答をもたらす」とプロンプトエンジニアリングへのアドバイスも回答してくれた。が、「Does ChatGPT have a character limit? Here’s how to bypass it(ChatGPTには文字数制限がありますか? これをバイパスする方法は次のとおりです)」という海外の記事を見つけた。この記事内では「While ChatGPT’s developers have not revealed the exact limit yet, users have reported a 4,096-character limit.(ChatGPTの開発者はまだ正確な制限を明らかにしていませんが、ユーザーからは4,096文字の制限があることが報告されています。)」ということが書かれている。

なので、「スペースや句読点を含めて2048文字」というChatGPTの生成されたテキストについて疑問をもった。そこで、「Please provide evidence that the prompt limit for ChatGPT is 4,096 characters.(ChatGPT のプロンプト制限が 4,096 文字であることを証明してください。)」とChatGPTに質問してみました。

The 4096 character limit for prompts in ChatGPT is documented in the OpenAI API documentation. Here’s the relevant section from the documentation:

“The maximum number of tokens (words or punctuation symbols) in the prompt is 2048. However, you can submit multiple prompts in a single API request, up to a total of 4096 tokens across all prompts. If you submit multiple prompts in a single request, separate them with the delimiter <|endoftext|>

ChatGPTのプロンプトの4096文字制限は、OpenAI APIドキュメントに記載されています。以下、ドキュメントから該当箇所を引用します:

“プロンプト内のトークン(単語または句読点記号)の最大数は2048です。ただし、1つのAPIリクエストで複数のプロンプトを送信することができ、すべてのプロンプトで合計4096トークンまでとなります。1つのリクエストで複数のプロンプトを送信する場合は、区切り文字<|endoftext|>で区切ってください。

質問した結果、上記の回答が得られた。回答から新しいことがわかった。「プロンプト内のトークン(単語または句読点記号)の最大数は2048です。ただし、1つのAPIリクエストで複数のプロンプトを送信することができ、すべてのプロンプトで合計4096トークンまで」だということ。ここでは「文字」ではなく「トークン」という言葉で表現されている。

次にChatGPTに「「文字」と「トークン」は同じものですか。それとも異なりますか。詳しく解説してください。」と質問してみました。

「文字」と「トークン」は異なる概念です。

「文字」は、テキスト中の1つの文字を表します。例えば、”Hello, world!”という文において、「H」、「e」、「l」、「o」、「,」、「 」(スペース)、「w」、「o」、「r」、「l」、「d」、「!」の12文字が存在します。

一方、「トークン」は、テキスト中の意味を持つ最小の単位を表します。単語や句読点などがトークンになることがあります。ただし、トークンの定義は、使用されている言語モデルやプログラムによって異なる場合があります。

例えば、単語をトークンとして使用する場合、”Hello, world!”という文には3つのトークン(”Hello”, “,”, “world!”)が存在します。一方、文字をトークンとして使用する場合、この文には13個のトークン(それぞれの文字)が存在します。

GPT-3の場合、一度に処理できる最大トークン数が制限されているため、入力されたテキストをトークンに分割してから処理を行います。この際、どのようにトークン化されるかは、使用されているトークナイザー(Tokenizer)によって異なります。

質問した結果、得られた回答が上記となります。回答から「文字」と「トークン」は異なる概念であることがわかった。

このことからChatGPTで「では、ChatGPTにおいてプロンプトの「文字数制限」というのは文字を指しているのか、トークンを指しているのかどちらですか。できれば根拠も示してください。」と質問してみました。

ChatGPTにおいて、「文字数制限」という表現が使用されている場合、一般的には文字数を指していることが多いです。

ただし、ChatGPTの実装によっては、入力テキストをトークナイズしてから処理を行うことがあるため、実際にはトークン数が制限になっている場合があります。

ChatGPTの公式ドキュメントには、以下のように記載されています。

Our models can handle up to 2048 tokens in a single prompt, so your prompts should be less than 2048 tokens.

ここでの「token」とは、トークンを指しています。したがって、ChatGPTの場合、プロンプトの制限はトークン数であり、文字数ではありません。

ただし、一般的には、ChatGPTの制限は2048トークンであることが多いため、トークナイザーによって異なるトークン数になる場合は、プロンプトの長さに注意する必要があります。

質問した結果、得られた回答が上記となります。回答から「ChatGPTの実装によっては、入力テキストをトークナイズ(テキストを小さな単位で分割する)してから処理を行うことがあるため、実際にはトークン数が制限になっている場合がある」ということだった。

最新のGPT-3モデルでは、コンテキスト長が4096トークンまでサポートされています。ただし、APIやプラットフォームによっては、まだこの機能がサポートされていない場合があるため、使用する際には注意が必要です。

なお、ChatGPTに文字数制限に関して質問を何度か繰り返すと上記のような回答も得られたので、こちらでも、「コンテキスト長が4096トークンまでサポート」と「文字」ではなく「トークン」という言葉で表現されていた。

■プロンプトエンジニアリング(Prompt engineering)へ戻る

タイトルとURLをコピーしました