꾸준하게

[논문 리뷰] DoRA : Weight-Decomposed Low-Rank Adaptation 본문

논문 리뷰

[논문 리뷰] DoRA : Weight-Decomposed Low-Rank Adaptation

yeonsikc 2024. 4. 11. 17:44

arxiv paper code
Shih-Yang Liu, Chien-Yi Wang, Hongxu Yin, Pavlo Molchanov, Yu-Chiang Frank Wang, Kwang-Ting Cheng, Min-Hung Chen
Kwang-Ting Cheng, Min-Hung Chen
Submitted on 14 Feb 2024 (v1)

Abstract

저자는 PEFT를 위한 LoRA 및 파생 모델들이 많이 연구되고 있지만 정확도 측면에서 여전히 Full Fine-tuning(FT)와의 갭이 있다고 주장한다. 본 논문에서는 Weight-Decomposed Low-Rank Adaptation(DoRA)를 제안한다. 이는 기존의 LoRA에 pre-trained weight를 magnitude(크기)와 direction(방향)으로 분해하여 학습하는 전략이다. 결과적으로 LoRA에서 별도의 overhead 없이 learning capacity와 training stability를 크게 높일 수 있었다고 한다. 또한, LLaMA, LLaVA, VL-BART 모델을 사용한 다양한 Downstream-task에서 LoRA를 능가했다고 한다.

Intoduction

LLM을 Full fine-tuning(FT)하는 것은 비용적으로 비효율적이라 parameter-efficient fine-tuning(PEFT) 방법들이 많이 연구되고 있다. 그 중에서 대표적인 방법이 LoRA이다. 이는 모델의 구조를 바꾸지 않으면서 간단하면서도 효율적인 방법이다. 하지만 저자는 LoRA와 FT에는 Trainable Parameter 수로 인해 여전히 capacity gap이 있다고 주장한다.

저자는 이것을 해소하기 위해 Weight-Decomposed Low-Rank Adaptation (DoRA)를 소개한다. 이는 pre-trained weight를 magnitude와 direction으로 분해하여 fine-tuning을 하게 된다. 이 방법을 통해 경험적으로나 수학적으로나 FT와 유사한 학습 양상을 보인다고 한다. 결과적으로 추가적인 inferency-latency 없이 다양한 모델 및 태스크에서 LoRA를 능가한다.

  • 논리 추론(LLaMA-7B/13B +3.4/+1.0)
  • 시각적 지시 튜닝(LLaVA-7B +0.6)
  • 이미지/비디오-텍스트 이해(VL-BART +0.9/+1.9)

다음은 저자가 주장하는 본 논문의 Contribution이다.

  • LoRA에 비해 추가적인 inference-latency 없이 FT와 유사한 학습이 가능한 새로운 PEFT 기법인 DoRA를 제안한다.
  • FT와 PEFT 기법간의 특이한 패턴을 분석하는 weight decomposition aalysis를 소개한다.
  • NLP와 VL에 관한 다양한 태스크 및 모델에서 DoRA는 LoRA를 능가한다.

Related Works

Parameter-Efficient Fine-Tuning (PEFT)는 Large-scale3. 모델 학습 시 소모되는 자원량을 획기적으로 줄여 학습하는 방법을 뜻한다. 현재, PEFT는 총 세 가지로 구분할 수 있다.

  1. Adapter-based method : pre-trained backbone weight는 freezing하고, trainable module을 추가하고 해당 부분만 학습하는 방법
  2. Prompt-based method : 추가적인 soft tokens(prompts)를 더하여 해당 token vector만 trainable하도록 하는 방법. 하지만 이 방법은 초기값에 민감하여 때때로 전반적으로 효율성에 영향을 끼칠 수 있어 어려움을 겪을 수 있다고 한다.
    위 1, 2 방식처럼 모델의 입력 또는 아키텍처를 변경하는 경우, 기준 모델에 비해 추론 지연 시간이 증가된다.
  3. LoRA (Hu et al., 2022) and its variants : 별도의 inference 지연 없이 PEFT를 실현하는 방법이다.
    저자들의 연구는 3번째 방식에 속하며 본인들의 weight-decompose 방식이 LoRA에 비해 효과가 있는지 검증하였다.

Pattern Analysis of LoRA and FT

Low-Rank Adaptation (LoRA)

분석하기에 앞서, LoRA에 대한 간단한 수식을 살펴본다.

