トークン(Token)

とーくん

トークン(Token)

トークン(Token)とは、LLM がテキストを処理する際の最小単位である。単語そのものではなく、単語の一部や記号、空白なども含まれ、モデルの語彙(ボキャブラリー)に基づいてテキストを分割した結果の断片を指す。

単語とは違う

「トークン」と聞くと単語を思い浮かべがちだが、実際にはもう少し細かい。英語の "unbelievable" は "un", "believ", "able" の 3 トークンに分割されることがある。日本語の場合はさらに事情が複雑で、ひらがな 1 文字が 1 トークンになることもあれば、漢字 1 文字で 2〜3 トークンを消費することもある。

この分割処理をトークナイゼーションと呼び、モデルごとに異なるアルゴリズム(BPE、SentencePiece など)を使う。同じ文章でもモデルによってトークン数が変わるのはこのためだ。

なぜトークン数が重要か

LLM のコストと性能は、ほぼすべてトークン数で決まる。API 利用料金は入力・出力のトークン数に応じた従量課金が一般的であり、コンテキストウィンドウ(モデルが一度に扱えるテキスト量)もトークン数で定義される。

推論速度にも直結する。Dense Model では全パラメータが各トークンの処理に関与するため、トークン数が増えれば比例して計算量が増える。長文の要約タスクで入力を圧縮する工夫が求められるのはこの制約による。

実務での見積もり

英語では「1 トークン ≒ 4 文字 ≒ 0.75 単語」がよく使われる目安だ。日本語はトークン効率が低く、同じ意味内容でも英語の 1.5〜2 倍のトークンを消費する傾向がある。多言語対応のシステムを設計する際には、この差をコスト見積もりに織り込む必要がある。