본문 바로가기

NLP/Prompt tuning

Towards a Unified View of Parameter-Efficient Transfer Learning 논문 리뷰

 

논문 링크: https://arxiv.org/abs/2110.04366

코드 링크: https://github.com/jxhe/unify-parameter-efficient-tuning

 

요약:

여러 parameter-efficient transfer learning 방법들을 분석하고 장점들을 결합하여 가장 좋은 방법을 제시한다.

 

Abstract

최근 Pretrained model의 일부분만 fine-tuning하면서도 좋은 성능을 내는 parameter-efficient transfer learning에 관한 많은 연구들이 진행됐다. 하지만 정확한 원인과, 여러 방법들 간의 관련성은 별로 밝혀진 것이 없다. 이 논문에서는 parameter-efficient transfer learning(이하 PETL) 방법들을 분석하고, 그들 간의 관련성을 알게 해주는 unified framework을 제시한다. 구체적으로, 이 논문에서 PETL 방법들을 pretrained model들의 hidden states를 변형시키는 방법으로 해석하며, 다양한 방법들을 변형시키는 함수의 형태, 변형시키는 위치와 같은 여러 기준으로 나눠 분석한다. 각 방법들의 장점들을 결합해 제안한 새 방법은 번역, 요약, NLI, 문장 분류 등의 실험에서 적은 파라미터를 학습하면서도 좋은 성능을 보였다.

 

Introduction

이 논문세서 세가지 질문에 대해 답을 하려고 한다.

1. PETL 방법들이 어떻게 연관되어 있는지?

2. 이 방법들을 효과적이게 만드는 공통점이 있다면 무엇인지?

3. 각 방법들의 고유한 특성들이 다른 방법들에도 동일하게 적용되어 더 좋은 효과를 낼 수 있는지?

 

Bridging the gap - a univied view

A closer look at prefix tuning

Prefix tuning의 식은 위와 같은데, 이를 변형하면 아래와 같은 식을 얻을 수 있다.

 

더보기

생략된 과정:

위의 식에서 주의해야할 점은, query에 해당하는 xWq는 고정이라는 점이며, 이에 따라 attention weight가 각각 m x l(Input-Prompt), m x m(Input - input) 형태로 나온다(m: input 길이, l: prompt 길이). 예를 들어, 길이가 2인 prompt가 추가된 "p1 p2 I love you"의 attention을 구한다고 했을 때, query는 "I love you" 이고 query와 "p1 p2", query와 "I love you"를 따로 구해 합치는 과정을 위와 같은 수식으로 표현할 수 있다. 이 수식을 풀어보면 아래와 같이 나오고, 그 다음 과정으로 넘어가기 수월할 것이다.

 

이 식의 최종 형태를 보면 기존의 attention에 임의의 context C와 상관없는 position-wise modification을 가한 것이라 볼 수 있다. 따라서 Prefix tuning은 기존의 original head attention output h에 linear interpolation을 통해 position-wise modification을 적용한 것으로 볼 수 있다.

 

The connection with Adapters:

위 식을

를 이용해 변형하면

이 나오는데, 이 식은 adapter의 식과 매우 비슷하다. 차이점은 adapter엔 weight가 없고, prefix tuning에는 있다는 점이다. 두 방법의 computation graph를 보면 매우 유사한 점을 알 수 있다.

그리고

형태를 갖는 matrix의 l을 작게 하면 adapter의 W_down, W_up과 유사한 역할을 하게 된다. 그리고 l은 adapter의 bottleneck dimension인 r과 유사한 역할을 하게 된다.

 

The difference from Adapters:

Gating variable인 람다를 제외하고도 prefix tuning과 adapter는 3가지 다른 점이 있다.

 

(1) 위의 그림에서 볼 수 있듯, prefix tuning은 Δh을 계산할 때 input x를 사용하지만 adpter는 layer의 output인 h를 사용한다. 그래서 prefix tuning은 parallel computation으로 볼 수 있고, adapter는 sequential computation을 볼 수 있다.

 

