https://arxiv.org/abs/2106.09685
대규모 LLM들의 파인튜닝 문제점
자연어처리의 중요한 패러다임 중 하나는 파인튜닝을 하는것인데, 모델의 크기가 커질 수록 이는 점점더 힘들어집니다. 예를들면 GPT-3 175B의 경우 1750억개의 매개변수를 가지고 있기 때문에 이를 파인튜닝하려면 시간과 비용이 많이 소모됩니다.
많은 연구자들이 일부 파라미터만 파인튜닝 하거나 외부모듈을 학습하여 이를 완화하려고 시도했지만, 이것이 모델의 깊이를 확장하거나 모델의 사용가능한 시퀀스 길이를 줄여 추론지연을 유발했었습니다. 이런것들이 효율성과 모델 품질간의 트레이드 오프를 초래합니다.
저자는 이를 개선하기 위해 LORA를 제안합니다.
모델 method
사전 훈련된 모델들(pre-trained language models)은 낮은 내재적 차원(instrisic dimension)을 가지고 있다고 설명하며 그러므로 작은 부분공간(subspace)에 랜덤투영해도 효율적으로 학습할 수 있다고 설명합니다. 이에 영감받아 저자들은 가중치의 업데이트 역시 낮은 내재적 차원(instrisic dimension)을 가진다고 가정하고 아래 식과같이 업데이트를 $BA$로 제한합니다.
$$ W_{0}+\Delta W = W^{0} +BA $$
$$where\ B\in \mathbb{R}^{d\times r},\ A\in \mathbb{R}^{r\times k}, r\ll min(d,k)$$
훈련중에 $W_0$는 고정되어 업데이트 되지 않으며, $A$와 $B$는 학습가능한 매개변수를 포함합니다.
풀어서 적으면 기존의 Pre-trained weights인 를 freeze시키고 dense layer의 weight 크기를 Low-rank로 decomposition한 metrices만을 학습하는것 입니다.
예를들어 W의 크기가 위 그림처럼 (d x d)라고 했을 때, A의 크기는 (d x r), B의 크기는 (r x d)인데, 파라미터 갯수를 비교해보면 (d x d) >> (2 * d * r) 이기 때문에 $(\because d >> r)$ 실제로 역전파로 인해 업데이트가 진행되는 파라미터는 기존 파라미터 수에 비해 현저하게 줄어듭니다.
단순히 $W$에 $A,B$행렬을 더해주는것 이기 때문에 기존 Weight로 복구하기가 매우 용이합니다.(더해준만큼 빼면 됨)
$$h = w_{0}+ \Delta x = W_{0}x+BAx$$
$h=W_{0}x$인 경우 수정된 순방향전파(forward pass yields)는 위와같이 나타납니다.
$A$에는 랜덤 가우시안 초기화를 사용하고 $B$에는 0을 사용하므로 학습 시작 시 $BA = 0$입니다. 그다음 $\Delta Wx$를 $\alpha /r $로 스케일링합니다.
이때 $A$를 가우시안 최화를 한 이유는 일반적인 신경망 훈련에서 흔히 사용되는 방식으로 초기학습이 원활하게 이루어지게 하기 위함이고, $B$를 0으로 초기화한 이유는 초기 학습 단계에서 $\Delta W=BA$가 0이 되게 하여 모델이 사전 훈련된 가중치 $W_{0}$에서 시작하도록 하기 위함입니다. 이렇게하면 처음부터 모델이 큰 변화를 겪지 않고 안정적으로 학습을 시작할 수 있습니다.
그리고 $\Delta Wx$를 $\alpha /r $로 스케일링하는 이유는 모델 학습시 하이퍼 파라미터를 조정하지 않아도 되도록 하기 위함입니다. 이때 $\alpha $는 스케일링 상수로, $\Delta W$의 크기를 조절하여 안정성을 높여, $r $값이 변경되더라도 다른 하이퍼파라미터를 재조정할 필요가 없습니다.
Experiments
다양한 adaptation방법을 적용한 GLUE벤치마크 입니다.
E2E NLG Challenge에 대한 gpt2 adaptations 의 결과입니다.
추론시 $AB$의 연산량이 기존과 비교했을 때 현저하게 적기 때문에 추론시간이 거의 동일하며, Adam으로 파인튜닝한 것과 비교할 때, LoRA는 훈련가능한 매개변수를 최대 10,000개 줄였고, GPU메모리 요구사항을 3배 줄일 수 있습니다. 또한 RoBERTa,DeBERTa,GPT-2,GPT-3와 비교하여 파인튜닝했을때 더 나은 품질을 보여주며, 추가적인 추론 지연이 없습니다.
[논문] RAG(Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(2020)) (2) | 2024.10.06 |
---|---|
[논문] BART : Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation and Comprehension (0) | 2024.08.11 |
[논문] GPT 논문 정리 (0) | 2024.07.15 |
[논문] GPT 이전 까지의 NLP 주요 논문 정리 (0) | 2024.06.04 |
[논문] Factuality Enhanced Language Models for Open-Ended Text Generation (0) | 2024.02.14 |