[nlp][논문리뷰] LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS

이영락·2024년 11월 29일

CV & NLP 논문 리뷰

목록 보기
12/14

https://miniature-textbook-570.notion.site/LORA-LOW-RANK-ADAPTATION-OF-LARGE-LAN-GUAGE-MODELS-7-1318da87b708811eb4f7cf1d769991f1?pvs=4

00 | 참고자료


[LoRA 논문 리뷰] - LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

[LoRA] 논문 쉽게 설명하기

[논문리뷰] LoRA: Low-Rank Adaptation of Large Language Models

[논문 리뷰] LoRA: Low-Rank Adaptaion of Large Language Models

[논문리뷰] - LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS - 랭크를 줄여라 ! + X-LoRA !!

01 | 논문 분석


RANK?

  • rank가 낮을수록 행렬의 정보 중복이거나 불필요
    = rank가 낮다면 행렬의 차원 줄일 수 있음 → 분해
    = 행렬이 낮은 랭크 값을 가진다면, low-rank를 가진 행렬로 분해 → 차원 축소 및 정보 그대로

LoRA (Low-Rank Adaptation)에서 rank는 학습 가능한 가중치 행렬의 차원수를 줄여 모델의 파라미터를 효율적으로 조정하는 방법입니다. 일반적으로 큰 모델의 모든 가중치 행렬을 학습하면 계산 비용이 크기 때문에, LoRA는 저랭크(low-rank) 근사를 통해 이 문제를 해결합니다.

Rank의 정의와 역할

  1. Rank의 정의: LoRA에서 rank는 학습할 가중치 행렬의 차원을 줄인 저차원 근사 차원을 의미합니다. 예를 들어, 원래 가중치 행렬이 ( W )라고 할 때, LoRA는 이를 ( A )와 ( B )라는 두 저차원 행렬의 곱으로 분해하여 근사합니다. 여기서 rank는 ( A )와 ( B )의 행렬 크기에서 사용되는 작은 차원의 값으로, LoRA가 사용해야 하는 학습 파라미터의 수를 제한하는 역할을 합니다.
  2. Rank가 낮을 때의 의미: rank가 낮다는 것은 근사 차원이 작다는 의미이며, 이는 LoRA가 적은 수의 파라미터로 가중치 변화를 모델링한다는 뜻입니다. 이 경우 모델이 표현할 수 있는 정보의 범위가 줄어들지만, 동시에 파라미터 수가 크게 감소하여 메모리 사용량과 계산 비용이 줄어드는 장점이 있습니다.
  3. Rank와 모델 성능의 관계: 너무 낮은 rank는 모델이 원래의 표현력을 충분히 학습하지 못해 성능이 저하될 수 있고, 반대로 rank를 높이면 표현력은 증가하지만 계산 비용이 높아집니다. 따라서, rank는 LoRA 모델의 성능과 효율성 사이에서 중요한 하이퍼파라미터로 작용합니다.

결론적으로, rank는 LoRA에서 저랭크 근사를 통해 모델의 가중치를 효율적으로 학습하기 위한 차원의 크기를 정의하며, rank가 낮을수록 계산 효율은 높지만 성능의 한계가 있을 수 있습니다.


0. INTRODUCTION

🔥

LoRA(Low-Rank Adaptation)는 대규모 사전 학습된 언어 모델을 여러 다운스트림 애플리케이션에 적응시키기 위해 제안된 방법

→ 모델의 파라미터 수를 효율적으로 줄이고 학습 과정을 간소

스크린샷 2024-10-27 오후 11.47.11.png

기존의 파인튜닝(fine-tuning) 방식은 사전 학습된 모델의 모든 파라미터를 업데이트해야 하는데, 모델 크기가 증가할수록 이는 비효율적이 된다.

예를 들어, GPT-3 모델은 약 175억 개의 파라미터를 가지고 있어 모든 파라미터를 학습하는 것은 큰 비용이 든다.

이러한 문제를 해결하기 위해 LoRA는 모델의 파라미터 업데이트를 저랭크 행렬로 표현하여 효율성을 극대화한다.

