チャットでは 返事が いっきに 出てくるように見えますが、モデルが 一度に 決めているのは つぎの 1トークンだけです。それまでの トークン列を 読んで、語彙に ある すべての トークン それぞれに 確率を つけ、そこから 1つを えらんで 末尾に つけたす。 これを おわりの記号が 出るまで くりかえすと、文章が できあがります。 ここでは その 1歩1歩を とめて 見られます。
0. モデル しくみは どれも 同じ。ちがうのは 大きさと 学んだ データ
1. はなしかける ことば
2. いま モデルが 読んでいる トークン列
3. つぎの トークンの 候補
4. これまでの ステップ えらばれた トークン / そのときの 確率 / ほかの 候補
読みかた
1歩ごとに やっていることは、次の 4つだけです。
- いまの トークン列を まるごと モデルに 入れる(2)
- モデルが 語彙の トークン すべてに 点数(ロジット)を 返す(ぐっぴーは 4,096個、Gemma 3 は 262,144個、Gemma 2 は 256,000個)
- 点数を 温度で わってから 確率に なおし、top-k の外を 0 にする(3)
- その確率で 1つ えらび、トークン列の 末尾に つけたす(4)
「サイコロで えらぶ」では、確率 30% の候補は だいたい 3回に1回 えらばれます。 だから 同じ ことばを かけても 返事が 毎回 ちがうのです。 「いちばん 高いものを えらぶ」にすると、毎回 同じ 返事に なります。 候補の行を クリックすれば、自分で つぎの トークンを えらぶことも できます。 ありそうもない トークンを えらぶと、その先の 文章が どう つじつまを 合わせにいくかが 見られます。
温度を 下げると 上位の 候補に 確率が 集まり、上げると 低い候補にも
チャンスが まわってきて 文章が 乱れやすく なります。チャットの画面は
温度 0.7・top-k 50 で 動いています。
Gemma に 切りかえると、まったく 同じ 手順で、ずっと 大きく、
ずっと 広い 文章を 学んだ モデルが 動きます。Gemma 3 270M は ぐっぴーの 約30倍、
日本語向けに 調整された Gemma 2 2B JPN は 約300倍の 大きさです。同じ ことばを かけて、
候補の 顔ぶれや 確率の 散らばりかた、日本語の 自然さを くらべてみてください。
Gemma の トークンは 空白を ␣(元は ▁)で 表し、
語彙にない 文字は <0xE3> のような 1バイトずつの トークンに なります。
Gemma の ファイルは Hugging Face から 読み込み、ブラウザに キャッシュされます。
おわりの 合図は <end_of_turn> です。
紫の <|im_end|> が えらばれると「返事は ここまで」の 合図で、生成が おわります。
モデルは「いつ だまるか」も、ほかの トークンと 同じように 確率で きめているのです。
ひらがなの 途中で E3 81 のような 16進数が 見えたら、それは 1文字が
複数の トークンに 分かれている途中です(トークンのページを 参照)。