👩
LoRA
ややこしいが、"Adapter" (Houlsby) とは別の技術。派生でもない。
- 対象は線形層のパラメータのみ
- 線形層:Affine変換のみを行う層。例は以下
- 出力層
- LMヘッド、各NNの出力層
- 注意機構の中で
-
q_proj: Query写像する層 -
k_proj: Key写像する層 -
v_proj: Value写像する層 -
o_proj: 出力層
-
- FFNの中で
-
up_proj: 入力層 -
down_proj: 出力層 -
gate_proj: GLU
-
- 出力層
- 線形層:Affine変換のみを行う層。例は以下
- そのパラメータの差分をパラメータとして学習する
具体的な方法
対象の線形層(前段→後段の重み)の元の重みを
この
\Delta W の計算
- 前段 → R
- R → 後段
の形でそれぞれ重み
- この層
のサイズ(ノード数=次元数)は前後の層より「かなり小さく」する。R - 数式では「
」と書く。\text{Rのサイズ} \ll min(\text{前段のサイズ}, \text{後段のサイズ}) - このとき
のサイズは低ランク ( Low Rank ) であるという。R - 例えば前段と後段がそれぞれ
次元に対して768 はR 次元といった具合。8
- 数式では「
-
は乱数で、W_A はW_B で初期化する。0 - そのため、学習開始時点では
。\Delta W = 0
- そのため、学習開始時点では
Discussion