LoRA possesses several key advantages.

  1. 파라미터 효율성:
    LoRA에서는 사전 학습된 모델의 가중치 W0W_0를 고정하고, 각 레이어의 가중치 변화량 ΔW\Delta W를 저랭크 행렬 BA의 곱으로 근사한다.
    <aside>
    🧮
    
    $\Delta W = BA$
    
    - $B \in \mathbb{R}^{d \times r}$와  $A \in \mathbb{R}^{r \times d}$ :  학습 가능한 파라미터이며
    - $r$ : 랭크(rank) → 이때,  $r$은  $d$보다 훨씬 작은 값으로 설정되며, 이를 통해 파라미터 수를 크게 줄일 수 있다.
    
     예를 들어, GPT-3의 전체 랭크  $d$가 12,288일 때도  r을 1 또는 2로 설정하는 것만으로도 충분한 성능을 달성할 수 있다. 
    
    </aside>
    
    이처럼 LoRA는 계산 및 저장 공간의 효율성을 크게 개선.
  2. 공유 가능성:
    사전 학습된 모델을 고정하고 여러 LoRA 모듈을 통해 다양한 작업에 적응시킬 수 있다.
    작업마다 새로운 모델을 학습할 필요 없이, 학습된 저랭크 행렬  $A$와  $B$를 교체함으로써 손쉽게 작업을 전환할 수 있다. 
    
    → 저장 공간 및 작업 전환에 필요한 오버헤드를 대폭 줄인다.
  3. 효율적인 학습:
    LoRA는 대부분의 파라미터에 대해 그라디언트를 계산하거나 옵티마이저 상태를 유지할 필요가 없으므로, 적응형 옵티마이저(adaptive optimizer)를 사용할 때 학습 비용을 최대 3배까지 절감할 수 있다.
    → 학습할 때는 사전 학습된 가중치 W0W_0를 고정하고 저랭크 행렬 AABB만을 학습하므로, 훈련 속도가 빨라지고 메모리 사용량이 줄어든다.
  4. 추론 지연 없음:
    학습이 완료된 후, 학습된 저랭크 행렬을 원래의 가중치에 병합하여 W=W0+BAW = W_0 + BA로 만들 수 있다. 이렇게 병합된 가중치는 완전한 파인튜닝 모델과 동일한 방식으로 추론을 수행하므로, 추가적인 추론 지연이 발생하지 않는다. 이는 LoRA가 완전 파인튜닝 모델과 비교했을 때도 추론 속도에서 손실이 없다는 것을 의미한다.
  5. 기타 기법과의 결합 가능성:
    LoRA는 프리픽스 튜닝(prefix-tuning)과 같은 기존의 적응 방법과 결합할 수 있다. 예를 들어, 프리픽스 튜닝은 입력 시퀀스의 일부 토큰을 학습하여 적응하는 방법인데, LoRA와 결합하면 두 기법의 장점을 모두 살릴 수 있다.

용어와 구조 설명

  • Transformer 아키텍처: LoRA는 Transformer 모델의 자기 주의(attention) 모듈에서 사용되는 특정 가중치 행렬에 적용. 이 모듈에는 쿼리, 키, 값, 출력 프로젝션 행렬(즉, Wq,Wk,Wv,WoW_q , W_k , W_v , W_o )이 포함된다. LoRA는 이러한 가중치 행렬의 변화량(ΔW\Delta W )를 저랭크 행렬의 곱(BABA)로 근사하여 학습한다.
  • $\Delta W $ (델타 W): 학습 중 가중치의 누적된 변화량을 나타내며, 이 변화량을 저랭크 행렬의 곱으로 표현하여 계산 효율을 높인다.
  • 랭크 (rank, rr): LoRA에서 학습하는 저랭크 행렬의 차원을 나타내며, 적응의 중요한 하이퍼파라미터로 작을수록 계산 효율이 높아진다. LoRA는 적절한 랭크 설정을 통해 학습 효율성을 극대화할 수 있다.
  • dmodeld_{\text{model}} : Transformer 레이어의 입력 및 출력 차원의 크기를 나타내며, 모델의 구조적 특성을 정의하는 중요한 매개변수이다.
  • Adam 옵티마이저: LoRA에서도 사용되는 모델 최적화 알고리즘으로, 가중치 업데이트 시 사용된다. Adam은 학습률의 자동 조정과 같은 장점이 있어 널리 사용된다.

LoRA는 이러한 접근 방식을 통해 대규모 언어 ⓵ 모델의 적응을 더욱 효율적으로 만들고, ⓶모델의 파라미터 수를 줄이며 학습 비용을 절감하는 한편 다양한 작업에 유연하게 대응할 수 있는 실용적인 솔루션을 제공.

1. PROBLEM STATEMENT

LoRA가 제안하는 문제는 언어 모델링을 중심으로 하며, 특히 주어진 작업별 프롬프트에 대한 조건부 확률을 최대화하는 데 초점을 맞춘다.

→ 다양한 언어 생성 작업에 사전 학습된 언어 모델을 효율적으로 적응시키기 위한 것이다.

🫠

가정 설정

우선, 사전 학습된 오토레그레시브(autoregressive) 언어 모델PΦ(yx)P_{\Phi}(y|x) 가 주어졌다고 가정한다.


Φ\Phi : 모델의 파라미터

PΦ(yx)P_{\Phi}(y|x) : GPT(GPT-2, GPT-3 등)와 같은 다중 작업 학습 모델

