ICLR 2022 (Poster). [Paper] [Page] [Github]
Edward Hu, yelong shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
Microsoft Corporation
06 Oct 2021
연구 주제 및 주요 기여
LoRA는 Fine-tuning의 비용을 줄이고자 고안된 Adapter-based methods 중 하나이다.
Fine-tuning시 기존 Dense layer의 파라미터를 변경하지 않고, r차원으로 줄였다가 다시 복원하는 Low-Rank Adaptation을 추가해 학습하도록 제안했다.
이는 추론시 기존 파라미터와 병합할 수 있기 때문에 Inference Latency의 증가가 없고, Downstream task가 많은 경우 사전 학습 모델은 공유하고 LoRA 모듈은 task에 맞게 바꿈으로써 저장 공간을 줄일 수 있다. 또한 학습시 기존 Dense layer의 수많은 파라미터를 학습하지 않기 때문에 GPU 사용률이 현격히 감소한다.
연구 배경
Downstream task를 위해서 사전 학습된 모델을 재학습하는 것을 Adapation이라 하고, 모델의 모든 파라미터를 재학습하는 것을 Fine-tuning 이라고 한다. Fine-tuning은 NLP에서 각각의 필요에 의해 많이 사용되는 방법이었지만, 모델의 크기가 점점 커지면서 그에 대한 비용은 무시할 수 없을만큼 매우 커졌다.
이런 Fine-tuning의 비용을 줄이고자 고안된 방법론으로는 1) 기존 모델에 학습 가능한 Adapter 모듈을 추가하는 adapter-based methods와 2) prompt squence의 일부를 사용하는 prefix-based methods가 있다.
LLM은 latency를 작게 유지하기 위해 병렬 연산에 의존하는데, adapter layer는 squencial하므로 아주 작은 병목 차원이더라도 latency가 눈에 띄게 증가한다. 또한, prefix tuning의 경우는 시퀀스 길이 중 일부를 사용하므로 근본적으로 성능이 저하될 수 밖에 없다.
주요 제안
Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. (Aghajanyan et al.,2020)에서는 사전 학습 모델은 낮은 "intrinsic dimension"을 가지고 있어서 더 작은 subspace로 random projection되어도 효율적으로 학습할 수 있다고 한다.
저자들은 이에 영감을 받아 adaptation 중 생기는 "가중치의 변화"도 낮은 intrinsic rank를 가지고 있다고 가정했고, 따라서 가중치의 변화 $\Delta W$를 $BA$로 low-rank decomposition 했다. ($W, \Delta W \in \mathbb{R}^{d \times k}$, $B \in \mathbb{R}^{d \times r}$, $A \in \mathbb{R}^{r \times k}$, $r \ll \min(d, k)$)

학습의 시작시에는 $\Delta W = BA$는 0 행렬이어야 하므로 A 행렬은 random Gaussian initialization, B 행렬은 0 행렬로 초기화했고, $\Delta W$는 $\frac{\alpha}{r}$로 스케일링했다. ($\alpha$를 조정하는 것은 학습률을 조정하는 것과 거의 같기에 논문에서는 가장 처음 사용한 r의 값으로 고정했다.)
즉, output vector $h = W_0x + \frac{\alpha}{r} \Delta Wx = W_0x + \frac{\alpha}{r} BAx$ 이다.
Applying LoRA to Transformer
트랜스포머 구조에는 self-attention module에 q, k, v, o(output)의 4개의 weight matrix가 있고, MLP module에는 2개가 있다.
저자들은 단순함과 파라미터 효율성을 위해 attention weights만을 학습시켰고, 실제로는 q, k, v matrices들은 attention heads 갯수만큼 $d_{model} \times d_{\frac{model}{h}}$ matrix $h$개로 나뉘어져 있지만 $d_{model} \times d_{model}$ 의 single matrix처럼 다뤘다.
Practical Benefits and Limitations
LoRA를 적용했을 때의 가장 큰 이점은 메모리와 저장용량에 있다.
GPT-3 175B를 예로 들면, 학습시 frozen 파라미터의 optimizer states를 저장할 필요가 없기 때문에 VRAM 사용량이 1.2TB에서 350GB로 약 3.4배 줄었고, chekcpoint file에도 LoRA 모듈에 대한 값만 저장하면 되기 때문에 rank는 4로 하고 q, v matrix만 학습했을 때는 checkpoint size를 350GB에서 35MB로 약 10,000배 줄었다. 또한 학습시 대다수의 파라미터에 대한 그레디언트 계산을 하지 않아도 되기 때문에 약 25%의 학습속도 증가가 있었다.
또 다른 이점으로는, 다른 Downstream task를 위해 전체 파라미터를 바꿔야 했던 것을 기존 pre-trained model 파라미터는 고정하고 LoRA 모듈만 바꾸면 되는 Switching의 이점이 있다. 하지만 이 경우는 $BA$를 $W$와 병합하지 않기 때문에 추가적인 inferece latency가 발생한다.
성능 비교
모델은 RoBERTa, DeBERTa, GPT-2, GPT3 175B를 사용했고, Fine-Tuning, Adapter tuning (4종류), Bias-only, Prefix-embedding tuning, Prefix-layer tuning 의 방법들로 비교했다.

