ChatGPTについて調べてみると、誰もが一度は目にする「トークン」という言葉。なんとなくわかっているつもりでも、明確な意味を説明するのは難しい…という方も多いのではないでしょうか?
そこで今回は、トークンとは一体何なのか、定義や調べ方などを初心者向けに徹底解説します。
目次
ChatGPTとは?
ChatGPTとは、「対話型AI」とも呼ばれる人工知能の言語モデルであり、自然言語処理や文章生成に用いられます。人間が入力したテキストを理解して、適切な応答を生成し、人間のような自然な対話が可能です。
ChatGPTについては下記記事で詳しく解説しています。
そもそもAIって?という方は、下記記事をご参照ください。
ChatGPTの「トークン」とは?
ChatGPTにおけるトークンとは、テキストを構成する最小単位のことです。簡単に言えば、「テキストを意味のあるかたまりに分けたもの」です。各トークンはそれぞれが意味を持ち、それらを組み合わせることで文章全体の意味や文脈を把握することができます。
ChatGPTは文章を文字、単語、句読点、記号など、テキストの要素を小さな単位「トークン」として分け、このトークン単位でテキストを処理します。
例えば、「Hello, How are you?」という文章をトークンに分けると、
- Hello
- ,
- how
- are
- you
- ?
となります。
このように、それぞれの文字や単語を小さなかたまりに分けることで処理しやすくなります。
ただし、大きな文章を一度に処理すると、処理にかかる時間やリソースの消費が増えるため、トークン数には、一度に処理できる情報量(トークン数またはトークン長とも呼ぶ)に一定の制限が設けられています。
ChatGPTの最大トークン数は?
ChatGPTでは、一度に処理できるテキスト、すなわち入力と回答のそれぞれ両方の長さに制限があり、これは文字数ではなくトークンで判断されています。現在の最大トークン数は4096トークンです。
日本語はトークン数が多くなる?
英語と日本語のテキストにおけるトークン数について、概要を表にまとめました。表の後に詳しい説明が続きます。
英語のテキスト | 日本語のテキスト | |
最大トークン数 | 4096トークン | 4096トークン |
最大文字数 | 15,000字程度まで | 2,000字程度まで |
1トークンあたりの文字 | 1単語例:「hello」 | ひらがな1文字程度例:「こ」 |
1000字程度の文章で 消費するトークン数 | 200〜250トークン | 1200〜1500トークン |
英語の場合、目安で1単語が1トークンとなるため、4096トークンは約4096単語に相当します。どの単語を使うかにもよりますが、文字数に換算すると15,000字程度の非常に長い文章を入出力することが可能になります。
一方、4096トークンは日本語で2000字程度に相当します。日本語の場合は、漢字やひらがな、カタカナなどの文字が1つ1つ別々のトークンとしてカウントされます。
つまり、英語では「1トークン1単語」であることに対して、日本語ではひらがな1文字で1〜2トークン、漢字1文字で2〜3トークンとなり、日本語の1単語(「こんにちは」「私」「です」などのかたまり)は1トークンとしてカウントされません。
入力したテキスト | トークン |
cat | 1 |
猫 | 3 |
ねこ | 3 |
ネコ | 2 |
a cat is sleeping. | 5 |
猫が寝ている。 | 10 |
そのため、たとえテキストの意味は同じだとしても、日本語での入力は英語の倍近く多くのトークンを消費することになります。
このあと実際に、ツールを使用して英語と日本語それぞれの文章のトークンをカウントして実験していきます。
文章のトークンを調べる方法
引用:https://platform.openai.com/tokenizer
OpenAIが提供しているツールで、ブラウザ上にテキストを貼り付けるだけでトークンをカウントできます。画像のように、入力した文章がトークンごとに色分けされて表示されます。
TEXT/TOKEN IDSを切り替えると、各トークンに付与された数列(コンピューターが各トークンを区別するための固有のID)を見ることができます。よく見ると同じ数列があることくらいは確認できますが、人間にはよくわかりません。
ここからはこのツールを使って、内容が同じ2つの文章を例に、日本語と英語でトークン数を比較していきます。
例文
- Hello, how are you? I hope you’ve been doing well lately. Today, I saw a beautiful rainbow across the sky, and it reminded me of the time we watched one together. It was such a magical moment, and I miss those times when we used to explore nature together. The memories we’ve shared are like a treasure trove of happiness.
- こんにちは、元気ですか?最近お元気でいることを願っています。今日は美しい虹が空にかかっているのを見ました。一緒に見たあの時を思い出しました。それは本当に魔法のような瞬間でしたね。一緒に自然を探検していたあの頃が懐かしいです。共有した思い出は、幸せの宝物のようなものです。(上の英文を翻訳したもの)
●英語
Tokens(トークン):73
Characters(文字数):324
●日本語
Tokens(トークン):183
Characters(文字数):129
内容(意味)は同じ文章ですが、英語では73トークン、日本語だと183トークンとなり、日本語の方が多くトークンを消費してしまうことがわかります。
なぜトークンがいいのか?
人間の言葉は難しい
人間の言葉は非常に複雑で多様な表現があり、一つの単語や文にもさまざまな意味や文脈が含まれる場合があります。これを「言葉の多義性」と呼びます。
例えば、「bank(バンク)」は「川岸」と「銀行」の二つの意味を持っていたり、「冷たい」という言葉は物理的な温度だけでなく、感情や人間関係においても使われたりします。
さらに、言葉には曖昧さも存在します。一つの文が与えられたとき、その文の意図は文脈によって異なり、人間ですら理解が難しいこともあります。
こうした言葉の多義性や曖昧さは、コンピューターも理解するのが難しい課題です。コンピューターはプログラムによって制御されるため、論理的で明確な情報を扱うことに長けていますが、言葉の多様性や文脈による意味の変化を、正確に理解することは非常に困難です。
このため、人間の言葉をコンピューターが理解できるようにするには、膨大な言語データを学習させる必要があり、その際にトークンという手法が使われます。
テキストをトークン化するメリット
複雑な言葉をトークン化して学習するメリットを説明します。
処理効率の向上
テキストは長くて複雑な場合がありますが、トークンに分けることで、コンピューターがより早く効率的に処理できます。小さなかたまりに分けることで、処理がスムーズになります。
意味の理解
意味ごとのトークンに分けることで、コンピューターが文章の意味を理解しやすくなります。各トークンはそれぞれ独立した意味を持っているので、それらを組み合わせて文章全体の意味や文脈を把握することができます。
統一的なデータ形式
トークンは単語だけでなく、句読点や記号なども含めて分けることができるため、文章内の異なる要素を区別することができます。
機械学習の利用
トークン化されたテキストは、機械学習モデルに適したデータ形式になります。トークン化されたデータを使ってモデルをトレーニングすることで、より高度な自然言語処理が可能になります。
ChatGPTの返信が途切れる時の対処法
ChatGPTの返信が途中で途切れる場合、大抵は4096トークンの制限が影響しています。ChatGPTへの入力ではあまり問題になりませんが、出力の際に問題が起きやすいです。もしChatGPTの返信が途中で切れた場合には、以下の方法を試してみてください。
- 「続けてください」や、「continue」と入力する
- 最後の一文字を入力する
- 途切れた文章をコピペして、続きをお願いする
そもそもChatGPTで回答が途中で切れないようにするには、
- 回答の文字数を指定する
- 質問文を簡潔にまとめる
- 質問文を2つ以上に分ける
などの方法が有効です。
おまけ:最大トークンが話題の日本語AIモデル
LLM*が一度に処理できるトークンが多いほど、より多くの背景情報を考慮し、高度な回答が可能だと考えられます。2023年6月、日本企業のAI inside 株式会社による独自の日本語LLMサービス「PolySphere-1(ポリスフィア-ワン)」が、ChatGPTの4096トークンをはるかに上回る、2,259万トークンのテキストを、分割せず一度に受けつけ、返答することに成功しました。
トークン制限を超えて入力されると、以前のテキストを忘れて、返答が欠如したり、不適切な回答が生成されることがありますが、PolySphere-1にはこれらの課題の克服と、より高度な応用が期待されています。
*LLM(Language Model):人間の言語を理解して自然な文章を生成できるAIモデルの一種。
まとめ
今回は、ChatGPTに関連する曖昧な用語「トークン」について、初心者向けに解説しました。ChatGPT以外の生成AIについても、最大トークンに注目してみると今までとは異なる新たな発見があるかもしれません。ぜひこれからの情報収集にお役立てください。
ChatGPT×AUTOROでできること
- テンプレートを使って自然な文章をRPAで作成する
- ChatGPTにRPAを動かすプログラミングコードを書かせる
- 長い文章の要約、ポイントの抽出
詳細についてはこちら
【お知らせ】AUTOROの新機能 “ChatWithGPT” アクションをリリースいたします。
Web Auto Robotの「AUTORO」で業務自動化
AUTOROの製品紹介資料を無料でダウンロードいただけます。
製品の特徴や導入のメリット、ご活用事例などをご紹介しています。
「トークン」と「トークン数」と「トークン長」はどう違う?
「トークン」の他に「トークン数」と「トークン長」という表現があり、意味のニュアンスに微妙な違いがあります。ほとんど同じ意味で使われますが、気になる方は以下の考え方を参考にしてみてください。
①トークン
トークンは、テキストを意味のある単位に分割したものです。通常、単語や句読点がトークンとして扱われ、文章は「トークン毎」に分けられます。例えば、「Hello, how are you?」のトークンは次のとおりです。
「Hello」「,」「how」「are」「you」「?」
②トークン数
トークン数とは、文章に含まれるトークンの総数を指します。例文「Hello, how are you?」では、
のトークン数合計6つです。
③トークン長
トークン長は、それぞれのトークンが持つ文字数(長さ)の合計を示します。例文「Hello, how are you?」の各トークンのトークン長は次のとおりです。
例文全体のトークン長は、1 + 1 + 1 + 1 + 1 + 1 = 6です。