→ 이 모델을 요약, 기계 독해(MRC), 자연어-데이터베이스 질의(NL2SQL)와 같은 조건부 텍스트 생성 작업에 적응시코자 하는 상황

데이터셋 구성?

각 다운스트림 작업은 컨텍스트와 타겟 쌍으로 이루어진 학습 데이터셋 Z={(xi,yi)}i=1,..,NZ = \{(x_i, y_i)\}_{i=1,..,N} 으로 표현되며, 여기서xix_iyiy_i 는 모두 토큰 시퀀스이다.

예를 들어, NL2SQL에서는xix_i 가 자연어 질의이고yiy_i 가 그에 대응하는 SQL 명령어가 된다. 요약 작업에서는 xix_i 가 기사 내용이고 yiy_i 가 그 요약문이 된다.

전체 파인튜닝(full fine-tuning)

: 전체 파인튜닝을 수행할 때, 모델은 사전 학습된 가중치Φ0\Phi_0 로 초기화되며, 조건부 언어 모델링 목표를 최대화하기 위해 그라디언트를 따라 가중치가 반복적으로 업데이트된다

🍭

maxΦ(x,y)Zt=1ylogPΦ(ytx,y<t)\max_{\Phi} \sum_{(x,y)\in Z} \sum_{t=1}^{|y|} \log P_{\Phi}(y_t | x, y_{<t})
yty_t : 시퀀스yytt 번째 토큰

y<ty_{<t} : tt 이전의 모든 토큰

전체 파인튜닝의 주요 단점

각 다운스트림 작업마다 서로 다른 파라미터 집합 ΔΦ\Delta \Phi 를 학습하게 되며, 그 크기ΔΦ|\Delta \Phi| 는 사전 학습된 모델의 크기Φ0|\Phi_0| 와 동일하다는 점이다.

GPT-3와 같은 대규모 모델의 경우 Φ0175|\Phi_0| \approx 175 억 파라미터이기 때문에, 여러 개의 파인튜닝된 모델을 저장하고 배포하는 것은 매우 어려울 수 있다.

파라미터 효율적인 접근

이 논문에서는 작업별 파라미터 증가분ΔΦ\Delta \Phi 를 훨씬 더 작은 파라미터 집합Θ\Theta 로 인코딩하여 효율적으로 처리하는 방법을 제안한다. 여기서 ΘΦ0|\Theta| \ll |\Phi_0| 가 성립한다.ΔΦ\Delta \Phi 를 찾는 문제는 이제Θ\Theta 에 대한 최적화 문제로 변환된다:

🍭

maxΘ(x,y)Zt=1ylogPΦ0+ΔΦ(Θ)(ytx,y<t)\max_{\Theta} \sum_{(x,y)\in Z} \sum_{t=1}^{|y|} \log P_{\Phi_0 + \Delta \Phi(\Theta)} (y_t | x, y_{<t})

LoRA는 이러한 접근을 통해 메모리 및 계산 효율성을 극대화하기 위해 저랭크 표현(low-rank representation)을 사용하여ΔΦ\Delta \Phi 를 인코딩한다.

GPT-3 175B 모델의 경우, 학습해야 할 파라미터 수 Θ|\Theta| 를 사전 학습된 전체 파라미터의 0.01% 정도로 줄일 수 있다. 이를 통해 매우 큰 모델의 파인튜닝에 드는 비용을 대폭 절감할 수 있다.


2. AREN’T EXISTING SOLUTIONS GOOD ENOUGH?

전이 학습(transfer learning)이 도입된 이후로, 모델 적응을 파라미터 및 계산 측면에서 더 효율적으로 만들기 위한 다양한 연구들이 이루어져 왔다.

🍭

언어 모델링에서 효율적인 적응을 위한 두 가지 주요 전략

⓵ 어댑터 레이어(adapter layers) 추가

⓶ 입력 레이어 활성화(input layer activations) 최적화

But, 이러한 방법들은 특히 대규모 모델이나 지연(latency)에 민감한 상황에서는 한계가 존재한다.

어댑터 레이어의 한계 Adapter Layers Introduce Inference Latency

어댑터는 여러 변형이 있으며, 여기서는 Houlsby et al. (2019)의 원래 설계와 Lin et al. (2020)의 더 최근 설계를 언급한다.

어뎁터의 여러 변형

  1. Houlsby et al. (2019)의 어댑터는 각 Transformer 블록에 두 개의 어댑터 레이어를 추가
  2. Lin et al. (2020)의 방법은 블록당 하나의 어댑터 레이어와 추가적인 LayerNorm을 사용.

→ 어댑터 레이어는 소수의 파라미터(원래 모델의 1% 미만일 때도 있음)를 가지므로, 이론적으로 추가되는 FLOPs(부동 소수점 연산)가 적다. 그러나 대규모 신경망은 하드웨어 병렬 처리를 통해 지연을 줄이는 데 의존하고, 어댑터 레이어는 순차적으로 처리해야 한다. 이는 특히 온라인 추론 환경에서 배치 크기가 작을 때 문제를 야기한다.

