定義
トークン(Token)とは、AIモデルが人間の言語を理解して処理するために、文章を細かく切り分けた基本の断片単位のことです。コンピューターは文字を直接計算できないので、文を「トークン」という文字の断片に分け、それぞれに固有の番号をつけて計算します。
AIが文章をひと口サイズにかみ砕く単位
長いバスケットのパンを食べやすい大きさにナイフで切るように、AIも文字を数字に変えて計算するには、あらかじめ決めておいた断片の単位が必要です。そこでコンピューターが扱える決まった大きさの断片に文章を切り分けます。この切られた断片ひとつひとつをトークンと呼びます。
トークンは、必ずしも単語1つや文字1つと一致するわけではありません。「りんご」のように短い単語なら1つの断片になりますが、「りんごの木を」のように長い言葉は、「りんご」「の木」「を」のように、よく一緒に出てくる文字のまとまりごとに複数の断片に分かれることもあります。
英語と日本語でも、切られ方は異なります。英語の単語は、アルファベット数文字で1つのトークンになることが多いのですが、日本語は漢字だけでも数千種類あり、学習データにあまり出てこない文字は、トークナイザー(トークンへの分割ルール)によっては1文字が複数のトークンに分かれることもあります。
結局のところ、私たちが文を単語ごとに区切って理解するように、AIはトークン単位で文章を扱っているのです。文章をほどよい断片に分けておくことで、次の分析や文章生成をスムーズに進められます。
文字の断片が数字に変身するまで
AIは文字をそのままでは扱えず、数字に変えて計算します。そのため、文字を切ってトークンにしたあとは、大きな単語辞書を開いて、各断片に固有の番号札(ID番号)をつけます。
たとえば「りんご」というトークンに「4201」という番号がついていれば、AIは「りんご」という文字の代わりに「4201」という数字を受け取り、複雑な数学の計算を始めます。このように、文をトークンに切り分けて数字に変える一連の流れを「トークン化」と呼びます。
AIが返事を書いて私たちに見せるときも、仕組みはまったく同じです。次に来るもっともふさわしい番号を数学的に計算して見つけ出し、その番号に対応する文字の断片をふたたびつなぎ合わせて、完成した文章に仕上げます。
私たちがチャットボットとやりとりするほんの一瞬のあいだにも、コンピューターの内部では、たくさんの文字の断片が数字に変わり、また文字へと組み立て直される、魔法のような作業がひっきりなしに行われているのです。
もう少し正確にいうと
もう少し正確にいうと、トークンはAIサービスの料金の請求書であり、AIの頭の記憶力の限界を決める基準でもあります。チャットボットを作ったりAPIで利用したりするときに支払う料金は、単なる文字数ではなく、入力したトークンと出力したトークンの数で決まるからです。通常、入力と出力の単価は異なります。
また、AIモデルが一度に覚えて参照できる会話の長さも、トークン数によって厳密に制限されます。これを「コンテキストウィンドウ」と呼びます。本が何冊分ものトークンを一度に読めるモデルもあれば、数ページ読んだだけで前に交わした会話を忘れてしまうモデルもあります。
そのため、よく使われる文字のまとまりを1つのトークンにして効率よく分ける技術は、AIの処理速度を上げ、運用コストを下げるうえで重要な役割を果たします。同じ意味の文でも、より少ないトークン数で表せるほど、AIはずっと速く安く動かせます。
最新のAI研究が、さまざまな言語をより少ないトークンに圧縮して処理するアルゴリズムの開発に力を入れているのも、まさにこのためです。
よくある誤解
1トークンは、ちょうど1単語か1文字と同じだ。
トークンは単語より小さいことも、大きいこともあります。英語の単語が複数のトークンになることもありますし、トークナイザーによっては、あまり使われない日本語の文字が1つで最大2〜3個のトークンに分かれることもあります。
日常で出会う場面
AIチャットボットに長い質問を書くほど、より多くのトークンが消費されます。
AIのAPIを使ってプログラムを開発するときは、やりとりしたトークン数に応じて料金を支払います。
つまり ひとことで
トークンとは、AIが文章を計算して理解するために細かく切り分けた、基本の文字の断片単位です。