대체로 trainable parameters가 많을수록 성능이 좋았지만, LoRA는 적은 파라미터로도 높은 성능을 보였다.
Caution
논문 상의 결과는 당연히 모든 task와 데이터셋에 해당되지 않는다. 예를 들어 다른 언어로 사전학습된 모델을 재학습하는 경우에는 당연히 full fine-tuning이 LoRA보다 성능이 좋을 것이다.
심층 분석: Understanding the low-rank updates
Low-Rank 구조는 update weights가 pre-trained weights와 어떻게 연관되었는지에 대한 더 나은 해석가능성을 제공한다.
저자는 다음의 물음의 답을 찾기 위해 일련의 실험들을 수행했다.
1. 다운스트림 성능을 최대화하기 위해 pre-trained weight matrices(q, k, v, o)중 어떤 하위 집합을 adapt해야 하는가?
2. 만약 최적의 adaptation matrix $\Delta W$가 실제로 rank-deficient(행렬의 크기보다 랭크가 더 작은 경우)하다면, 사용하기 좋은 rank는 몇인가?
3. $\Delta W$와 $W$의 연관성은? 둘은 높은 상관관계가 있는가? $W$와 비교했을 때, $\Delta W$는 얼마나 큰가?
Which weight matrices in transformer should we apply LoRA to?
먼저 GPT-3 175B을 18M의 파라미터 제한을 설정해 실험을 했고, 이는 r=8일 때 attention weight type을 1가지만 사용한 것, r=4일 때 weight type을 2가지 사용한 것, r=2일 때 weight type을 4가지 모두 사용한 것에 해당한다.

- query, key matrix 중 하나만 사용한 것이 성능이 가장 안좋았고, query, value 둘다 사용하는 것이 성능이 가장 좋았다.
- r=4로도 충분히 정보를 캡쳐하므로, 큰 rank로 하나의 type만 학습하기보다 적은 rank라도 여러 weight matrices를 학습하는게 합당하다.
What is the optimal rank r for LoRA?

$W_q$ 혼자 학습하는 것이 더 큰 r을 필요로 하는 것에 반해, $W_q, W_v$ 를 같이 학습할 때는 r이 1만큼 작은 것도 충분했다.
이는 update matrix $\Delta W$ 가 매우 작은 intrinsic rank를 가지고 있다는 것을 뜻한다. 저자는 다른 r과 다른 랜덤 시드로도 실험했고, 이에 따라 더 큰 r이 더 의미있는 부분공간을 포함하지 않는다고 주장한다.
Subspace similarity between different r.
같은 사전 학습 모델으로부터 학습된 r=8, r=64인 모델의 adaptation matrices 중 48th layer의 $A$를 각각 $A_{r=8}, A_{r=64}$라고 하자. 저자들은 SVD를 사용해 이들의 right-singular unitary matrices인 $U_{A_{r=8}}, U_{A_{r=64}}$를 구했다.
저자들은 $U_{A_{r=8}}$에 있는 i개의 top i singular vectors를 통해 span된 부분공간이 $U_{A_{r=64}}$에 있는 j개의 top j singular vectors를 통해 span된 부분공간과 얼마나 겹치는 지를 알고 싶었다.
이를 측정하기 위해 Grassmann distance를 기반으로 하는 normalized subspace similarity를 고안했다.

$\phi(\cdot)$가 1이면 부분공간이 완전히 겹치는 것이고, 0이면 완전히 분리된 것이다.

그래프를 보면 i, j의 값이 작을수록 top i, j singular vectors들의 부분공간이 더 겹치는 것(색이 더 밝음)을 확인할 수 있다. 특히, i=j=1인 1차원의 경우는 0.5이상의 값으로 이는 GPT-3의 downstream task에서 왜 r=1이 잘 동작했는지를 보여준다.
Subspace similarity between different random seeds.
저자들은 다른 랜덤 시드를 가지고 r=64를 다시 학습했고, 2번의 다른 랜덤 시드 실험에서 모두 $\Delta W_q$가 $\Delta W_v$보다 더 큰 intrinsic rank를 가지고 있는 것을 확인했다. 비교를 위해 random Gaussian matrices도 그래프에 그렸다.