예를 들어, GPT-2 모델을 단일 GPU에서 실행할 때 어댑터를 사용하면, 작은 병목 차원을 사용하더라도 지연이 증가하는 것을 확인할 수 있다.

어댑터를 사용하는 경우의 지연은 모델을 샤딩(sharding)해야 할 때 더욱 악화된다. 모델을 샤딩할 때 추가적인 깊이는 AllReduce나 Broadcast와 같은 동기화 GPU 연산을 더 많이 요구하게 된다. 이를 해결하지 않으면 어댑터 파라미터를 중복으로 여러 번 저장해야 하는 문제가 발생한다.

Directly Optimizing the Prompt is Hard

프리픽스 튜닝(prefix tuning)은 입력 시퀀스의 일부분을 학습 가능한 토큰으로 최적화하는 접근 방식이지만, 최적화가 어렵고 학습 가능한 파라미터의 수에 따라 성능이 비선형적으로 변한다.

프리픽스 튜닝에서는 적응을 위해 시퀀스 길이의 일부를 예약해야 하므로, 다운스트림 작업을 처리할 수 있는 시퀀스 길이가 줄어든다. 이는 프롬프트 튜닝이 다른 방법에 비해 성능이 낮을 수 있는 요인으로 작용한다.

실험 결과 요약 (표 1)

스크린샷 2024-10-28 오전 12.04.27.png

GPT-2 medium 모델에서의 단일 추론 단계에 대한 지연 시간을 측정한 결과(Table 1), 어댑터를 사용했을 때 지연 시간이 눈에 띄게 증가함을 알 수 있다. 실험은 NVIDIA Quadro RTX8000에서 100회 평균을 내어 수행되었으며, 어댑터의 지연 시간은 짧은 시퀀스 길이 및 작은 배치 크기일 때 더 두드러진다.

  • Fine-Tuning/LoRA: 지연 시간이 가장 낮음.
  • AdapterL: Fine-Tuning/LoRA 대비 2.2%~20.7%의 지연 증가.
  • AdapterH: Fine-Tuning/LoRA 대비 3.0%~30.3%의 지연 증가.

LoRA는 기존의 어댑터 방식보다 적응 시 성능 저하 없이도 효율적이며, 지연 시간이 증가하지 않는 솔루션을 제공한다. 이러한 이유로, 대규모 모델의 실시간 응답 성능을 요구하는 환경에서 더욱 적합하다.


4. OUR METHOD

LoRA(Low-Rank Adaptation)의 설계와 실제 활용에서의 이점을 설명하고, 이를 Transformer 언어 모델에 적용하는 방법을 다룬다. LoRA는 심층 학습 모델의 모든 밀집 레이어(dense layers)에 적용될 수 있으나, 실험에서는 주로 Transformer 모델의 특정 가중치에 집중한다.

4.1 저랭크 파라미터화된 업데이트 행렬 (Low-Rank-Parametrized Update Matrices)

신경망의 밀집 레이어는 일반적으로 행렬 곱셈을 수행하며, 가중치 행렬은 대개 풀랭크(full-rank)로 되어 있다. Aghajanyan et al. (2020)에 따르면, 사전 학습된 언어 모델은 낮은 "내재적 차원(intrinsic dimension)"을 가지며, 무작위 투영(random projection)을 통해 더 작은 부분 공간으로도 효율적인 학습이 가능하다. 이를 바탕으로, 적응 중 가중치 업데이트도 낮은 "내재적 랭크(intrinsic rank)"를 가질 것이라고 가정한다.

사전 학습된 가중치 행렬W0Rd×kW_0 \in \mathbb{R}^{d \times k} 가 주어졌을 때, 그 업데이트를 저랭크 분해로 표현하여 다음과 같이 제약을 둔다:

W0+ΔW=W0+BAW_0 + \Delta W = W_0 + BA

여기서BRd×rB \in \mathbb{R}^{d \times r}ARr×kA \in \mathbb{R}^{r \times k} 는 학습 가능한 파라미터이며, 랭크rrmin(d,k)\min(d, k) 보다 훨씬 작은 값으로 설정한다. 학습 중에는W0W_0 가 고정(frozen)되어 그라디언트 업데이트를 받지 않으며, AABB 만이 학습된다. 입력 벡터 xx 에 대해, 수정된 순전파(forward pass)는 다음과 같다:

h=W0x+ΔWx=W0x+BAxh = W_0x + \Delta Wx = W_0x + BAx

