モデルが読むことで見ることを学ぶ仕組み。

SRC·39 Source
読むことで見ることを学ぶ。ラベルは一切与えない。

読むことで見ることを学ぶ。ラベルは一切与えない。

一枚の写真と、それにたまたま付いていたキャプションを見せる。それを十億回繰り返す。やがてモデルは見るものと私たちが言うことを結びつけ、画像と言葉はひとつの共有空間に住むようになる。言葉で尋ねれば画像を見つけ、画像を見せれば言葉を見つける。誰も何もラベル付けしていない。世界がすでに書いていたキャプションこそが、すべての教材だった。
古いやり方は、あらゆる画像を決まった数の枠のどれかに押し込むこと。

古いやり方は、あらゆる画像を決まった数の枠のどれかに押し込むこと。

モデルに見ることを教えるため、かつては何百万枚もの画像を閉じたリストに沿って手作業でラベル付けしていた。決まった千個の箱、それ以上はない。遅く、費用がかかり、リストにないものには盲目だ。枠の数が決まったトレーのように、どの枠にも合わないものは収まる場所がない。だがオープンなウェブには、画像とそのそばにある言葉がすでに対になっている。何十億ものキャプションが、すでに書かれ、無料で。だからラベル付けはやめて、対にし始めよう。
別々の二つの読み手、ピクセルと言葉が、ひとつの共有空間を狙う。

別々の二つの読み手、ピクセルと言葉が、ひとつの共有空間を狙う。

I=fimg(x)fimg(x),T=ftxt(t)ftxt(t),I,TRdI = \dfrac{f_{\text{img}}(x)}{\lVert f_{\text{img}}(x)\rVert},\quad T = \dfrac{f_{\text{txt}}(t)}{\lVert f_{\text{txt}}(t)\rVert},\quad I,\,T \in \mathbb{R}^{d}
画像と文はまったく似ていない。だからモデルはそれぞれを専用の読み手に通し、各々がひとつの共有空間に点を出す。どの点も同じ長さに伸ばされ、意味を持つのはその向きだけだ。対になった画像とキャプションが同じ向きを指すまで、二つの読み手をいっしょに訓練する。同じ音に打たれた二つの音叉のように、片方を鳴らせば部屋の反対側にあるもう片方がひとりでに鳴る。違う体、共有された一つの周波数だ。教えるのはラベルではない。一致だ。
正しい組は引き寄せ、誤った組はすべて引き離す。

正しい組は引き寄せ、誤った組はすべて引き離す。

i=logexp(Ii,Ti/τ)j=1Nexp(Ii,Tj/τ)\ell_i = -\log \dfrac{\exp(\langle I_i,\,T_i\rangle/\tau)}{\sum_{j=1}^{N}\exp(\langle I_i,\,T_j\rangle/\tau)}
一つのバッチには千組の画像とキャプションがある。正しい組み合わせが千、誤りが百万近く。規則は無骨だ。各画像について、その自分のキャプションを最高得点にし、残りを押し下げる。二ピースのパズルを山ほどぶちまけたように、どの画像にもぴったりかみ合うキャプションがちょうど一つある。正しい相手はすべて締め、偽者は引き剥がす。式が言うのはこれだけだ。上=正しい組の得点、下=すべての候補の合計、そして τ がこの争いをどれだけ鋭く判定するかを決める。
近さとは向きだけのこと。しかも両方向から判定される。

近さとは向きだけのこと。しかも両方向から判定される。

sim(u,v)=uvuv,L=12(Limgtxt+Ltxtimg)\operatorname{sim}(u,v)=\dfrac{u\cdot v}{\lVert u\rVert\,\lVert v\rVert},\qquad \mathcal{L}=\tfrac{1}{2}\left(\mathcal{L}_{\text{img}\to\text{txt}}+\mathcal{L}_{\text{txt}\to\text{img}}\right)
「最も近い」をどう採点するのか。向きであって距離ではない。二点のあいだの角度の余弦だ。同じ方角なら高得点、直角なら零。屋根の上の二つの風見のように、大事なのは各矢印の大きさではなく、同じ方を向くかどうかだけ。しかも争いは両方向で同時に進む。各画像は自分のキャプションを探し、各キャプションは自分の画像を探す。だから損失はその二つの平均になる。
今や、見るよう訓練されたことのないものに名前を付けられる。

今や、見るよう訓練されたことのないものに名前を付けられる。

y^=argmaxc sim(fimg(x),ftxt(promptc))\hat{y}=\arg\max_{c}\ \operatorname{sim}\big(f_{\text{img}}(x),\,f_{\text{txt}}(\text{prompt}_c)\big)
これがひとつの共有空間の贈り物だ。画像を仕分けるのに、ラベル付きの例はまったく要らない。ただ各選択肢を平たい言葉で説明し、その説明を同じ空間に落とし込み、画像に最も近いものを選べばいい。野鳥図鑑で鳥を見るように、一度も見たことのない鳥の説明を読み、それから木にいる、最もよく合う一羽を見つけ出す。新しいカテゴリーとは、新しい一文にすぎない。再訓練も、新しいラベルもいらない。
ピクセルと言葉のためのひとつの地図。マルチモーダルAIの種だ。

ピクセルと言葉のためのひとつの地図。マルチモーダルAIの種だ。

これらを組み合わせれば、画像とその言葉が隣り合って並ぶ、ひとつの座標系を築いたことになる。欲しいものを打ち込んで写真ライブラリを検索する。最も近い言葉を読み取って画像にキャプションを付ける。そして——ひそやかに——これこそテキストから画像を生む生成器が回る要だ。すでに画像の言語を話すテキストの読み手が、何を描くかを導く。ひとつの軛につながれた二頭の牛のように、まるで違う二頭の動物が、一本の梁で結ばれ、ついに一つとなって引く。
二つは同じ一点に着く。だが同じ意味を分かち合っているのか。

二つは同じ一点に着く。だが同じ意味を分かち合っているのか。

犬の写真と、その犬を指す言葉が、まったく同じ一点に着く。では分かっているのか。それとも、二つがいっしょに現れがちだと学んだだけなのか——雷鳴が稲妻に続くのに、嵐が何かはまるで知らないように。座標を分かち合うことは、意味を分かち合うことではない。私たちは、画像と言葉が隣り合うものだと教えた。だがそのどちらが本当は何であるかは、ついぞ教えなかった。🌱
タップ →↑スワイプで詳しく↓スワイプで終了