How does the adaptation matrix $\Delta W$ compare to $W$?
아래의 질문들을 통해 사전 학습 모델을 adapting하는 근본적인 메커니즘에 대한 이해를 높일 수 있다.
- $\Delta W$는 $W$와 높은 상관관계가 있는가?
- 수학적으로, $\Delta W$는 $W$의 top singular directions에 대부분 포함되어 있는가?
- $\Delta W$는 그것과 일치하는 $W$의 방향과 비교했을 때 얼마나 큰가?
이 질문에 답하기 위해, 저자는 다음의 과정을 거쳤다.
1. $U^\top WV^\top$를 계산해 $W$를 $\Delta W$의 r차원 부분공간(subspace)으로 투영. ($U/V$는 $\Delta W$의 left/right singular-vector matrix)
2. $||U^\top WV^\top||_F$, $||W||_F$ 프로베니우스 놈 비교.
3. 비교를 위해, $||U^\top WV^\top||_F$의 $U, V$를 $W$의 top r singular vectors 또는 random matrix로 변경

이를 통해 몇가지 결론을 도출할 수 있었다.
1. random matrix와 비교해서, $\Delta W$는 $W$와 높은 상관관계를 갖고 있다.
2. $W$의 top singular directions을 반복하는 것 대신, $\Delta W$는 $W$에서 강조되지 않은 방향만을 증폭시키고 있다.
3. amplification factor가 다소 크다. ($21.5 \approx 6.91/0.32$ for $r=4$) (Section H.3에 왜 r=64가 더 작은 증폭 요소를 갖고 있는지 나와있음.)
이는 low-rank adaptation matrix가 사전 학습에서는 강조되지 않았지만, 특정 Downstream task에서 중요한 특징들을 증폭하고 있다는 것을 보여준다.
ICLR 2022 (Poster). [Paper] [Page] [Github]
Edward Hu, yelong shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, Weizhu Chen
Microsoft Corporation
06 Oct 2021
연구 주제 및 주요 기여
LoRA는 Fine-tuning의 비용을 줄이고자 고안된 Adapter-based methods 중 하나이다.
Fine-tuning시 기존 Dense layer의 파라미터를 변경하지 않고, r차원으로 줄였다가 다시 복원하는 Low-Rank Adaptation을 추가해 학습하도록 제안했다.
이는 추론시 기존 파라미터와 병합할 수 있기 때문에 Inference Latency의 증가가 없고, Downstream task가 많은 경우 사전 학습 모델은 공유하고 LoRA 모듈은 task에 맞게 바꿈으로써 저장 공간을 줄일 수 있다. 또한 학습시 기존 Dense layer의 수많은 파라미터를 학습하지 않기 때문에 GPU 사용률이 현격히 감소한다.
연구 배경
Downstream task를 위해서 사전 학습된 모델을 재학습하는 것을 Adapation이라 하고, 모델의 모든 파라미터를 재학습하는 것을 Fine-tuning 이라고 한다. Fine-tuning은 NLP에서 각각의 필요에 의해 많이 사용되는 방법이었지만, 모델의 크기가 점점 커지면서 그에 대한 비용은 무시할 수 없을만큼 매우 커졌다.
이런 Fine-tuning의 비용을 줄이고자 고안된 방법론으로는 1) 기존 모델에 학습 가능한 Adapter 모듈을 추가하는 adapter-based methods와 2) prompt squence의 일부를 사용하는 prefix-based methods가 있다.
LLM은 latency를 작게 유지하기 위해 병렬 연산에 의존하는데, adapter layer는 squencial하므로 아주 작은 병목 차원이더라도 latency가 눈에 띄게 증가한다. 또한, prefix tuning의 경우는 시퀀스 길이 중 일부를 사용하므로 근본적으로 성능이 저하될 수 밖에 없다.
주요 제안
Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. (Aghajanyan et al.,2020)에서는 사전 학습 모델은 낮은 "intrinsic dimension"을 가지고 있어서 더 작은 subspace로 random projection되어도 효율적으로 학습할 수 있다고 한다.
저자들은 이에 영감을 받아 adaptation 중 생기는 "가중치의 변화"도 낮은 intrinsic rank를 가지고 있다고 가정했고, 따라서 가중치의 변화