초기 학습 시,AA 는 무작위 가우시안 초기화(random Gaussian initialization)를 사용하고BB 는 0으로 설정하여, 학습 초기에는 ΔW=BA=0\Delta W = BA = 0 이 된다. 이후,ΔWx\Delta Wxαr\frac{\alpha}{r} 로 스케일링하여 학습을 진행하는데, 여기서 α\alpha 는 상수이다. Adam 옵티마이저를 사용할 때, 이 스케일링은 학습률 조정과 유사한 역할을 한다.

풀 파인튜닝의 일반화 (Generalization of Full Fine-tuning)

LoRA는 풀 파인튜닝의 확장된 형태로 볼 수 있다. LoRA를 모든 가중치 행렬에 적용하고 모든 바이어스(bias)를 학습하는 경우, LoRA의 랭크rr 을 사전 학습된 가중치 행렬의 랭크로 설정하면 풀 파인튜닝과 비슷한 표현력을 얻을 수 있다. 즉, 학습 가능한 파라미터 수를 늘리면, LoRA의 학습은 원래 모델의 학습에 가까워진다. 반면, 어댑터 기반 방식은 MLP로, 프리픽스 기반 방식은 긴 입력 시퀀스를 처리할 수 없는 모델로 수렴한다.

추가적인 추론 지연 없음

생산 환경에 배포할 때,W=W0+BAW = W_0 + BA 를 명시적으로 계산하고 저장하여 추론을 평소처럼 수행할 수 있다.W0W_0BABA 는 모두Rd×k\mathbb{R}^{d \times k} 에 속한다. 다른 다운스트림 작업으로 전환할 때는W0W_0 에서BABA 를 빼고, 다른BAB'A' 를 추가하여 손쉽게 전환할 수 있다. 이는 메모리 오버헤드가 매우 작고, 구조적으로 추가적인 추론 지연이 발생하지 않는다.

4.2 Transformer에 LoRA 적용

LoRA는 신경망의 가중치 행렬의 특정 부분 집합에 적용할 수 있으며, 이를 통해 학습 가능한 파라미터 수를 줄일 수 있다. Transformer 아키텍처의 자기 주의(self-attention) 모듈에는 네 개의 가중치 행렬Wq,Wk,Wv,WoW_q, W_k, W_v, W_o 와 MLP 모듈에 두 개의 가중치 행렬이 존재한다. 여기서 (Wq),(Wk),(Wv)( W_q ), ( W_k ), ( W_v )는 보통 차원을 주의 헤드(attention head)로 나누지만, dmodel×dmodeld_{\text{model}} \times d_{\text{model}} 크기의 단일 행렬로 취급한다. 실험에서는 간단하고 파라미터 효율성을 높이기 위해 주의 가중치만을 학습하고, MLP 모듈은 동결(freeze)하여 사용하지 않았다.

실질적인 이점과 한계

  • 메모리 및 저장 공간 절감: 랭크 rrdmodeld_{\text{model}} 보다 훨씬 작을 경우, Adam으로 학습할 때 필요한 VRAM 사용량이 최대 2/3까지 감소한다. GPT-3 175B의 경우, 학습 중 VRAM 사용량을 1.2TB에서 350GB로 줄일 수 있다. 또한,r=4r = 4 일 때 쿼리와 값 프로젝션 행렬만을 학습하면 체크포인트 크기가 350GB에서 약 35MB로 10,000배 줄어든다.
  • 유연한 작업 전환: 사전 학습된 가중치를 VRAM에 저장한 채로, LoRA 가중치만 교체함으로써 다양한 맞춤형 모델을 쉽게 전환할 수 있다.
  • 학습 속도 향상: GPT-3 175B에서는 대부분의 파라미터에 대해 그라디언트를 계산할 필요가 없기 때문에 풀 파인튜닝보다 학습 속도가 약 25% 빠르다.
  • 한계점:AABBWW 에 흡수하여 추가적인 추론 지연을 없애려면, 다른 작업에 대한 입력을 배치(batch)하는 것이 어려울 수 있다. 다만, 지연이 중요하지 않은 상황에서는 가중치를 병합하지 않고, LoRA 모듈을 동적으로 선택할 수 있다.

LoRA는 기존의 파인튜닝 방식보다 메모리 효율성이 뛰어나고, 대규모 모델에서도 손쉽게 적응할 수 있는 방법을 제공한다.

5. Empirical Experiments

LoRA의 성능을 다양한 다운스트림 작업에서 평가하고, RoBERTa, DeBERTa, GPT-2에 대한 실험을 거쳐 GPT-3 175B로 확장하였다. 실험은 자연어 이해(NLU)와 자연어 생성(NLG) 작업을 모두 포함하며, GLUE 벤치마크, WikiSQL, SAMSum 등에서 수행되었다. NVIDIA Tesla V100 GPU를 사용하여 실험을 진행하였다.

