AIのトークンとは?なぜモデルは言葉をかけらに分けて読むの?
トークンは、言語モデルが読み書きする文章の小さなかけらです。トークナイザーが文章をよく出るまとまりに切り分けます。よく使う言葉はそのまま1つに、めずらしい言葉、新しい名前、長い数字はいくつかのかけらに分けられます。トークンはそれぞれ番号(ID)に置きかえられ、モデルはそれで計算します。文章の長さや料金もトークンで数えます。
▶ やってみようなぜ大切なのか
モデルは文字も言葉そのものも見ていません。見ているのはトークンのIDだけです。だから文字を数えるのが苦手で、長い数字でつまずき、言語によって料金が変わるのです。
6分後にできるようになること
- モデルが文字数を数えまちがえたり、長い数字でつまずいたりしたら、文字ではなくかけらを見ていることを思い出しましょう。
- 同じお願いでも、言語によってトークン数がちがうので、料金や速さが変わることがあります。
- ツールに「トークンあたり」の上限や料金が出てきたら、言葉まるごとではなく、言葉のかけらくらいの大きさだと考えましょう。
練習する内容
トークナイザーになろう
文字と文字のすきまをタップして、言葉をトークンに切りましょう。それから「トークン化」を押してくらべます。切り方とIDは、よくあるトークナイザーをまねた例です。
- ありがとう → [ありがとう] #46430
とてもよく使う言葉は、5文字あっても1つのトークンになります。「ありがとう」は数えきれないほど出てくるので、切るとむだになるのです。 - 信じられない → [信じ] #8239 [られ] #43512 [ない] #5205
長い言葉は、なじみのあるかけらで組み立てます。「信じ」「られ」「ない」は、それぞれほかのたくさんの言葉にも出てきます。 - Vireo → [Vir] #53413 [eo] #78
新しい名前は語彙に入っていないので、トークナイザーは知っているかけらで組み立てます。どんな言葉も、こうしてつづれます。 - 1234567 → [123] #4513 [456] #10961 [7] #22
多くのトークナイザーは、長い数字を最大3けたずつに切ります。モデルは数字全体を一度に見ないので、長い計算でつまずくことがあるのです。 - 東京特許許可局 → [東京] #18210 [特許] #41279 [許可] #50071 [局] #13654
早口言葉でおなじみの長い言葉です。トークナイザーはおもに英語の文章から学ぶので、日本語の長い言葉はいくつものかけらに分かれやすいのです。
- 同じ意味で、言語が2つ。Vireoのトークンを多く使うのはどっち?
- A: I love cats. → [I] [·love] [·cats] [.] (4 トークン)
- B: ネコが大好き。 → [ネ] [コ] [が] [大] [好き] [。] (6 トークン)
- トークンを多く使うメッセージはどっち?
- A: 7時に会おう。 → [7] [時に] [会] [おう] [。] (5 トークン)
- B: 19時45分30秒に会おう。 → [19] [時] [45] [分] [30] [秒] [に] [会] [おう] [。] (10 トークン)
- ありがとう → [ありがとう] #46430
なぜ言葉ではなく、かけらなの?
カードをタップして、うらを見てみましょう。
- 🔢 なぜ文章を数字にするの?
- モデルは計算しかできません。トークンをそれぞれIDに置きかえると、文は計算できる数字のリストになります。
- 📕 なぜ1語1トークンにしないの?
- 言葉が多すぎるからです。名前、打ちまちがい、新しい流行語。言葉の一覧は完成しませんが、かけらならどんな言葉も、生まれたばかりの言葉も組み立てられます。
- 🔤 なぜ1文字ずつにしないの?
- そうすると文がとても長くなり、モデルが意味をつかむのがずっと大変になります。言葉のかけらは、そのちょうど中間です。
- 🧮 トークンの一覧はどこから来るの?
- 学習の前に、プログラムが大量の文章を読み、いちばんよく出るかけらの組み合わせをくっつけていきます。決まった数になるまで続け、ふつうは数万トークンの一覧になります。
トークンでわかること
正しいものをすべて選びましょう。
- モデルが読むのは文字ではなくトークンID
- よく使う言葉は1トークンのことが多い
- めずらしい言葉や新しい言葉はかけらに分かれる
- 同じ文章でも、言語によってトークンが多くなる
- どの言葉もちょうど1トークン
- トークンは音節のこと
- モデルにとって文字を数えるのはかんたん
覚えておこう
モデルは、文章をトークンという番号つきのかけらとして読みます。よく使う言葉はそのまま、めずらしい言葉はかけらで組み立てます。
文章はトークンIDのリストになります。よく使う言葉はそのまま、めずらしい言葉はかけらを組み合わせて作ります。
押さえておきたい事実
- めずらしい言葉を、バイトペアエンコーディング(BPE)でよく出る小さなかけらに分ける方法は、2016年にニューラル機械翻訳のために発表され、いまのLLMのトークナイザーのほとんどの土台になっています。 · 出典: Sennrich, Haddow & Birch, Neural Machine Translation of Rare Words with Subword Units, ACL 2016
- GPT-2のトークナイザーの語彙は50,257トークンでした。 · 出典: Radford et al., OpenAI, Language Models are Unsupervised Multitask Learners, 2019
- Llama 3は語彙が128,000トークンのトークナイザーを使い、前のモデルより効率よく文章をトークンにできます。 · 出典: Meta, Introducing Meta Llama 3, 2024
- 同じ文章をいろいろな言語に訳すと、必要なトークン数が大きくちがうことがあり、言語によって処理の費用が高くなります。 · 出典: Petrov et al., Language Model Tokenizers Introduce Unfairness Between Languages, NeurIPS 2023
更新日:
よくある質問
1トークンは何文字くらいですか?
文章とトークナイザーによってちがいます。英語では短い単語や長い単語の一部が1トークンになることが多いです。日本語では、ひらがなや漢字の1〜数文字が1トークンになることが多く、同じ内容でも英語よりトークンが多くなりがちです。
なぜAIは言葉の文字数を数えられないのですか?
モデルは1文字ずつではなく、「東京」や「特許」のようなまとまりのトークンIDしか見ていません。文字を数えるには、それぞれのかけらが何の文字でできているかを思い出す必要があり、そこでまちがえやすいのです。
トークナイザーとは何ですか?
トークナイザーは、モデルが見る前に文章をトークンに切り分け、それぞれをIDに置きかえるプログラムです。学習の前に一度だけ、大量の文章の中でよく出るかけらから作られます。
なぜAIの料金はトークン単位なのですか?
モデルの仕事量は、読み書きするトークンの数に合わせて増えます。トークンで数えると、言葉や文字の数で数えるより公平にその仕事量を測れます。
関連用語
