[Summary] Analysis of Parameter-Efficient Fine-Tuning Techniques for Large Language Models

Date:     Updated:

카테고리:

태그:

image
image
image


🔍 Overview

지금까지 Language Model을 효율적으로 Fine-tuning하기 위하여 다양한 PEFT(Parameter-Efficient Fine-Tuning) 방법론이 제안되어 왔다. 그러나 PEFT 방법론을 어떻게 사용하는 것이 좋고, 어떤 방법론이 우위에 있는지에 대해 체계적으로 분석하는 것은 쉽지 않다. 이 글에서는 그 중에서도 PEFT 방법론들을 체계적으로 분석한 3개의 논문을 종합하여 정리해 PEFT에 대해 깊이 이해하고자 한다. 해당 논문들은 다음과 같다.

  1. [23’ Nature Machine Intelligence] Parameter-efficient fine-tuning of large-scale pre-trained language models: 100개가 넘는 NLP task에 대해 주로 PT(Prompt Tuning), PF(Prefix Tuning), LR(LoRA), AP(Adapter) 방법론의 성능, 수렴성 등을 비교하고, 이를 같이 사용(combination)한 경우의 성능 변화도 분석하였다. 또한, 모델이 커짐에 따라 PEFT 방법론의 성능이 어떻게 변화하는지에 대해서도 분석하였다. 그 외에도 다양한 분석을 수행하여 정보량이 아주 많은 논문이다.
  2. [23’ ICLR Workshop] Empirical Analysis of the Strengths and Weaknesses of PEFT Techniques for LLMs: 주로 (IA)3, LoRA, BitFit을 비교하고, 추가로 어느 level의 layer에 PEFT를 하는 것이 유리한지에 대해 분석하였다.
  3. [23’ EMNLP] LLM-Adapters: An Adapter Family for Parameter-Efficient Fine-Tuning of Large Language Models: Prefix Tuning, Serial Adapter, Parallel Adapter, LoRA에 대해 비교하고, In-Distribution task와 Out-of-Distribution task에 대한 성능을 분석하였다.


1. Paper 1 [23’ Nature Machine Intelligence]

1.1. Performance, Convergence and Efficiency

Setting: 기본적으로 pretrained T5-BASE (220M)를 사용하였고, FT(Fine-Tuning)과 4가지 PEFT 방법인 PT(Prompt Tuning), PF(Prefix Tuning), LR(LoRA), AP(Adapter) 방법론을 비교하였다.

이로부터 얻을 수 있었던 결론을 요약하면 다음과 같다.

Performance Analysis

image

  1. FT(Fine-Tuning)에 비해 tunable parameter 수가 굉장히 많이 줄어들었음에도 불구하고, 대부분의 경우에는 PEFT가 FT에 준하는 성능을 보여주었다. 즉, 실제 PEFT의 목적을 잘 달성하고 있다는 것을 재확인한 것이다.
  2. 또한, tunable parameter를 늘린다고 성능이 향상되지는 않았다. 따라서, downstream task의 complexity에 따라 적절한 parameter 수를 선택하는 것이 중요하다는 것을 알 수 있다.
  3. 평균적인 성능은 FT > LR > AP > PF > PT 순으로 나타났다. 그러나, LR, AP, PF는 서로 더 잘하는 task가 달라 순위를 간단히 매기기는 어려웠다. 심지어 어떤 경우에는 FT를 뛰어넘기도 했다. 한편, PT는 대부분의 task에서 다른 3가지에 비해 성능이 떨어졌다.
  4. 한편, 동일한 category에 속해 있는 task의 경우 PEFT를 시행하고 zero-shot transferring performance를 측정했을 때 성능이 꽤 좋았다. 그러나 다른 category인 경우에는 잘 맞지 않는 경우가 많았다.

Convergence Analysis

