【とーくないざー】
トークナイザー とは?
最終更新:
💡 文章を小分けにして、AI向けの番号を付ける
テキストをトークンという単位に分け、モデルの語彙に対応するIDへ変換する仕組み。分割ルールや語彙、前処理はトークナイザーごとに異なり、同じ文章でもトークン数やIDは変わる。
📌 このページのポイント
- テキストをトークン列と、対応するID列へ変換する
- 1トークンは、必ずしも1文字や1単語ではない
- 分割や前処理は、使うモデルのトークナイザーに従う
- 文字数からトークン数を固定の倍率で決められない
トークナイザーは、文章を単語に分ける道具なの?
単語に分けるだけとは限らないよ。文字・単語・単語の一部分などをトークンとして扱い、語彙に対応する番号であるIDに変えるんだ。BPE、WordPiece、Unigramなどの方式がある。たとえば長い単語をいくつかの部品に分ける場合もあるけれど、どこで分かれるかは使うトークナイザー次第だよ。
日本語でも、同じやり方で分けるの?
日本語も、そのモデルの分割ルールと語彙に従うよ。「今日は晴れ」を「今日」「は」「晴れ」とする図のような分け方は説明用の例で、実際に必ずそう分かれるわけではない。文字の一部やバイトに対応する単位を使うものもある。英語も日本語も、1文字や1単語が常に1トークンになるとは覚えないでおこう。
トークン数を、文字数で計算できる?
長すぎる文章は、勝手に短くしてくれる?
必ずそうなるわけではないよ。モデルの入力上限と、切り詰めの設定を確認しよう。Hugging FaceのTransformersではtruncationなどで切り詰め方を指定できる。サービスによっては上限を超えた要求がエラーになることもある。重要な情報が残るように、分割や要約を含めて扱いを考えよう。
番号から元の文章にも戻せるの?
IDを語彙のトークンに戻し、文章にする処理をデコードと呼ぶよ。ただし小文字化やアクセントの除去などの正規化をした場合、元の表記がそのまま戻るとは限らない。トークン数は入力上限のほか、トークン単位の料金があるサービスでも関係するけれど、入力と出力の単価など、料金条件は別に確かめる必要があるんだ。
📖 おまけ:英語の意味
「Tokenizer」 = トークン化する仕組み
💬 Tokenは、ここでは処理の単位となる文字列の断片など。Tokenizerはそれらに分ける仕組みを指すよ。