モデルは数十億個の数値の塊。この数値は行列の形で整理されており、役割ごとに行列がある。モデルの「知識」や「能力」は、行列の中の数値そのものに宿っている。
学習データに対する出力と正解のズレを計算し、そのズレを小さくする方向に行列の数値を少しずつ書き換える操作を何千回も繰り返すこと。
「自分は何を探しているか」を定義する変換。問い合わせ側の役割を担い、Kとの内積で関連度スコアを算出する。
「自分は何を持っているか」のマッチング用ラベルへの変換。Qとの方向の一致度で注目度が決まる。
注目されたときに相手に渡す中身への変換。xそのものではなく「渡す用途に特化した学習済みの変換」を通したもの。
Attention結果を「元のxと同じ空間」に戻す変換。残差接続(x + ...)で足し算するには同じ空間にいる必要がある。
次元を拡大し、活性化関数で非線形変換を施す。非線形性がないと行列を何層重ねても1つの行列と同じになり、層を重ねる意味がなくなる。
拡大された次元を元のサイズに戻す。W1で広げた空間での非線形変換結果を、Attentionと合流可能な形に圧縮する。
| 行列 | 所属 | 役割 | LoRA |
|---|---|---|---|
| Wq | Attention | 問い合わせ用に変換 | 推奨 |
| Wk | Attention | マッチング用ラベルに変換 | — |
| Wv | Attention | 渡す中身用に変換 | 推奨 |
| Wo | Attention | 結果を元の空間に戻す | 適用可能 |
| W1 | FFN | 次元を拡大 | 適用可能 |
| W2 | FFN | 次元を元に戻す | 適用可能 |