학습의 시작시에는
즉, output vector
Applying LoRA to Transformer
트랜스포머 구조에는 self-attention module에 q, k, v, o(output)의 4개의 weight matrix가 있고, MLP module에는 2개가 있다.
저자들은 단순함과 파라미터 효율성을 위해 attention weights만을 학습시켰고, 실제로는 q, k, v matrices들은 attention heads 갯수만큼
Practical Benefits and Limitations
LoRA를 적용했을 때의 가장 큰 이점은 메모리와 저장용량에 있다.
GPT-3 175B를 예로 들면, 학습시 frozen 파라미터의 optimizer states를 저장할 필요가 없기 때문에 VRAM 사용량이 1.2TB에서 350GB로 약 3.4배 줄었고, chekcpoint file에도 LoRA 모듈에 대한 값만 저장하면 되기 때문에 rank는 4로 하고 q, v matrix만 학습했을 때는 checkpoint size를 350GB에서 35MB로 약 10,000배 줄었다. 또한 학습시 대다수의 파라미터에 대한 그레디언트 계산을 하지 않아도 되기 때문에 약 25%의 학습속도 증가가 있었다.
또 다른 이점으로는, 다른 Downstream task를 위해 전체 파라미터를 바꿔야 했던 것을 기존 pre-trained model 파라미터는 고정하고 LoRA 모듈만 바꾸면 되는 Switching의 이점이 있다. 하지만 이 경우는
성능 비교
모델은 RoBERTa, DeBERTa, GPT-2, GPT3 175B를 사용했고, Fine-Tuning, Adapter tuning (4종류), Bias-only, Prefix-embedding tuning, Prefix-layer tuning 의 방법들로 비교했다.

대체로 trainable parameters가 많을수록 성능이 좋았지만, LoRA는 적은 파라미터로도 높은 성능을 보였다.
Caution
논문 상의 결과는 당연히 모든 task와 데이터셋에 해당되지 않는다. 예를 들어 다른 언어로 사전학습된 모델을 재학습하는 경우에는 당연히 full fine-tuning이 LoRA보다 성능이 좋을 것이다.
심층 분석: Understanding the low-rank updates
Low-Rank 구조는 update weights가 pre-trained weights와 어떻게 연관되었는지에 대한 더 나은 해석가능성을 제공한다.
저자는 다음의 물음의 답을 찾기 위해 일련의 실험들을 수행했다.
1. 다운스트림 성능을 최대화하기 위해 pre-trained weight matrices(q, k, v, o)중 어떤 하위 집합을 adapt해야 하는가?
2. 만약 최적의 adaptation matrix
3.
Which weight matrices in transformer should we apply LoRA to?
먼저 GPT-3 175B을 18M의 파라미터 제한을 설정해 실험을 했고, 이는 r=8일 때 attention weight type을 1가지만 사용한 것, r=4일 때 weight type을 2가지 사용한 것, r=2일 때 weight type을 4가지 모두 사용한 것에 해당한다.

- query, key matrix 중 하나만 사용한 것이 성능이 가장 안좋았고, query, value 둘다 사용하는 것이 성능이 가장 좋았다.
- r=4로도 충분히 정보를 캡쳐하므로, 큰 rank로 하나의 type만 학습하기보다 적은 rank라도 여러 weight matrices를 학습하는게 합당하다.
What is the optimal rank r for LoRA?

이는 update matrix
Subspace similarity between different r.
같은 사전 학습 모델으로부터 학습된 r=8, r=64인 모델의 adaptation matrices 중 48th layer의
저자들은
이를 측정하기 위해 Grassmann distance를 기반으로 하는 normalized subspace similarity를 고안했다.


그래프를 보면 i, j의 값이 작을수록 top i, j singular vectors들의 부분공간이 더 겹치는 것(색이 더 밝음)을 확인할 수 있다. 특히, i=j=1인 1차원의 경우는 0.5이상의 값으로 이는 GPT-3의 downstream task에서 왜 r=1이 잘 동작했는지를 보여준다.
Subspace similarity between different random seeds.
저자들은 다른 랜덤 시드를 가지고 r=64를 다시 학습했고, 2번의 다른 랜덤 시드 실험에서 모두

How does the adaptation matrix compare to ?
아래의 질문들을 통해 사전 학습 모델을 adapting하는 근본적인 메커니즘에 대한 이해를 높일 수 있다.
-
- 수학적으로,
-
이 질문에 답하기 위해, 저자는 다음의 과정을 거쳤다.
1.
2.
3. 비교를 위해,

이를 통해 몇가지 결론을 도출할 수 있었다.
1. random matrix와 비교해서,
2.
3. amplification factor가 다소 크다. (
이는 low-rank adaptation matrix가 사전 학습에서는 강조되지 않았지만, 특정 Downstream task에서 중요한 특징들을 증폭하고 있다는 것을 보여준다.