LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
November 18, 2023Li et al. (2018)とAghajanyan et al. (2020)は、Large Language Models (LLM)のファインチューニングにかかる計算資源は大きいが、下流タスクに必要なパラメータ数はLLMのパラメタ数よりもはるかに少ないと主張した。 LoRAは、この仮説によりファインチューニングを避け、LLMの重みと線形結合すると下流タスクに最適な重みに近似できる小さな行列を求める。 LLMの重みを\(W_0\in\mathbb{R}^{d\times k}\)とすると、\(W_0+BA\ (B\in\mathbb{R}^{d\times r}, A\in\mathbb{R}^{r\times k}, r \ll\min (d, k))\)が下流タスクに最適な重みに近づくように、ファインチューニングにかわって\(W_0\)を更新せず\(B,\ A\)のみを更新する。 \(r\)が\(d, k\)よりも小さいので、ファインチューニングよりも学習時間は短い。 また、複数の下流タスクを入力に適用する場合、\(W_0x\)を共有できるので、推論に必要な計算も\(W_0\)を更新するファインチューニングより少ない。
\(A, B\)は、それぞれ、ガウス分布で生成したランダムな値と0で初期化される。 Transformerに適用する場合、MLPと自己注意機構のうち、自己注意機構にのみLoRAを適用する。 ただし、自己注意機構の重み\(W_q, W_k, W_v, W_o\)のうち、\(W_q, W_k, W_v\)については、マルチヘッド注意機構のために等分割する前の行列にLoRAを適用する。