5.1 베이스라인 (Baselines)

  • 파인튜닝(Fine-Tuning, FT): 사전 학습된 모델의 모든 파라미터를 업데이트하는 방식이며, 일부 레이어만 업데이트하거나 고정하는 변형(예: FTTop2)도 포함된다.
  • 바이어스-전용(Bias-only 또는 BitFit): 바이어스 벡터만 학습하고 나머지 파라미터는 고정하는 방식이다.
  • 프리픽스 임베딩 튜닝(PreEmbed): 입력 토큰 사이에 학습 가능한 특수 토큰을 추가하는 방식으로, 앞에 추가하거나 뒤에 추가하는 방법이 있다.
  • 프리픽스 레이어 튜닝(PreLayer): 프리픽스 임베딩 튜닝을 확장하여 각 Transformer 레이어 이후의 활성화를 학습한다.
  • 어댑터 튜닝(Adapter Tuning): Houlsby et al. (2019)이 제안한 방식으로, 어댑터 레이어를 추가하여 적응한다. AdapterH, AdapterL, AdapterP, AdapterD 등의 변형이 있다.
  • LoRA: 기존의 가중치 행렬에 병렬로 랭크 분해 행렬을 추가하여 학습 가능한 파라미터를 줄인다.

5.2 RoBERTa Base/Large

RoBERTa는 BERT의 사전 학습 레시피를 최적화한 모델로, 실무에서 여전히 인기가 있다. GLUE 벤치마크에서 LoRA를 비롯한 다양한 적응 방법의 성능을 비교하였으며, 어댑터와 비교할 때 동일한 배치 크기와 시퀀스 길이를 사용하였다. 결과는 Table 2에 요약되어 있다.

5.3 DeBERTa XXL

DeBERTa는 대규모로 훈련된 모델로, GLUE와 SuperGLUE 벤치마크에서 뛰어난 성능을 보인다. LoRA가 DeBERTa XXL의 전체 파인튜닝 성능에 맞먹는 성능을 달성할 수 있는지 평가하였다.

5.4 GPT-2 Medium/Large

GPT-2 모델에서는 NLG 작업에서 LoRA의 성능을 평가하였다. E2E NLG Challenge의 결과는 Table 3에 요약되어 있으며, LoRA가 적은 학습 가능한 파라미터로도 경쟁력 있는 성능을 보였다.

5.5 GPT-3 175B로의 확장

마지막으로, GPT-3 175B에서 LoRA를 사용하여 성능을 평가하였다. Table 4의 결과에서 알 수 있듯이, LoRA는 모든 데이터셋에서 풀 파인튜닝과 동등하거나 더 나은 성능을 보였다. 특히, 프리픽스 임베딩 및 프리픽스 레이어 튜닝에서 학습 가능한 토큰 수가 일정 수준 이상 증가할 때 성능이 급격히 떨어졌다. 이는 입력 분포가 사전 학습 데이터 분포에서 멀어지는 현상으로 인해 발생할 가능성이 있다.

성능 요약

LoRA는 여러 데이터셋에서 기존의 풀 파인튜닝 및 어댑터 방식보다 적은 학습 가능한 파라미터로도 우수한 성능을 보여주었으며, GPU 메모리 사용량 감소 및 학습 속도 향상 측면에서도 장점을 지녔다.

Transformer 언어 모델

Transformer(Vaswani et al., 2017)은 자기 주의(self-attention)를 중점으로 하는 시퀀스-투-시퀀스(sequence-to-sequence) 아키텍처로, Radford et al. (a)는 이를 오토레그레시브(autoregressive) 언어 모델링에 적용하였다. 이후 Transformer 기반의 언어 모델은 자연어 처리(NLP)에서 많은 작업에서 최고 성능을 달성하였다. BERT(Devlin et al., 2019b)와 GPT-2(Radford et al., b)의 등장으로 새로운 패러다임이 형성되었으며, 대규모의 사전 학습된 Transformer 언어 모델을 특정 작업 데이터에 맞춰 파인튜닝하는 방식은 성능을 크게 향상시킨다. GPT-3(Brown et al., 2020)는 175억 개의 파라미터를 가진 가장 큰 단일 Transformer 언어 모델로, 더 큰 Transformer를 훈련하는 것이 성능 향상에 중요한 방향으로 남아있다.

프롬프트 엔지니어링 및 파인튜닝

GPT-3 175B는 적은 수의 추가 학습 예제만으로도 적응할 수 있지만, 성능은 입력 프롬프트에 크게 의존한다(Brown et al., 2020). 이를 통해 모델의 성능을 최적화하기 위해 프롬프트를 구성하고 형식화하는 '프롬프트 엔지니어링(prompt engineering)'이 필요하게 되었다. 파인튜닝(fine-tuning)은 일반 도메인에서 사전 학습된 모델을 특정 작업에 맞춰 재학습하는 방식으로, 파라미터 일부만을 학습하거나 모두 재학습하는 변형이 있다. 그러나 GPT-3 175B의 방대한 크기는 일반적인 방식의 파인튜닝을 어렵게 만들며, 이는 큰 체크포인트 파일과 높은 하드웨어 요구 사항을 수반한다.

