巨大なモデルが、ほぼ何も学習せずにあなたのタスクを覚える仕組み。

SRC·18 Source
巨大なモデルを、メールで送れるほど小さな断片の学習だけで適応させる。

巨大なモデルを、メールで送れるほど小さな断片の学習だけで適応させる。

完全なファインチューニングは、数十億の重みを持つモデルのすべての重みを動かし、タスクごとにまるごとのコピーを保存する。そんなものを何十個も抱えてはいられない。LoRAは巨大なモデルを凍結し、代わりにごく小さな付加物だけを学習する。メールで送れて、差し替えられて、積み重ねられるほど軽い。土台は同じモデル、まったく新しいスキル、保存するものはほぼゼロ。
古いやり方は全部を再学習する——タスクごとにまるごとの新しいコピー。

古いやり方は全部を再学習する——タスクごとにまるごとの新しいコピー。

WFT=W0+ΔW,ΔWRd×kW_{\text{FT}} = W_0 + \Delta W, \quad \Delta W \in \mathbb{R}^{d \times k}
巨大なモデルを専門化するため、古典的なファインチューニングは元の重みとまったく同じ大きさの変化ΔWを学習する——そのd×k個の数すべてが自由に動く。これを10個のタスクで行えば、まるごとのモデルを10個保存することになる。地図帳をまるごと刷り直すようなものだ。たった一本の通りを描き直すだけなのに、本一冊を作り直してしまう。
第一手:巨大なモデルには一切手を触れない。

第一手:巨大なモデルには一切手を触れない。

h=W0x+ΔWx,W0  frozenh = W_0 x + \Delta W x, \quad W_0 \;\text{frozen}
LoRAは事前学習済みの重みを凍結したまま——一つも学習しない。出力は巨大なモデル自身の答えに、自分で学習する小さな別個の補正を足したものだ。設計図の上に透明なアセテートのシートを重ねるようなもの。下の図面は決して変わらず、修正は上の重ねたシートに描き込む。
第二手:その補正を単純にする。

第二手:その補正を単純にする。

ΔW=BA,BRd×r, ARr×k,  rmin(d,k)\Delta W = B A, \quad B \in \mathbb{R}^{d \times r},\ A \in \mathbb{R}^{r \times k},\ \ r \ll \min(d,k)
ここがコツだ。変化を低ランクに強制する。完全な d×k のブロックの代わりに、ΔW = B·A と書く——幅 r という細いくびれを共有する2つの痩せた行列で、どちらの辺よりもずっと小さい。操り人形のように:ほんの数本の糸が、広がった人形全体を動かす。大きな更新には、実のところほんの一握りの独立した引きしかない。
では、実際に学習する分を数えてみよう。

では、実際に学習する分を数えてみよう。

r(d+k)    dkr(d+k) \;\ll\; d\,k
完全な更新は d×k 個の数だ。痩せた行列2つなら、わずか r(d+k) 個。幅 12288 の層で r = 8 なら、これは数百分の一——モデル一台分の調整が、何十個も保存できる断片に縮む。仕立屋のわずかな手直しのように:誰も新しいスーツを縫いはしない。ほんの数針で、既製品があなたのものになる。
何も足さない状態から始め、そっと入っていく。

何も足さない状態から始め、そっと入っていく。

h=W0x+αrBAx,B=0,  AN(0,σ2)  (at init)h = W_0 x + \frac{\alpha}{r} B A x, \qquad B = 0,\ \ A \sim \mathcal{N}(0,\sigma^2)\ \ \text{(at init)}
安全に始めるには? B = 0 とし、A には小さなランダムなノイズを詰める。すると付加物はちょうどゼロから始まる——最初の一歩では、手つかずの巨大なモデルそのものとして振る舞う。それから学習が、α/r で穏やかに調整しながら補正を少しずつ入れていく。舞台の照明が暗転から立ち上がるように:はじめは何も足されず、やがて新しい場面がゆっくりと現れる。決して急にではなく。
動かすとき、付加物は消える。

動かすとき、付加物は消える。

W=W0+αrBAW = W_0 + \frac{\alpha}{r} B A
学習が済んだら、痩せた行列2つを大きな行列の中に畳み込んで戻す。モデルは再び一つの行列になる——実行時の余分な手間はゼロ、元より少しも遅くならない。そして各スキルはそれ自身の小さな B·A にすぎないので、凍結した一つの巨大なモデルがいくつもまとえる。替えビットのトレイが付いた電動ドリル一台のように:モーターはそのまま、仕事ごとに別の先端を差し込む。
🌱 新しいスキルがこれほど小さいなら、それをすでに知っていたのは誰だ?

🌱 新しいスキルがこれほど小さいなら、それをすでに知っていたのは誰だ?

汎用の巨大なモデルをあなたの専門家に変える変化は、驚くほど小さい——数本の細い数字の帯だ。そこに静かな問いが残る。あなたが新しいスキルを足したのか、それとも巨大なモデルがすでにそれを抱えていて、数本の糸が表へ引き出すのを待っていたのか。ファインチューニングは教えているのではなく、明らかにしているのかもしれない。
タップ →↑スワイプで詳しく↓スワイプで終了