image

  1. 수렴 속도는 FT > AP ~ LR > PF 순으로 나타났다. 전체적으로 Fine-tuning의 경우가 가장 수렴이 빨랐으며, PEFT 방법들은 수렴이 느리게 이루어졌다.
  2. Tunable parameter 수의 차이에 의해 수렴 속도가 크게 달라지지는 않았다. 즉, 수렴 속도는 parameter 수보다는 다른 요인에 의해 결정되는 것으로 보인다.

Efficiency Analysis

image

  1. PEFT는 back-propagation 과정의 계산을 줄여주어 backwards time이 fine-tuning에 비해 크게 줄어들고, GPU memory 사용량도 줄어든다. (여기서 BF는 BitFit이다.)
  2. Adapter의 경우 Transformer layer에 sequencial하게 추가되므로 inference latency가 생긴다는 단점이 있다.


1.2. Combinations

Setting: 조합이 가능한 서로 orthogonal한 PEFT 방법들을 조합하여 성능을 비교하였다. 이때 사용한 방법은 PT(Prompt Tuning), BF(BitFit), AP(Adapter)이다.

Combination Strategy

저자들은 2가지 방법을 사용하여 PEFT 방법들을 조합하였다. 첫 번째는 Simultaneous combination으로, 모든 방법을 한 번에 적용하는 가장 간단한 방법이다. 두 번째는 Sequential combination으로, 먼저 한 방법을 적용하고, 이렇게 학습한 파라미터는 더 이상 학습하지 않고 다음 방법을 적용하는 순차적인 방법이다. 각각의 결론을 요약하면 다음과 같다.

image

  • Simultaneous Combination: BF, AP는 서로 도움이 되었으나, PT는 다른 방법들과 조합하면 성능이 떨어졌다.
  • Sequential Combination: 특정 상황에서는 성능이 향상되었지만, 최적의 방법론은 찾기 어려웠다.

image

Generalization Gap

추가로 Generalization Gap에 대한 분석을 수행하였다. 이때 Generalization Gap은 Training set과 Test set의 성능 차이를 의미한다. 이를 통해 모델의 generalizability를 측정할 수 있다.

  1. Single PEFT의 경우 항상 Fine-tuning보다 generalizaion gap이 적었다. 이는 fine-tuning이 over-parametrization되어 있다는 것을 의미한다.
  2. Combination의 경우 generalization gap이 증가하였고, 이는 거의 fine-tuning의 generalization gap과 비슷했다. 즉, 이렇게 적은 파라미터로도 일부 downstream task에서는 overfitting이 일어날 수 있다는 것이고, 따라서 training set을 암기(memorization)하는 것으로도 task를 해결할 수 있는 경우 아주 작은 모델만으로도 충분하다는 것을 의미한다.


1.3. The Power of Scale

Setting: 모델의 크기에 따른 성능 변화를 분석하였다. 이때 사용한 모델은 T5-SMALL(60M), T5-BASE(220M), T5-XXL(11B)이다.

image

  1. 모델이 커짐에 따라 전반적인 성능은 향상된다(scaling law). 그리고 모델이 커질수록 PEFT 방법론 간의 성능 차이가 줄어든다.
  2. 모델이 커질수록 수렴 속도가 빨라진다.

이는 큰 모델일수록 상대적으로 작은 intrinsic dimensionality를 가지고 있기 때문이다. 즉, 적은 수의 parameter로도 큰 모델이 충분히 학습 가능하기에 PEFT 방법론의 효과가 더 커지는 것이다. 한편, 모델이 커질수록 large-scale pre-training은 PEFT 도중 local optima에 빠지는 것을 방지하기에 수렴 속도가 빨라진다.

추가로 저자들은 last-layer tuning과 selective-module tuning의 성능을 비교하였다. 이때 last-layer tuning은 마지막 layer만 fine-tuning하는 것이고, selective-module tuning은 여러 layer의 특정 module만 fine-tuning하는 것이다. 이때 selective-module tuninglast-layer tuning보다 성능이 약간 더 좋았다. 이로부터 prompt-tuning이나 last-layer tuning과 같이 특정 layer만 PEFT하는 것이 좋은 방법이 아닐 수 있다는 것을 알 수 있다.