$$ W' = W_0 + \Delta W = W_0 + BA $$

  • $W_0$ : pre-trained weight, $W_0 \in \mathbb{R}^{d \times k}$
  • $\Delta W\ : Trainable weight, $\Delta W \in \mathbb{R}^{d \times k}$
  • $B$ : $\Delta W$를 분해한 weight matrix, $B \in \mathbb{R}^{d \times r}$
  • $A$ : $\Delta W$를 분해한 weight matrix, $A \in \mathbb{R}^{r \times k}$
  • $r \ll \min(d, k)$

pre-trained weight인 $W_0$은 학습할 때에는 Freezing 상태이다. $A$는 uniform Kaiming distribution (He et al., 2015)에 의해 초기화되고 $B$는 zero-initialization이 된다. 따라서, 첫 iteration에서 $BA$의 결괏값은 0이 된다.

Weight Decomposition Analysis

이전의 많은 연구에서 LoRA와 FT 사이의 정확도 차이에 대해 추가적인 분석 없이 주로 Trainable Parameter 수에 기인되는 경우가 많았다. 저자는 weight를 magnitude와 direction으로 분해 분석하여 LoRA와 FT 간의 다른 패턴을 파악하였다.

Analysis Method

$W \in \mathbb{R}^{d \times k}$에 대해 weight decomposition한 수식은 다음과 같다.

$$W = m\frac{V}{\quad \lVert V \rVert_c} = \lVert W \rVert_c \frac{W}{\quad \lVert W \rVert_c}$$

  • $m \in \mathbb{R}^{1 \times k}$ : magnitude vector
  • $V \in \mathbb{R}^{d \times k}$ : directional matrix
  • $|| \cdot || c$ : vector-wise norm of a matrix across each column.

위 수식을 통해 $V$의 각 열이 단위 벡터로 유지되도록 보장하며, $m$의 해당 스칼라는 각 벡터의 크기를 정의하게 된다.

저자는 VL-BART 모델에 대해 실험을 진행하였다. $W_0$에 대해 $W_{FT}$와 $W_{LoRA}$의 $\Delta M$과 $\Delta D$를 비교하였다. 이때, LoRA는 query/value에만 적용하였으며 총 4번의 step에 대한 결과를 보였다. 아래 수식은 $\Delta M$과 $\Delta D$를 계산하는 수식이다.

$$\Delta M^t_{FT} = \frac{\sum_{n=1}^{k} \left| m_{FT}^{n,t} - m_0^n \right|}{k}$$
$$\Delta D^t_{FT} = \frac{\sum_{n=1}^{k} (1 - \cos(V_{FT}^{n,t}, W^n_0))}{k}$$

 

 

실험 결과는 위 그림으로 나타내고 있다. 간단하게 설명하자면 $\Delta D$와 $\Delta M$가 반비례 관계인 FT에 반해 LoRA는 완벽한 정비례 관계를 갖고 있다. 하지만 Weight-Decomposition 방식을 취한 DoRA의 경우 FT와 유사한 반비례 양상을 보이면서 DoRA가 FT에 더 근접하다는 것을 나타낸다.

저자는 이러한 패턴 차이가 LoRA가 FT에 비해 세심한 조정이 제한되는 이유라고 설명한다. (FT와 패턴이 유사해야한다고 주장) 그러면서, FT와 유사한 패턴을 보이며 성능을 향상시키는 DoRA를 제안하는 것을 목표로 한다고 하였다. 참고로 상관계수는 FT가 -0.62, LoRA가 0.83, DoRA가 -0.31이다.

Gradient of Loss, Reduction of Training Overhead

DoRA의 경우 Gradient of Loss(Eq. 6)가 LoRA(Eq. 1)와 차이가 발생한다. 따라서 추가적인 메모리가 요구된다. 이것을 해소하기 위해 Eq. 5의 $|| V + \Delta V ||_c$ 부분을 상수로 지정하여 Gradient graph에서 제외시켰다. 이로인해 성능은 유지한 채로 LLaMA의 training memory를 24.4% 가량 감소시켰다고 한다.

Experiments

 

실험 결과, DoRA는 다른 LoRA  모델들 중에서 Training sample 수에 따른 성능이 강건한 것으로 나타났다.

 

 

또한 rank의 값에도 강건한 모습을 보였는데 특히 rank=4, 8일 때에 LoRA보다 확실한 성능 차이를 보였다.

 

끝으로 저자는 directional update가 magnitude update보다 학습 파라미터가 더 많으므로 이 둘을 동시에 학습하기 보다 magnitude만을 학습해보는 것도 테스트 해보아야 한다고 언급하였다.


꾸준히 논문 리뷰를 해야하는데 수식이 많고 이를 Latex 코드로 변환하려니 점점 귀찮게 느껴지는 것 같다. 다음 논문은 Model architecture 개선 논문을 가져와볼까 한다.