LLMは、どうやってトークンを1つずつ書いて返事を作るの?
言語モデルは、返事をトークン1つずつ書いていきます。1歩ごとに、次に来うるトークンすべてに点数をつけ、その点数を確率に変えて1つを引きます。だから、ありそうなトークンがたいてい選ばれます。引いたトークンを文章に足し、終わりのトークンが出るまでくり返します。温度の設定で、引き方が手堅くも冒険的にもなります。
▶ やってみようなぜ大切なのか
あなたが読む返事はすべて、確率のリストからトークンを1つずつ引いて書かれています。それを知れば、答えが少しずつ流れてくる理由、毎回変わる理由、1つのダイヤルで口調が変わる理由がわかります。
6分後にできるようになること
- 言語モデルは、次のトークンすべてに点数をつけ、1つ引いて、くり返すことで文章を書きます。
- 同じ質問への答えが違うのは、考えが変わったからではなく、引き方が違ったからです。
- 事実や計算には安定した設定が、アイデア出しには温度を上げた設定が向いています。
練習する内容
生成のループ
あなたがVireoに質問を送ります。返事を書く手順を正しい順番に並べましょう。
- あなたのメッセージがトークンに分けられる
- モデルが、次に来うるトークンすべてに点数をつける
- 点数が、温度で形を変えた確率になる
- トークンを1つ引いて、文章に足す
- 終わりのトークンが出るまで、ループをくり返す
生成マシンを動かそう
「次のトークン」を押して、ルーレットが言葉を1つずつ引くのを見ましょう。そのあとミッションごとにダイヤルを設定して試します。確率は考え方を見せるための作った例です。
計算の答えは確実でなければなりません。毎回、正しい数を。
あなた: 7 × 8は?
次のトークン・確率
- “7 × 8” 70% · “7かける8” 22% · “計算結果” 8%
- “は” 90% · “の答えは” 8% · “で” 2%
- “56” 84% · “54” 7% · “58” 5% · “65” 3% · “むらさき” 1%
- “です。” 90% · “!” 10%
✓ 温度が低いと、いちばん上のトークンがほぼ毎回勝つので、3つの返事はどれも56。事実、計算、コードには、低い温度が向いています。
アイデア出し:ロボット部が、投票用にいろいろなチーム名をほしがっています。
あなた: ロボット部のチーム名を考えて。
次のトークン・確率
- “チーム” 100%
- “稲妻” 50% · “鋼鉄” 20% · “歯車” 14% · “ピクセル” 10% · “ターボ” 6%
- “フクロウ” 55% · “ロケット” 20% · “ウィザード” 12% · “キツネ” 9% · “スパーク” 4%
✓ 温度を上げると、可能性の低い言葉にも本当にチャンスが生まれ、引くたびに新しい名前が出ます。アイデア出しでは、いろいろ出ることが大事です。
物語の書き出しは読む人をおどろかせたいけれど、意味は通じないといけません。
あなた: 灯台の短い物語を書き始めて。
次のトークン・確率
- “灯台守は” 100%
- “霧の中で” 48% · “階段の下で” 26% · “ある夜” 18% · “のの” 5% · “食べて” 3%
- “一通の” 66% · “古い” 20% · “小さな” 10% · “ぐろぷ” 4%
- “手紙” 40% · “クジラ” 25% · “扉” 20% · “くつ下” 10% · “をを” 5%
- “を見つけた。” 50% · “の声を聞いた。” 28% · “を絵に描いた。” 17% · “バナナバナナ” 5%
✓ 温度を高くしておどろきを出し、top-kを3にして、各ステップでありそうな3つの言葉だけが引かれるようにする。創造的で、でたらめなしっぽは切り落とされます。
あなたにとっての意味は?
Vireoに同じ質問を2回したら、言い方の違う答えが返ってきました。何が起きた?
- トークンが1つずつ、確率からもう一度引かれた (答え)
- 2つの質問のあいだに、Vireoが新しいことを学んだ
長い返事が画面に1語ずつ表示されるのはなぜ?
- トークンは、1つ前のトークンができてから作られるから (答え)
- アプリを親しみやすく見せるためのアニメーションだから
開発者が、税金の申告書を記入するツールの温度を0にしました。よい考え?
- よい考え。毎回いちばん上のトークンが勝つので、答えが安定する (答え)
- よくない。温度0ではモデルが止まってしまう
覚えておこう
返事は確率のリストからトークンを1つずつ引いて作られます。温度が低いと安定し、高いと創造的になります。
返事は確率からトークンを1つずつ引いて作られます。温度が低いと確実、高いと創造的。top-kででたらめを切り落とします。
押さえておきたい事実
- 今の大規模言語モデルのもとになった設計トランスフォーマーは、出力をトークン1つずつ生成し、新しいトークンを次の入力として戻していきます。 · 出典: Vaswani et al., Attention Is All You Need, Google, 2017
- いつもいちばんありそうな言葉を選ぶと、平凡でくり返しの多い文章になりがちなことがわかり、確率の大部分をカバーする最小限のトークンだけから引くnucleus(top-p)サンプリングが提案されました。 · 出典: Holtzman et al., The Curious Case of Neural Text Degeneration, ICLR 2020
- ありそうなトークン上位k個だけから引くtop-kサンプリングは、ふつうの方法より多彩な物語を生成するのに使われました。 · 出典: Fan, Lewis and Dauphin, Hierarchical Neural Story Generation, ACL 2018
- 温度は、モデルのもとの点数を確率に変える前に割る数です。1より小さいといちばん人気の候補がより強くなり、1より大きいと確率がならされます。
更新日:
よくある質問
LLMの温度(temperature)とは?
トークンを引く前に確率の形を変える設定です。低い値では、いちばんありそうなトークンがほぼ毎回勝ち、答えが安定します。高い値では確率がならされ、返事が多彩になりますが、上げすぎると意味が通じなくなります。
AIチャットボットが同じ質問に違う答えを返すのはなぜ?
チャットボットはふつう、いつもいちばん上を選ぶのではなく、確率のリストからトークンを引くからです。返事の最初のほうで違うものが引かれると、言い方が変わり、ときには答えも変わります。
top-kサンプリングとは?
ありそうな次のトークン上位k個の中からだけ引くようにする方法です。ある程度の多彩さを保ちながら、ありそうにない、でたらめになりがちなトークンの長いしっぽを切り落とします。
LLMはいつ書くのをやめるかを、どうやって知るの?
学習中に、返事の終わりを示す特別な終了トークンを覚えています。そのトークンが引かれるか、長さの上限に達すると、生成が終わります。
関連用語
