トークン
LLM が扱うテキストの最小単位。文字でも単語でもない中間的な単位。
例#
"unbelievable" → ["un", "believ", "able"]
"東京都" → ["東京", "都"]なぜ単語でも文字でもないのか#
| 単位 | 問題 |
|---|---|
| 文字 | 系列が長くなりすぎる。 の Attention が重い |
| 単語 | 語彙が爆発する。未知語を扱えない |
| サブワード | 両者の折衷。未知語も部分列で表せる |
実務上の意味#
課金・文脈長・速度がすべてトークン単位で決まる。
| 言語 | 1 トークンあたり |
|---|---|
| 英語 | 約 4 文字 |
| 日本語 | 約 1 文字(モデルによる) |
日本語は同じ内容でトークン数が多くなりやすい。 文脈window の消費が速く、コストも高くつく。
トークン化に起因する挙動#
- 「strawberry の r の数」のような文字単位の質問が苦手
- 数値の桁の扱いが不安定(桁の切れ目が不自然なことがある)
- 珍しい語がトークン境界で不自然に分割される
モデルは文字を見ていないことを理解しておくと、 これらの失敗が説明できる。
参考文献#
- Dan Jurafsky, James H. Martin. Speech and Language Processing, 3rd ed. draft.(全文公開) https://web.stanford.edu/~jurafsky/slp3/
- Rico Sennrich, Barry Haddow, Alexandra Birch. Neural Machine Translation of Rare Words with Subword Units. ACL, 2016. https://arxiv.org/abs/1508.07909