トークナイザーとは

トークナイザーとは、文章を「トークン」という小さな単位に区切り、AIが扱える数値(ID)に変換する部品のことです。AIは数字しか処理できないため、言葉を数へ橋渡しする”入口”の役割を担います。大規模言語モデルが文章を読み込む、その最初の一歩がトークナイザーです。

言葉を数字に変える「通訳」

私たちが入力した文章は、まずトークナイザーがトークンに区切ります。次に、それぞれのトークンを語彙表に従って番号(ID)へ置きかえ、モデルへ渡す流れです。AIが返してきた数字の列を、こんどは逆向きに文章へ戻すのもトークナイザーの仕事。言葉と数字を行き来させる通訳のような存在です。

どう区切るか、にも種類がある

区切り方にはいくつかの方式があります。単語ごとに区切る方式、文字ごとに区切る方式、その中間の「サブワード」方式です。いまの主流はサブワード方式で、よく使う語はそのまま、まれな語は意味のある部品へ分けます。GPT-2はバイトレベルBPE、BERTはWordPieceという方式を採用しています。

区切り方は、コストにも関わる

トークナイザーの区切り方は、じつは費用にも関わる話です。多くのAIサービスは「トークン数」で料金や処理量が決まるため、同じ内容でも区切られるトークン数が変われば、コストや速度に響きます。言語や文章によってトークンへの分かれ方は変わり、それが実務での使い勝手を左右する場面もあるでしょう。

TopicAIは「かたまり」で言葉を読んでいる

トークナイザーを見ると、AIが言葉をどう捉えているかが垣間見えます。たとえば「transformer」という語は、「transform」と「er」のように”かたまり”で区切られます。AIは人間のように単語をまるごと覚えるのではなく、頻出する部品の組み合わせとして文章を読んでいるわけです。だからこそ、初めて見る長い単語にも部品に分けて対応できます。

トークナイザーに関するよくある質問

なぜ文章をトークンに区切る必要があるのですか?
AIは数字しか処理できないため、言葉を数へ橋渡しする入口が必要だからです。トークナイザーは文章をトークンに区切り、語彙表に従って番号(ID)へ置きかえてモデルへ渡し、返ってきた数字の列を逆向きに文章へ戻す、通訳のような存在です。
トークナイザーは料金にも関わるのですか?
はい。多くのAIサービスは「トークン数」で料金や処理量が決まるため、同じ内容でも区切られるトークン数が変わればコストや速度に響きます。言語や文章によってトークンへの分かれ方は変わります。
AIは言葉をどう区切っているのですか?
いまの主流は「サブワード」方式で、よく使う語はそのまま、まれな語は意味のある部品へ分けます。たとえば「transformer」は「transform」と「er」のように区切られ、AIは単語をまるごと覚えるのではなく、頻出する部品の組み合わせとして文章を読んでいます。