파라미터 효율적인 적응 (Parameter-Efficient Adaptation)

어댑터 레이어(adapter layers)를 기존 신경망 레이어 사이에 삽입하여 적응하는 방법(Houlsby et al., 2019; Rebuffi et al., 2017; Lin et al., 2020)이 제안되었다. LoRA는 유사한 병목 구조를 사용하여 가중치 업데이트에 저랭크 제약을 가하는데, LoRA에서 학습된 가중치는 추론 시 메인 가중치와 병합할 수 있어 지연(latency)을 추가하지 않는다. 이는 어댑터 레이어와의 중요한 차이점이다. 어댑터의 확장형으로 COMPACTER(Mahabadi et al., 2021)는 Kronecker 곱을 사용하여 어댑터 레이어를 매개변수화하는 방식이다. 이와 유사하게, LoRA를 다른 텐서 곱 기반 방법과 결합하여 파라미터 효율성을 높일 가능성도 있다.

저랭크 구조 (Low-Rank Structures in Deep Learning)

기계 학습에서 저랭크 구조는 매우 일반적이다. 많은 기계 학습 문제는 내재적으로 저랭크 구조를 가지며, 특히 과잉 파라미터화된 신경망은 학습 후 저랭크 특성을 가진다(Oymak et al., 2019). 이전 연구에서는 신경망 학습 시 원래의 신경망에 저랭크 제약을 가하는 방법이 제안되었지만(Sainath et al., 2013; Povey et al., 2018), 고정된 모델에 대해 저랭크 업데이트를 적용하여 다운스트림 작업에 적응하는 연구는 거의 없다. 이론적으로, 저랭크 구조를 가진 신경망은 다른 고전적인 학습 방법보다 더 우수한 성능을 보일 수 있다(Ghorbani et al., 2020; Allen-Zhu & Li, 2019).

이와 같은 관련 연구들을 종합해보면, LoRA가 제안하는 저랭크 적응 업데이트는 문헌에서 잘 동기화된 아이디어이며, 기존의 다양한 기법들과 차별화된 장점을 제공한다.

7. 저랭크 업데이트의 이해 (Understanding the Low-Rank Updates)

LoRA의 실험적 이점에 대한 설명을 더하기 위해, 다운스트림 작업에서 학습된 저랭크 적응의 특성을 분석하고자 한다. 저랭크 구조는 하드웨어 요구 사항을 낮출 뿐만 아니라, 업데이트된 가중치가 사전 학습된 가중치와 어떻게 상관되어 있는지에 대한 해석 가능성을 제공한다. 실험은 GPT-3 175B 모델을 중심으로 수행되었으며, 학습 가능한 파라미터 수를 최대 10,000배 줄이면서도 성능에 악영향을 미치지 않는 결과를 확인하였다.

7.1 Transformer에서 어떤 가중치 행렬에 LoRA를 적용해야 하는가?

제한된 파라미터 예산 하에서 어떤 가중치 유형을 LoRA로 적응시켜야 다운스트림 성능이 극대화되는지 연구하였다. 여기서는 자기 주의 모듈의 가중치 행렬에만 집중하였으며, GPT-3 175B에 대해 파라미터 예산을 18M으로 설정하였다. 이는 모든 96 레이어에서 하나의 주의 가중치를 적응시킬 때r=8r = 8 , 두 가지를 적응시킬 때r=4r = 4 로 설정한 것에 해당한다.

결과(Table 5)에 따르면, 모든 파라미터를WqW_qWkW_k 에 집중할 경우 성능이 떨어졌지만,WqW_qWvW_v 를 동시에 적응시키는 것이 가장 좋은 성능을 보였다. 이는ΔW\Delta W 가 낮은 랭크에서도 충분한 정보를 포함하고 있으며, 더 많은 가중치 행렬을 적응시키는 것이 단일 가중치를 큰 랭크로 적응시키는 것보다 더 바람직함을 시사한다.

7.2 LoRA의 최적 랭크 rr 는 무엇인가?

랭크 rr 가 모델 성능에 미치는 영향을 살펴보았다. Wq,WvW_q , W_v, 그리고 Wq,Wk,Wv,WoW_q, W_k, W_v, W_o 의 조합에 대해 실험을 진행하였다.

Table 6은 놀랍게도 작은rr 값, 예를 들어 1만으로도Wq,WvW_q, W_v 조합에서 경쟁력 있는 성능을 나타낸다는 점을 보여준다. 이는 업데이트 행렬ΔW\Delta W 가 매우 작은 "내재적 랭크(intrinsic rank)"를 가질 수 있음을 시사한다. 또한, rr 을 증가시키는 것이 더 의미 있는 부분 공간을 커버하지 못한다는 점에서, 저랭크 적응 행렬이 충분하다는 결론을 내릴 수 있다.

