ChatGPTを利用していて、疑問に思う方が多いのが文字数の制限です。
長文の回答が返ってこなかったり、大量の入力文を送信しようとすると文字数制限ではじかれてしまうといった経験をされたことがある方もいらっしゃるのではないでしょうか?
実はこれには、ChatGPTが管理しているトークン(単語や文字に相当するもの)という考え方が関係しています。GPT-3.5で制限されているトークン数は、現在2048トークンです。このトークン数を超えた回答や質問は、現在のChatGPTの機能ではできないよう制限がかかっています。
こちらの記事ではこのトークンについてと、トークンのカウント数が大きく影響してくるAPIの仕様について詳細にご紹介していきます!
トークン数を節約するための手法も記載していますので、ぜひ最後まで目を通してみてください。
ChatGPTのAPIはトークン数で決まる
ChatGPTでは、外部ツールと通信するためのAPIが公開されています。
こちらのAPIで通信可能な情報量はトークンによって制限されており、その量を超えてしまうと追加で料金が必要となってくる従量課金制の仕組みを取っています。
今回はこちらのAPIの仕組みと、従量課金制で重要な単位となるトークンについてお伝えしていきます。
ChatGPTのAPIとは
ChatGPTでは、登録したユーザが誰でも使用できるAPIが公開されています。
このAPIでは外部ツールと情報のやり取りを行ったり、自分で構築したプログラムでChatGPTを動作させるために使用します。
例えばGoogle スプレッドシート上で、ChatGPTを動かしたいと考えたとしましょう。
このときに利用できる拡張機能が公開されていますが、スプレッドシートはOpenAIの外部ツールにあたるため、スプレッドシート上で動作させるにはAPI keyが必要となってきます。
このようにChatGPTをOpenAIのページだけでなく、他のツールと連携させたいと考えたときに必要になるのがChatGPT APIです。
APIはChatGPTとは別のAPI専用のページより取得することが可能となっています。
まだ取得していないという方は、この機会に取得してみてはいかがでしょうか?
ChatGPTを利用する幅を広げることが可能になりますよ。
初回は5ドル分のトークンが無料で使える
ChatGPTのAPIは重量課金制となっています。つまり使ったら使った分だけ、課金が必要となってくる仕組みです。
しかし、最初の5ドル分のトークンは無料で使用することが可能となります。ただし、こちらの無料分が使用できるのはChatGPTにアカウントを登録してから最初の3か月間のみとなっているのでご注意ください。
質問・回答両方の使用トークン料が請求される
ChatGPTで使用するトークンが消費されるタイミングは、質問と回答両方です。
例えば以下のように、ChatGPTに向けて質問文を投げかけたとしましょう。
このときは上記の質問文に対して、まず所定のトークン数がカウントされます。次に回答として、ChatGPT側から以下の回答文が返ってきたとします。
この回答文の内容も、トークンとしてカウント対象になります。
上記のように、質問文+回答文が両方トークンとしてカウントされることに注意しましょう。こちらから長文の質問文を投げたり、ChatGPT側から長文で回答が返ってくると、多くのトークンを消費してしまうことになるので認識しておく必要がありますね。
ChatGPTトークンの計算、確認方法
では、実際にトークンの数はどのように計算されているのでしょうか?ChatGPTのバージョンや言語によってカウントの方法は異なるため厳密なことは言えませんが、こちらで計算方法や確認方法をご紹介していきます。
ChatGPTのトークン数計算方法
ChatGPTのトークンの計算方法について、ChatGPTに確認してみました。
・英語では、1単語を1つのトークンとして扱っている。
そのため、”a”や”apple”もそれぞれ1つのトークンとして扱うこととなる。
・ただし、日本語などの言語では1つの文字が1つのトークンで扱われることもある。
これは一概には言えないため、厳密な定義はない。
上記のような回答でした。言語によって数え方は異なるようなので、『1文字につき1トークン』などといった明確な定義はないようです。
ChatGPTのトークン数確認方法
日本語について厳密な定義がない場合に、トークンの数を知りたい場合はどのようにすればよいのでしょうか?
OpenAIは、ChatGPTにてトークン数をカウントするためのツールを公開しています。そのツールが、OpenAIが公開しているトークン数カウントツールであるtokenrizerです。
tokenrizerでは、以下のように文章を入力することでトークンの数をカウントしてくれます。例えば、『私はChatGPTを毎日使用しています。』という文章を入れてみました。
こちらの文章に対してカウントしたところ、トークン数は22トークンとのことでした。
日本語の文字数は20文字なので、1文字=1トークンでカウントしているわけではない、ということがこちらの結果からもお判りいただけるかと思います。もしAPIで長文を投げてみたいときなどは、事前にこのツールで確認して感覚を掴んでみるのもいいかもしれませんね。
以下の記事で、ChatGPTの最大文字数(何トークンまで入力できるか)について検証していますので是非ご覧ください。
API利用時のトークン数を節約する方法
では、APIを利用するときにトークン数をなるべく節約したいときは、どのようにすればよいのでしょうか?この方法もいくつか案があります。以下の記事で、順を追ってご紹介していきます。
トークン節約法①:英語を使う
先ほどChatGPTから回答があった通り、英語は1単語=1トークンで計算されています。つまり、英訳すればよほどの文章でない限りは、英文の方が使用するトークン数は少なくなります。
先ほど例に挙げた『私はChatGPTを毎日使用しています。』という文章を例にしてみましょう。この文章を『I use ChatGPT daily.』という英文に訳してからトークン数をカウントすることで、大きくトークン数を節約することが可能となりました。
もしトークン数を節約したい場合は、事前に質問文をDeepL等で翻訳してからChatGPTに回答を求めると、大幅に節約が可能になります。ただし、その場合はChatGPTからの回答も英語になりますので、更に翻訳する必要が出てくることにご注意ください。
トークン節約法②:簡潔に質問する
続いての方法は、質問文を簡潔にするというものです。単純に文字数が少なくなれば、トークンの数も削減することが出来ます。
先ほどの『私はChatGPTを毎日使用しています。』という例文も、以下のように『私は毎日ChatGPTを使う。』と簡潔にまとめることで、トークン数を節約することが出来ました。
同じ意味の文章でもですます調をやめたり、冗長な言葉を減らすことでトークン数は削減することが可能になります。そもそもChatGPTは長文の質問文を投げると回答の精度が落ちるという特徴もありますので、なるべく質問を投げる際は簡潔な文でまとめることを心がけたいですね。
また、ChatGPTからの回答文もトークン数がかかりますので、回答させるときに『なるべく簡潔に回答して』などといった文言を添えることも、トークン数の節約に繋げることが出来ます。
トークン節約法④:過去の会話歴に回数制限を設ける
APIを利用してChatpGPTとやり取りを行うときに、以前にやりとりした内容を記憶しておくためにパラメータにてメッセージ内容を保持して置く方もいらっしゃるかと思います。しかし、これを行うとトークン量は倍々で増えていってしまうため、実行するごとに膨大なトークン量を消費することになりかねません。
こちらを防止するために、過去にやり取りしたメッセージの数に制限を設けるといった対策を打つことが可能になります。もしこの制限を行った場合、制限をかけた以前のやり取りの内容はChatGPTは記憶してくれません。
しかし、数ターン前のやり取りの内容さえ記憶していればある程度の精度の回答を得ることが可能になります。プログラム上でChatGPTとの通信を行う場合は、こちらの制限に注意して実装してみてもいいかもしれませんね。
トークン節約法⑤:APIの利用上限を設定する
根本の解決ではありませんが、OpenAIのAPI利用ページでは、APIの利用料に対して制限をかけることが可能です。
APIのマイページの中に『Usage limit』というページがあります。このページを利用すると、自分の使用したトークン数を参照することができ、利用料に対しての制限も設定することができます。
以下の図は、現在利用しているトークンの量を示しています。現在は$0.01分のトークンを使用している、ということがわかります。
APIの金額を指定すると、自分が利用した金額を超過してしまった場合にロックをかけることが出来ます。もし大量にAPI経由で文章を送信したいと考えており、利用料金を超えてしまうことが不安だという方は、保険のためにロックをかけておくことをおすすめします。
実際に利用制限をかける箇所は以下になります。
また、この利用制限はHard limitとSoft limitの二段階で設定できる仕組みとなっています。自分の予定している使用量に合わせて、事前に設定をしておくようにすると、安心して利用することが可能になりますね。
まとめ
この記事をまとめると、
・ChatGPTでやりとりをする文章量には、トークンというカウントの単位が存在しておりトークンの数によって制限が掛けられている。
・APIは従量課金制のため、トークンの使用量によって課金される仕組みとなっている。
・トークンの量は工夫次第で削減することが可能である。
特に日本語よりも英語の方がトークンの使用量が少なくカウントされる。
という内容でした。
APIとトークンについて、正しくご理解いただけたでしょうか?APIを活用できるようになると、更にChatGPTを利用できる幅が広がりますよ!
- ChatGPTで〇〇を効率化したい
- スライドを作るならどのAIツールがおすすめ?
- おすすめのGPTsが知りたい
同じ悩みを解決した人がいるかもしれません。ぜひ質問してみてください!