image


2. Paper 2 [23’ ICLR Workshop]

해당 논문에서는 FLAN-T5-XL (1.3B)를 사용하여 (IA)3, LoRA, BitFit, Prompt Tuning을 비교하였다. 이 논문의 특징은 resource setting을 다양하게 바꿔가며 성능 차이를 비교했다는 점인데, data scale을 low resource (100 points), medium resource (1k points), high resource (10k points)로 나누어 실험을 진행하였다.


2.1. Comparison of PEFT Techniques

Performance Analysis

image

Resource가 적은 상황에서는 LoRA, BitFit과 같은 PEFT 방법들의 성능이 좋고, Resource가 많은 상황에서는 fine-tuning이 가장 효과적이었다. 즉, resource가 적은 상황일수록 PEFT 방법론이 더 효과적이라는 것을 알 수 있다. 그러나 PEFT 내에서는 어떤 것이 가장 효과적인지에 대해서는 일관된 결론을 내리기 어려웠다. 참고로 가장 memory-efficient한 방법은 (IA)3이었다.

Convergence Analysis

image

위 그림에서 runtime은 수렴하는 데 걸린 시간을 의미한다. 이로부터 low/medium resource setting에서는 PEFT가 fine-tuning보다 수렴이 느리다는 것을 알 수 있다. 이는 Paper 1과 동일한 결론이다. 한편, high resource setting에서는 큰 차이가 없었다고 한다. 이는 fine-tuning은 쉽게 적은 데이터에 overfitting되는 반면 PEFT는 파라미터의 수가 적어 불안정하게 학습되기 때문이다. Performance와 convergence를 종합해보면, PEFT는 fine-tuning에 비해 low-resource setting에서는 성능이 좋지만 수렴이 느리고, 그 역도 성립한다는 것을 알 수 있다.


2.2. Ablation Study

image

논문에서는 추가로 어떠한 layer나 component가 가장 PEFT에 있어 중요한지 알아보기 위해 ablation study를 수행하였다. 그 결과는 다음과 같다.

  1. 적용하는 Layer, Component를 바꾸는 과정에서 LoRA가 (IA)3보다 robust한 성능을 보인다.
  2. Attention Layer에 PEFT를 적용하는 것이 성능에 굉장히 중요하다.
  3. Early layers보다 later layers를 PEFT하는 것이 더 효과적이다. 이는 transfer learning paradigm과 비슷한 결과로 볼 수 있다. 즉, early layers가 task-independent한 정보를 가지고 있는 반면 later layers가 task-specific한 정보를 가지고 있기 때문에, later layers를 PEFT하는 것이 더 효과적이라는 것이다.


3. Paper 3 [23’ EMNLP]

Setting: 해당 논문에서는 LLaMA-7B를 비롯한 다양한 LLM 모델과 Serial Adapter, Parallel Adapter, Prefix Tuning, LoRA를 비교하였다.


3.1. Placement and Configuration

Placement Analysis

image

먼저 논문에서는 Serial Adapter, Parallel Adapter, LoRA를 어느 module에 적용하는 것이 가장 효과적인지 분석하였다. 전반적으로 Adapter 종류는 MLP에, LoRA는 모든 곳에 적용하는 것이 효과적이었다. 이는 기존 PEFT 논문에서 주장한 것과 유사한 결과이다. 전체적인 결과는 Serial Adapter보다는 Parallel Adapter와 LoRA가 더 효과적이었다.

Configuration Analysis

image

한편 tunable parameter의 수를 얼마로 해야 하는가에 대해서는 일관적인 답을 얻기 어려웠다. 가능하다면 각각의 setting에서 parameter의 절대적인 수치를 알려주었다면 더 좋을 것 같다는 생각이 든다.


