モデルの最後のベクトルがどう単語になるか——そして、その思考をどう読み取るか。
SRC·48
Source
モデルの最後の一手は、私たちが決して見ない一手だ。
ネットワーク全体を通り抜けると、各単語は一つのベクトル——たった一点——として終わる。最後の一手は、その点を知っているすべての単語に対する自信ありげな予想へと変える。私たちはめったに見ない。だがその一手は、頂上だけでなく上る途中のどの階でも読み取れる——そこでこそ、モデルの思考が実際に見えるものになる。
一つのベクトルが、単語ごとのスコアへと広がる。
その最後のベクトルをunembedding——単語ごとに1行ある大きな表——に掛ける。すると単語ごとに数値、logitが一つ落ちてくる。各行はそれ自体が同じ空間の方向なので、ある単語のスコアとは、ベクトルがどれだけそれを指しているかに他ならない。標識の輪の中の方位磁針のように:針が真っ直ぐ指した標識が勝つ。あとはいつものようにsoftmaxがスコアを確率に変える。
多くの場合、同じ表が単語を読み込み、また名付けて返す。
その表はどこから来るのか。多くのモデルは入力の辞書をそのまま使い回す——各単語をベクトルに変えたまさにその行列を、今度は逆向きに使ってスコアを付けるのだ。だからある単語のlogitとは、最後のベクトルがその単語自身のembeddingにどれだけ似ているかということ。一つの表で、両方向。施錠も開錠もする一本の鍵のように:意味を読み込み、また書き出す。(すべてのモデルが結びつけるわけではない——二つ持つものもある。)
その読み取りヘッドを、頂上だけでなくどの階にも向ける。
ここがコツだ。どの層も同じ共有ベクトルに、同じ言語で書き込む——だから頂上向けに作った読み取りヘッドがどの階でも使える。途中の高さでベクトルにunembeddingを当てれば、その深さでのモデルの下書きの予想が得られる。ガラスのエレベーターのように:上りながら壁越しに各階を読む。この一層ごとの覗き見がlogit lensだ。
レンズを通すと、答えは早くに現れる。
下書きを眺めると、驚くことが見えてくる——最終的な単語は、しばしば頂上よりずっと前に決まっている。中ほどの階がそれに落ち着き、上の階は主にそれをより確かにするだけで、別物にはしない。思考は早く終わり、あとは仕上げだ。現像されていくインスタント写真のように:絵は完全にくっきりするずっと前から読み取れる。(これはよくあるパターンであって法則ではない——難しいトークンは最後まで争う。)
このレンズは少しズルをする。だから、より鋭いレンズを磨く。
難点が一つ:この手は、どの階もすでに頂上の言語を話していると仮定している。最初のほうの階はそうではないので、その下書きはでたらめに読めることがある。直し方は、階ごとに小さな翻訳器を学ぶこと——各ベクトルを読む前に最終言語へ書き直す、ささやかな回転とずらしだ。合わない眼鏡、そして正しい度数のように:同じページが、急に焦点を結ぶ。これがtuned lensだ。
最後のステップは脚注ではない。窓だ。
つまり出力射影は、ただの配管以上のものだ。それを内側へ向ければ、モデルの隠れた状態が読めるようになる——事実が浮かび、選択が固まり、誤った曲がり角が現れるのが見える。早めに降りることもできる——ある階が十分に確かになれば、もう上らなくていい。底がガラスの舟のように:飛び込まずに深みを読む。出口への地図は、初めから窓だったのだ。
その単語は、何階も前から分かっていた。では、その後は何だった?
答えが中ほどですでに読めるなら、上の階は何のためにある?単語を探しているのではないのかもしれない——言わない単語たちを天秤にかけ、言葉を濁し、確かめ、自分を抑えているのかもしれない。早くに決めながら、それでも上り続ける心。🌱 残りの上りは、思考なのか——それとも迷いなのか?
タップ →↑スワイプで詳しく↓スワイプで終了クリックまたは → で次へ↑ で詳しくesc で終了