부분 공간 유사도 분석

랭크r=8r = 8r=64r = 64 로 학습된 적응 행렬AA 의 부분 공간 유사도를 조사하였다. 주요 결과는 다음과 같다:

  • r=8r = 8 의 최상위 특이 벡터 방향과 r=64r = 64 의 최상위 특이 벡터 방향 간에 높은 유사성을 보였다. 이는 저랭크 적응 행렬이 유용한 방향을 증폭시키고, 나머지 방향은 무작위 노이즈일 가능성이 높음을 시사한다.
  • 무작위 시드에서 서로 다른 랭크로 학습된 적응 행렬 간의 유사도도 비슷한 패턴을 나타냈다. WqW_qWvW_v 보다 더 높은 "내재적 랭크"를 가짐을 확인하였다.

7.3 적응 행렬ΔW\Delta W 와 사전 학습된 가중치WW 의 비교

ΔW\Delta WWW 간의 관계를 분석하였다. 주된 질문은 ΔW\Delta WWW 와 얼마나 높은 상관관계를 가지는가이다.

Table 7의 결과에 따르면:

  1. ΔW\Delta W 는 무작위 행렬보다WW 와 더 높은 상관관계를 가지며, 이는ΔW\Delta WWW 의 특정 기능을 증폭시키고 있음을 나타낸다.
  2. ΔW\Delta WWW 의 최상위 특이 방향을 단순히 반복하는 것이 아니라,WW 에서 강조되지 않은 방향을 증폭시킨다.
  3. 증폭 계수는 상당히 크며, 예를 들어r=4r = 4 일 때 21.5에 해당한다. 이는 저랭크 적응 행렬이 특정 다운스트림 작업에 중요한 특징을 증폭할 가능성을 시사한다.

이와 같은 실험들은 저랭크 업데이트가 사전 학습된 언어 모델을 다운스트림 작업에 적응시키는 데 있어 중요한 원리를 제공함을 보여준다.

8. CONCLUSION AND FUTURE WORK

대규모 언어 모델의 파인튜닝은 필요한 하드웨어와 독립적인 인스턴스를 호스팅하는 데 드는 저장/전환 비용 측면에서 매우 비싸다. 이에 대해 LoRA는 효율적인 적응 전략을 제안하며, 추론 지연을 도입하지 않고 입력 시퀀스 길이를 줄이지 않으면서도 높은 모델 품질을 유지한다. LoRA는 대부분의 모델 파라미터를 공유함으로써 서비스로 배포될 때 빠른 작업 전환을 가능하게 한다. 본 연구에서는 Transformer 언어 모델에 집중했으나, 제안된 원칙은 밀집 레이어(dense layers)를 갖는 모든 신경망에 일반적으로 적용 가능하다.

향후 연구 방향

  1. LoRA와 다른 적응 방법의 결합: LoRA는 다른 효율적인 적응 방법과 결합할 수 있으며, 이를 통해 상호 보완적인 개선을 이룰 수 있을 것이다.
  2. 파인튜닝 또는 LoRA 메커니즘에 대한 이해: 파인튜닝 또는 LoRA의 메커니즘은 여전히 명확하지 않다. 사전 학습 중에 학습된 특징들이 다운스트림 작업에서 어떻게 잘 작동하도록 변환되는지에 대한 연구가 필요하다. LoRA는 풀 파인튜닝보다 이를 더 쉽게 분석할 수 있는 방법을 제공할 것으로 보인다.
  3. 가중치 행렬 선택의 원칙화: LoRA를 적용할 가중치 행렬을 선택할 때 주로 휴리스틱에 의존하였다. 이를 보다 원칙적인 방법으로 선택할 수 있는지에 대한 연구가 필요하다.
  4. 랭크 결핍(rank-deficiency)과 사전 학습 가중치:\Delta W 의 랭크 결핍은W 또한 랭크 결핍일 수 있음을 시사하며, 이는 미래 연구의 영감을 줄 수 있는 잠재적인 주제이다.

LoRA는 모델 적응의 비용을 절감하고 효율성을 높이는 방향으로 중요한 기여를 하였으며, 이러한 연구 방향을 통해 더욱 향상된 모델 적응 방법이 개발될 가능성이 있다.

02 |


🚥 주제 1 :
🚥 주제 2 : 🍭

🚥 주제 3 : 🚥 주제 4 :

03 | 코드 리뷰


https://github.com/microsoft/LoRA

https://github.com/microsoft/LoRA

파일이름

profile
AI Engineer / 의료인공지능

0개의 댓글