トークナイザ【tokenizer】
トークナイザとは?

トークンの区切り方は言語や用途によって異なる。英語のようにスペースで単語を区切る「分かち書き」を行う言語では、空白やカンマ、ピリオドで分割するのが一般的である。ただし、略語や記号の扱いが絡むため、単純に空白で切るだけでは不十分な場合もある。
日本語や中国語はそもそも単語間にスペースがなく、単語を収録した辞書を作成して参照したり、文の構造に基づく統計的な手法で区切りを判断する必要があるため、処理はより複雑になる。日本語では文の構造を分析して単語に分解する手法を「形態素解析」という。
機械学習モデルの一種である大規模言語モデル(LLM)では、単語単位でも文字単位でもなく、単語の一部を1トークンとして扱う「サブワード分割」が広く使われている。頻出する語はそのまま1トークンになり、珍しい語や造語は複数のトークンに分割される。この手法では辞書にない未知語にも対応でき、語彙数を抑えて計算効率を保てるため、機械翻訳や文章生成システムで定着した手法である。分割されたトークンには数値の識別子が割り当てられ、コンピュータはこの数値列を通じて言葉の文脈や統計的な傾向を学習する。
ChatGPTやClaude、Geminiなどの生成AIでは、利用者が入力した文章がトークナイザによって数値列に変換されてモデルへ送られ、出力もトークン単位で生成されてから文字列に戻される。これらのサービスが料金や利用制限をトークン数で定めているのは、モデルの処理単位がトークンだからである。同じ文字数でも言語や内容によってトークン数は変わり、日本語は英語に比べてトークン消費が多くなりやすい。なお、学習時と推論時で同じトークナイザを使うことが前提となっており、トークンの定義がモデルの挙動に直接影響する。