モデルがプロンプトだけから新しいタスクを身につける——何ひとつ書き換えずに。

SRC·20 Source
プロンプトから新しいタスクを学ぶ——重みは一つも動かないのに。

プロンプトから新しいタスクを学ぶ——重みは一つも動かないのに。

学習したことのないタスクを見せてみる——いくつかの例と、新しい問い——すると、ただそれをやってのける。ファインチューニングなし。勾配ステップなし。内部は何ひとつ書き換わらない。これが文脈内学習(in-context learning)だ。モデルはプロンプトだけから仕事を読み取り、たった一度の順伝播でこなし、そして手放す。インストールするものが何もない教え方。
ふつう学習とは変わることだ。ここでは、何も変わらない。

ふつう学習とは変わることだ。ここでは、何も変わらない。

Δθ=0\Delta\theta = 0
学習はモデルを書き換える——勾配降下が10億もの重みを少しずつ動かし、より良くしていく。文脈内学習はそれをまったくしない。重みはかちかちに凍りついたまま、Δθ = 0。では、新しい技能はどこから来るのか。万華鏡のように:鏡もビーズも決して変わらない——ひとひねりすれば、まったく新しい模様が現れる。すべて、もとから中にあったものだけでできている。
ルールは教えない。いくつかの例を見せるだけ。

ルールは教えない。いくつかの例を見せるだけ。

y^=argmaxy pθ ⁣(y(x1,y1),,(xk,yk),xq),θ fixed\hat{y} = \arg\max_{y}\ p_\theta\!\left(y \mid (x_1,y_1),\dots,(x_k,y_k),\,x_q\right),\quad \theta\ \text{fixed}
ひと握りのペア——入力、そして答え——のあとに新しい入力を一つ、ぜんぶをひとつの長いプロンプトとして並べる。モデルはただ、その模様を続けていく。ルールは一度も述べていない。例こそが指示なのだ。ものまね芸人のように:誰かの声色のセリフをいくつか渡せば、その声のままみごとに続けてみせる——その声の仕組みを書き留めた者は誰もいない。同じ「次の単語」エンジンが、ただ新しく狙いを定めただけ。
タスクを学んでいるのではない。すでに持っているものを探し当てているのだ。

タスクを学んでいるのではない。すでに持っているものを探し当てているのだ。

p(yx,D)=p(yx,T)p(TD)dTp(y \mid x, D) = \int p(y \mid x, T)\, p(T \mid D)\, dT
事前学習で、あなたのものに似たタスクを、すでに千は通り過ぎてきている。例は新しい技能を教えるのではなく、どの技能を走らせるかを告げるだけだ。形式的に言えば、その答えは、あり得るすべてのタスクにわたって平均をとり、それぞれがあなたの例にどれだけ合うかで重みづけしたものになる。用務員のキーホルダーのように:鍵はもう全部、束で持っている——例はただ、どれがこの扉を開けるかを告げるだけ。
例の一つひとつが候補を絞る。効くのは最初の数個。

例の一つひとつが候補を絞る。効くのは最初の数個。

p(TDk+1)p(TDk)p(xk+1,yk+1T)p(T \mid D_{k+1}) \propto p(T \mid D_k)\, p(x_{k+1},y_{k+1} \mid T)
新しい例が一つ来るたびに、候補全体の重みが付け直される。それをうまく言い当てたタスクは浮かび上がり、ほかは薄れていく。だから例が増えれば推測は鋭くなる——ただし収穫逓減とともに。ふつうはひと握りでほとんどの仕事が済み、それ以上積んでもほとんど動かない(かえって混乱させることさえある)。双眼鏡のピント合わせのように:最初の数回でぐっと像が締まる。そのあとは、ほとんど回していないも同然だ。
驚くのはここから。学習しているのは順伝播そのものかもしれない。

驚くのはここから。学習しているのは順伝播そのものかもしれない。

w^=w0ηwi(wxiyi)2,y^q=w^xq\hat{w} = w_0 - \eta\,\nabla_{w}\textstyle\sum_{i}\left(w^\top x_i - y_i\right)^2,\qquad \hat{y}_q = \hat{w}^\top x_q
おもちゃのように削ぎ落としてみる——単純な線形のタスク、単純化したattention——すると、数式の中に本物の学習ステップを読み取れる。たった一度のパスが、使い捨てのモデルをあなたの例に当てはめ、そして予測するのだ。カードカウンターのように:すでに見えた数枚から、頭の中で静かに確率を合わせていく——まるごとの計算が、ただ一瞥の中に隠れている。おもちゃの場合には証明済み。本物については有力な推測だ。
プロンプトはプログラムだ。機械そのものは決して変わらない。

プロンプトはプログラムだ。機械そのものは決して変わらない。

再学習なし、新しいコピーなし、重みには一切触れない——あなたが目の前に置いたもので組み替え、次のプロンプトがまた組み替える。技能はまるごと入力の中に宿っている。カメレオンのように:動物そのものは決して変わらない——新しい背景の上に置けば、その色になる、一瞬で、そして次の色にも。
🌱 つかのま、学んだ。そして窓は閉じた。

🌱 つかのま、学んだ。そして窓は閉じた。

つかんだものは何であれ、この文脈の中だけで生きていた。窓を閉じれば消える——モデルは元のまま、何ひとつ抱えてはいない。では、あれは学習だったのか、それとも答えるあいだだけの記憶だったのか。そして、技能がプロンプトとともに現れ、ともに消えていけるのなら——眠っていたあいだ、その技能はいったいどこにあったのだろう。
タップ →↑スワイプで詳しく↓スワイプで終了