(2) Adapter는 adapter를 적용시킬 수 있는 위치가 여러 곳이다. 보통 attention layer나 FFN layer의 output에 적용한다. 반면 prefix tuning은 각 head의 attention output만 변경시킨다. 실험해봤을 때, 이 점이 큰 차이를 가져왔다(4.4).

 

(3) Prefix tuning은 each attention head에 적용되며 adapter는 항상 single-headed라고 볼 수 있으며, 이에 따라 prefix tuning이 더 expressive하다. Head attentinon은 d/Nh(head 개수)의 dimension을 갖고 있으며 l - prompt 길이 - 이 이보다 크면 full rank update를 한다. 하지만 dapter에서는 r이 d보다 커야 full rank update를 할 수 있다.

 

The Unified Framework

이런 PETL 방법들을 Δh을 학습하는 방법으로 바라보고, 몇 개의 설계 기준을 세워 분류하고자 한다.

사용된 기준은 Functional form, Modified representation, Insertion form, Composition function 들이다. 다른 방법들도 이 framework에 따라 해석될 수 있다. 이런 기준들을 통해 각 방법들이 어떻게 다르고 장단점이 무엇인지 알아볼 수 있다.

 

Transferring design elements

이제 위에서 도출한 unified view를 통해 알게 된 설계 요소들을 결합시켜 새로운 방법론을 제안한다.

(1) Paralle Adapter:  Prefix tuning의 parallel insertion을 adapter에도 적용한 방식.

(2) Multi-head Parallel Adapter: Parallel adapter를 head attention ouput에 적용한 방식.

(3) Scaled Parallel Adapter: LoRA의 composition, insertion form을 parallel adapter에 적용한 방식.

 

이때까지의 논의를 통해 다음의 물음들에 대해 답을 해보려고 한다.

각각의 설계 요수들의 특징이 있을까?

어떤 설계 요소가 중요할까?

위에서 제시한 새로운 방법들은 개선된 성능을 보일까?

 

Experiments

General setup

Datasets:

  • XSum - Rouge 1/2/L
  • English to Romanian(en-ro) - BLEU
  • MNLI, SST2 - accuracy on dev set

 

PLM:

multilingual BART_large -> XSum, en-ro

RoBERTa_bse for MNLI, SST2

 

실험에서 Adapter, prefix tuning, LoRA가 bitfit, prompt tuning(Lester et al.) 보다 훨씬 좋은 성능을 보였다고 한다.

평가 결과는 5번의 random seed를 이용한 실험 결과를 리포트했다.

 

Number of tunable parameters for each sub-layer:

  • Prefix tuning: l * d * 2(key, value)
  • Adapter: r * d * 2(W_down, W_up)
  • LoRA: r * d * 4(W_down, W_up for query and value)

The results of existing methods

MNLI와 SST2에서는 기존 방법들이 1% 미만의 파라미터만을 사용하고도 좋은 결과를 보여줬지만 XSum, en-ro에서는 5% 가량의 파라미터를 사용해도 full fine-tuning과 큰 차이를 보였다. 이를 통해 GLUE나 비교적 단순한 generation 데이터셋인 E2E에서 full fine-tuning과 비슷한 결과를 보여줬다고 하는 논문들이 다른 데이터셋에는 generalize 되지 않는다고 볼 수 있다. 이후로는 XSum과 en-ro 데이터셋에 좀 더 초점을 맞추려고 한다. We note that these two benchmarks are relatively high-resource performed with an encoder-decoder model (BART) - 데이터셋이 high-resource라는 건지, BART가 parameter가 크다는 건지 모르겠어서 그냥 그대로 가져옴.

 

Which insertion form - sequential or parallel?

Paralle insertion form이 기존의 sequential form보다 좋았다.

 

Which modified representation - Attention of FFN?

Parallel adapter를 attention과 FFN에 적용하여 비교했다. 그리고 LoRA도 FFN에 적용하여 비교해봤다.

