【とーくないざー】
トークナイザー とは?
💡 テキストをAIの「食べられる大きさ」に切り分ける道具
📌 このページのポイント
- テキストを「トークン」という単位に分割してAIに渡す前処理ツール
- 英語は単語・サブワード単位、日本語は文字・形態素・サブワード単位などで分割される
- 同じ文章でもトークナイザーの種類によってトークン数が変わる
- トークン数はAPIの料金やコンテキストウィンドウの消費量に直結する
トークナイザーって、単純に単語で区切るだけじゃないの?
そうなんだ。英語なら単語で区切れることが多いけど、「unhappy」を「un」「happy」に分けたり、「running」を「run」「ning」に分けたりすることもある。サブワード分割と呼ばれる手法で、珍しい単語も既知の部品の組み合わせで扱えるようにしているんだよ。
日本語はどうなるの?
日本語はスペースで区切られないから難しいんだ。「東京タワーに登った」は「東京」「タワー」「に」「登った」とかに分かれることもあれば、文字一文字ずつになることもある。BPE(バイトペアエンコーディング)という手法がよく使われていて、よく一緒に出てくる文字の組み合わせをどんどんまとめていく仕組みなんだよ。
なんでトークン数を気にしないといけないの?
APIの料金は「入力トークン数 × 単価」で計算されることが多いんだ。それに、AIが一度に処理できるトークン数には上限(コンテキストウィンドウ)があって、超えると入力が切り捨てられる。長い文書を処理するときはトークン数を意識することが重要なんだよ。
おもしろい!日本語って英語よりトークンを多く使うって本当?
まとめ:ざっくりこれだけ覚えればOK!
「トークナイザー」って出てきたら「テキストをAIが処理しやすい断片に切る前処理ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Tokenizer」 = トークンに分割するもの
💬 Token(トークン)はラテン語で「しるし・記号」の意味。Tokenizerは「それを行うもの」という意味だよ