3.2. In-Distribution and Out-of-Distribution Analysis

여기서는 Fine-tuning된 LLaMA-13B 모델과 ChatGPT와의 성능을 비교하였다. 이때 In-Distribution(ID) task는 LLaMA-13B pretraining에 사용된 데이터셋을 활용하여 fine-tuning한 task를 의미하고, Out-of-Distribution(OOD) task는 pretraining에 사용되지 않은 데이터셋을 활용하여 fine-tuning한 task를 의미한다. 결과는 다음과 같다.

  • ID Task: PEFT를 사용하면 ChatGPT와 같은 거대 모델보다 성능이 더 좋았다. 즉, ID에서는 PEFT가 잘 수렴하며, 효과적이라는 것을 알 수 있다.
  • OOD Task: PEFT를 사용하여 어느 정도 성능을 높일 수 있었으나, ChatGPT와 같은 거대 모델의 성능에 미치지는 못했다. 즉, large-scale pre-training을 하지 않은 근본적인 문제는 PEFT로 잘 해결되지 않는다는 것이다. 특히 복잡한 task일수록 이러한 문제가 뚜렷했다.


💡 Summary

지금까지 3개의 논문을 종합하여 PEFT에 대해 분석해보았다. 이를 종합하여 다음과 같은 결론을 얻을 수 있다.

  1. 일반적으로 PEFT와 FT를 비교한 결과는 다음과 같다.
    1. 대부분의 경우, PEFT는 FT에 준하는 성능을 발휘할 수 있다.
    2. PEFT가 FT보다 더 Generalizability가 높지만, 수렴 속도가 느리다.
    3. PEFT는 FT에 비해 계산 시간과 메모리 사용량이 적다.
    4. 데이터가 적은 경우 PEFT가 유리하지만, 데이터가 많은 경우 FT가 더 효과적이다.
  2. PEFT 방법 간 비교에서는 다음과 같은 결론을 얻을 수 있다.
    1. Adapter, LoRA, Prefix Tuning, BitFit, (IA)3 등은 각각이 가장 좋은 task가 있으며, 어떤 것이 가장 효과적인지는 task에 따라 다르다.
    2. 한편 Prompt Tuning은 가장 간단한 방법이지만, 성능이 떨어지는 경우가 많다. 다른 방법들과 조합했을 때도 성능이 좋지 않았다.
    3. Tunable parameter의 수는 task-specific하게 결정되어야 한다. 일반적으로, 복잡한 task일수록 더 많은 parameter가 필요하다.
    4. 특정 하나의 layer만 PEFT하는 것은 좋은 방법이 아니며, 여러 layer를 PEFT하는 경우 Early layers보다 later layers를 PEFT하는 것이 더 효과적이다.
  3. 각 PEFT 방법의 특징을 살펴보면 다음과 같다.
    1. Adapter: Inference latency가 생긴다는 단점이 있지만, 간단한 방법임에도 성능이 꽤 좋은 편이다. MLP Layer에 적용할 때 가장 효과적이다.
    2. LoRA: Robust한 성능을 보이며, Attention Layer 또는 모든 Layer에 적용하는 것이 효과적이다. 가장 많이 사용되는 방법 중 하나이다.
  4. 그 외 정보를 정리하면 다음과 같다.
    1. 모델이 커질수록 PEFT 방법론의 성능이 더 좋아지며 방법론 간 차이가 줄어들고, 수렴 속도가 빨라진다.
    2. Transfer learning, 혹은 downstream task learning 상황에서 task가 pre-training과 비슷할수록 PEFT가 효과적이다. 즉, OOD 상황을 PEFT가 쉽게 해결해주지 않으며, 근본적으로 데이터셋의 크기를 키우는 것이 필요하다.


📃 Reference


Language 카테고리 내 다른 글 보러가기

댓글 남기기