PA(ffn) 2.4%를 제외한 FFN을 변경시킨 모든 방법들이 attention을 변경시킨 방법들보다 좋았다(빨간 선). 그리고 같은 방법을 ffn과 attention에 적용했을 때 ffn에 적용시킨 방법이 항상 좋았다. Prefix tuning은 원 논문에서 밝힌 것처럼 parameter를 늘린다고 성능이 더 좋아지진 않았다. 

이를 통해 FFN을 변경시키는 것이 attention을 변경시키는 것보다 parameter를 더 효과적으로 사용할 수 있다는 것을 알 수 있다. 아마도 FFN은 task-specific textual pattern을 학습하기 때문이라고 추측한다(Geva et al.2021). 반면에 attention은  task에 맞는 능력을 학습하기보다는 pairwise positional interaction을 학습하는 것처럼 보인다.

 

우리는 Prefix tuning이 adapter보다 expressive하다고 생각했지만 위의 그림에서는 그렇지 못했다(PA (attn)). 아마도 multi-head attention은 적은 양의 파라미터를 사용할 때만 효과적인 것으로 보인다. 이를 검증하기 위해 prefix tuning과 parallel adapter를 0.1%의 파라미터만 사용해서 비교했다. 그리고 composition function을 동일하게 하기 위해 prefix tuing의 weight도 없앴다. 

Multi-head 방법들(Prefix tuning, MH PA(attn)은 똑같은 양의 파라미터를 사용한 다른 방법들보다 1.6 이상 좋은 성능을 보였다. Prefix tuning은 l을 200에서 30까지 줄였을 때 성능 변화가 0.4로 적었고, PA(atten)은 1.9만큼 줄었다.

Multi-head PA는 single-head PA보다 1.6 이상 개선되었다. 이를 통해 multi-head formulation이 유용함을 알 수 있었다.

 

Which composition function?

Table 1에서 볼 수 있듯이 각 방법들에는 다른 composition function이 쓰였다. 그렇지만 softmax가 없는 방법에서 gated addion을 쓰는 것은 부자연스럽기 때문에 Parallel adapter에 LoRA의 composition function을 적용하여 Scaled PA를 적용해본다. 그 대상은 효과가 좋은 FFN으로 정했다. Scaling 변수 s는 dev set에서 R2가 가장 좋았을 때의 값으로 정했다.

Scaled PA는 vanilla PA보다 성능이 개선됐다. 그리고 LoRA의 s를 1로 설정해 scaling 효과를 없앴을 때 성능이 줄어들었다. 이를 통해 scaling composition function이 vanilla additive function보다 좋다는 것을 알게 됐다.

 

An effective integration by transferring favorable design elements

이때까지의 실험으로

1. Scaled parallel adapter가 FFN을 변경하기 가장 좋은 방법이었다.

2. FFN을 변경하는 것이 더 효율이 좋다.

3. Head attention을 변경하는 것은 적은 파라미터로 좋은 효과를 얻을 수 있다.

 

이를 종합하여

전체 파라미터 중 상당 부분을 FFN을 변경시키는 scaled parallel adapter에 사용하고, 적은 수의 파라미터를 prefix tuning(l=30)을 이용하여 head attention을 변경시키는데 사용한다.

이 방법을 Mix-And-Match adapter(MAM adapter)라고 명명한다.

MAM Adapter는 PETL 방법들 중 가장 좋은 방법을 보였으며 6.7%만의 파라미터를 학습하면서도 full fine-tuning가 거의 비슷한 효과를 내었다.

 

 

결론

전개가 상당히 깔끔하다.

분석을 통해 각 방법들의 장점들을 합쳐서 가장 좋은 결과를 만들어냈다.

처음 prefix tuning 수식만 잘 이해하고 넘어간다면 읽기 수월하다.

잘 쓴 논문이라 생각했는데 Openreview에서 점수가 굉장히 높았고, spotlight로 선정됐다.

Prompt tuning에 대한 여러 지식과 insight를 주는 논문이다.