[Review] Prefix-Tuning: Optimizing Continuous Prompts for Generation (COLING 2021)

Migyeong Kang·2024년 8월 12일
0

Abstract

  • Background: Fine-tuning은 LLM을 downstream task를 활용하기 위해 사용하는 방법임.
  • Limitations of previous works: 그러나, 이것은 언어모델의 모든 parameter를 수정하고, 그러므로 full copy를 저장해야 함.
  • Method: 이에 따라 이 논문에서는 Prefix-tuning을 제안함.
    • 이는 자연어 생성 작업에 대해 언어 모델을 finetuning할 때 활용할 수 있는 lightweight alternative임.
    • 이 방식은 언어모델 parameters를 frozen하여 저장해두고, small continuous task-specific vector (called the prefix)를 최적화함.
    • Prefix-tuning은 prompting으로부터 영감을 얻어서 다음 토큰이 이 prefix 토큰에 virtual tokens인 것처럼 attend할 수 있게 함.
  • Experiments : 우리는 prefix-tuning을 GPT-2에 table-to-text generation에 적용하고, BART 모델에 summarization으로 적용해봤음.
    • 우리는 오직 0.1%의 파라미터로 학습함으로써, prefix-tuning이 full-data setting과 comparable performance를 도출해낼 수 있음을 보여줌.
    • 또한 이는 fine-tuning을 low-data setting에서 능가하였으며, training동안 unseen topics을 포함한 example을 보다 잘 추론함을 발견하였음.

1. Introduction

Background: Challenges of Fine-tuning

  • Fine-tuning은 Large language model을 downstream task에 대해서 사용하고자 할 때 자주 사용되는 방식임. (e.g., Summarization)
  • 그러나 이것은 LM의 모든 파라미터들을 저장하고 업데이트 하는 것을 필요로 하기 때문에 이러한 LM을 사용하는 NLP 시스템을 구축하기 위해서는 LM 파라미터들을 모두 copy하고 modify해야 하는 과정이 필요함.
  • 이러한 과정은 Large size of current LMs을 바탕으로 하는 경우 상당히 expensive함. (e.g., GPT-2 774M, and GPT-3 175B parameters)

Previous Works: Lightweight Fine-tuning

  • 이 문제에 대한 해결방법은 lightweight fine-tuning임. 이는 pretrained parameters의 대부분을 freeze하고, small trainable moduels을 통해 모델을 augment함.
    • 예를 들어, Adapter-tuning은 additional task-specific layers를 사전학습된 언어모델의 레이어들 간에 insert하였음.
  • Adapter-tuning은 단 2~4%의 task-specific parameter만으로 fine-tuning과 comparable performance를 보여주면서 자연어 이해와 생성 벤치마크에서 promising performance를 보여주었음.

Previous Works: In-context Learning

  • 극단적인 경우, GPT-3은 task-specific tuning 없이도 활용될 수 있음. 대신, 사용자는 자연어로 된 작업 지침(task instruction)과 몇 개의 예제(few example)들을 task input에 prepend하면 되며, LM은 이를 바탕으로 output을 generate함.
  • 이러한 접근법은 in-context learning 또는 prompting라는 이름으로 알려져 있음.

In this paper: Prefix Tuning

  • 이 논문에서 우리는 prefix-tuning을 제안함. 이는 natural language generation (NLG) 테스크를 위한 lightweight alternative임. 그리고 우리는 이를 prompting으로부터 영감을 받아 제안하게 되었음.
  • Textual description of data table을 생성하는 작업에 대한 예시가 Figure 1에 나타나있음.
    • Fine-tuning (top) 모든 Transformer 파라미터들을 업데이트 함 (red block) 그리고 full model copy를 each task마다 저장하는 것이 필요.
    • 우리는 prefix-tuning (bottom)을 제안, 이것은 Transformer parameter를 얼리고 오직 prefix (the red prefix block)만을 최적화함.
    • 결과적으로 우리는 각 테스크에 해당되는 prefix만 저장하면 됨. 참고로 각각의 vertical blcok들은 trnasformer activation at one time step을 의미.

Process of Prefix Tuning

  1. Task input은 "name: Starbucks | type: coffee shop"으로 표현
  2. Output은 textual description임 ("Starbucks serves coffee.")
  3. Prefix-tuning은 continuous task-specific vectors를 input에 prepend함. 이를 우리는 prefix라고 부름. 이는 Figure 1의 red block에 해당.
  4. 그 다음 토큰에서, Transformer는 prefix에 이것이 virtual token인 것처럼 attend함.
  • 그러나 prompting과는 달리, Prefix는 real tokens에 해당되지 않는 free parametres로만 구성되어 있음.
  • Transformer의 모든 파라미터들을 업데이트 하기 때문에 each task를 위해 tuned copy of the model을 저장해야 하는 fine-tuning과는 다르게, Prefix-tuning은 prefix만 최적화하면 됨.
  • 결과적으로 우리는 오직 하나의 Transformer 모델만 저장하고, task-specific prefix만 학습시키면 되기 때문에 추가적인 테스크에 대해 매우 작은 overhead만 추가됨. (e.g., 250K parameters for table-to-text)

Advantage of Prefix Tuning

  • fine-tuning과는 달리 prefix-tuning은 modular함.

    모듈러 프로그래밍 (Modular Programming) :
    프로그램 내부를 기능별 단위로 분할하여 독립성을 갖도록 함으로써 다른 모듈에 영향을 받는 일이 없이 일부 모듈의 개량이나 재번역이 가능하도록 하는 프로그래밍 기법

  • 우리는 수정되지 않은채로 유지되는 downstream LM을 위한 upstream prefix를 훈련함.
  • 그러므로, single LM은 한번에 많은 테스크를 지원할 수 있음. 서로 다른 유저에게 달리 적용될 수 있는 개인화(personalization) 맥락의 관점에서, 우리는 seperate prefix를 각각의 유저에 대해 그 유저의 데이터에 대해 훈련하면 됨. 그렇게 함으로써, data cross-contamination(오염)을 피할 수 있음.
  • 게다가, prefix-baed architecture는 우리가 multiple users/tasks의 example을 single batch에서 처리 가능하게 할 수 있는데, 이는 다른 lightweight fine-tuning 접근법에서는 불가능한 일임.

    위에서 언급한 Adapter training의 관점에서 보면, 어쨌든 insert된 additional layer를 학습시킨 모델이 task/user별로 나와야 하니까 그런 듯, 여기서는 inference 단계에서 앞쪽의 prefix만 교체해주면 가능하다! 이런 의미로 보임.

Experimental Result

  • 우리는 perfix-tuning을 table-to-text generation에 대해 GPT-2를 사용, summarization 테스크에 BART를 사용하여 평가하였음.
  • storage 관점에서, Prefix-tuning은 fine-tuning과 비교했을 때 1000x fewer parameters를 저장함.
  • performance 측면에서, full datasets에 대해 훈련되었을 때 prefix-tuning과 fine-tuning은 table-to-text 테스크에서 comparable한 성능을 내었음. 반면에 pre-fix tuning은 summairzation에서 small degradation을 보였음.
  • low-data setting에서 prefix-tuning은 fine-tuning을 모든 테스크에서 능가하였음.
  • prefix-tuning은 또한 unseen topics에 대한 table과 article을 보다 잘 추론하는 모습을 보였음.

    Experiments

    1. Storage
    2. Performance with Full dataset
    3. Performance with Low dataset
    4. Generalizability

2. Related Work

2.1 Fine-tuning for Natural Language Generation

  • 현재의 자연어 생성(NLG)를 위한 state-of-the-art systems들은 pretrained LMs를 fine-tuning하는데 초점을 맞추고 있음.
  • table-to-text generation에서, 기존 연구들은 seq2seq 모델을 fine-tuning하는 방식을 활용했고, extractive나 abstractiv esummarization 테스크에서도 연구자들은 BERT와 같은 maksed language models나 encoder-decoder model(e.g., BART)를 fine-tune했음.
  • 다른 conditional NLG 테스크에서도 (e.g., machine translation, dialogue generation) fine-tuning은 흔하게 사용되는 기법이었음.

    ✔︎ 이 논문에서 우리는 GPT-2를 사용한 table-to-text와 BART를 사용한 summarization에 초점을 맞추었지만 prefix-tuning은 other generation나 pre-trained model에 다 적용될 수 있음.

2.2 Lightweight fine-tuning

  • Lightweight fine-tuning은 대부분의 pretrained parameter를 freeze하고 small trainable 모듈만 학습하는 기법임.
  • 주요 이슈는 high-performaing architectures of the module을 식별하는 것, 그리고 튜닝한 pretrained parameter의 subset을 선정하는 일임
  • 이에 대한 한 연구에서는 parameters를 삭제하는 것을 고려했음. binary mask를 훈련함으로써 특정 모델 weights를 제외시키는 것임.
  • 또 다른 연구에서는 파라미터를 inserting하는 것을 고려하였으며, 예를 들어 한 연구는 "side" 네트워크를 훈련하는데, 이는 summation을 통해 pretrained model을 fuse한 것임. adapter-tuning은 task-specific layers를 each layers of pretrained LM사이에 추가함.

    ✔︎ 이러한 연구들들은 LM parameters의 약 3.6%를 훈련하지만 우리의 방법론은 오직 0.1%만 사용하면서 30x reduction in task-specific parameters를 얻을 수 있으며 동시에 comparable performance도 유지함.

2.3 Prompting

  • Prompting은 instruction과 few example들을 task input에 prepend하는 것임. 그리고 LM이 이를 바탕으로 output을 생성함.
  • GPT-3은 수동으로 prompt를 서로 다른 테스크가 생성해야 하는 것에 맞춰 디자인된 prompt를 사용하며 이것을 in-context learning이라고 부름.
  • 그러나, Transformer가 오직 bounded-length context (e.g., 2048 tokens for GPT-3)만 입력으로 받을 수 있기 때문에 in-context leaerning은 context window보다 더 큰 길이의 trianinig set을 온전히 고려하기 어려움.
  • Natural language understanding 분야에서도 BERT나 RoBERTa를 통한 프롬프트 엔지니어링 연구가 진행되었음. (관련연구 소개, 딱히 중요하진 않아보임)
    ✔︎ 한편에서는 Continuous vector를 이용해서 language model을 특정 응답을 이끌어내기 위해 사용하였음. 예를 들어, 한 연구에서는 pretrained LSTM language model을 소개하는데, 이는 arbitraty sentences를 input-specific한 continuous vector로 최적화함으로써 reconstruct할 수 있는 것을 보여주었음. (input-specific = for each sentence)

    ✔︎ 반면에, prefix-tuning은 모든 task-specific prefix를 최적화하는데, 이는 all instance of that task에 모두 적용 가능함. 결과적으로, sentence reconstruction에 한정되어 사용되던 이전 연구와는 달리 prefix-tuning은 NLG 테스크에 적용될 수 있음.

2.4 Controllable Generation

  • Conrollable generation은 sentence lebel attribute에 맞춰 pretrained language model의 출력을 조정하는 것을 목표로 함.
  • 이러한 조정은 training time에서 발생할 수 있음. 예를 들어 한 연구는 CTRL을 제안하는데, 이는 metadata (e.g., keywords or URLs)에 조건화된 language model을 pretrained한 것임.
  • 추가적으로, 이러한 조정은 decoding time에서 발생할수도 있음. decoding에 weight를 적용하거나 반복적으로 past activation들을 업데이트하거나.

    ✔︎ 그러나, table-to-text그리고 summairzation과 같은 특정 테스크의 수요에 맞게 이러한 controllable generation techniques를 fine-grained control을 강제하기 위해 직접적으로 적용한 방식은 없었음.


3. Problem Statement

  • input이 context xx와 output yy (sequence of token)인 conditional generation task 중에서, 우리는 두 가지 테스크에 초점을 맞춤. - (1) Table-to-text (2) Summarization

    (1) Table-to-text: 입력은 linearized data table, 출력은 textual description
    (2) Summarization: 입력은 article, 출력은 short summary임.

3.1 Autoregressive LM

  • 우리가 다음과 같이 Transformer 기반의 autoregressive language model을 가졌다고 생각해보자. (여기서 ϕ\phi는 parameter를 의미)

    pϕ(yx)p_ϕ(y | x)
  • Figure 2 윗 부분에 표현되어 있듯이, z=[x;y]z = [x;y]는 두 개의 concatenate를 의미함.

  • XidxX_{idx}는 sequence of indices를 의미하며, 얘는 x에 따라 달라짐. YidxY_{idx}는 y에 대한 sequence of indices를 의미함.

  • 각 time step ii에 대한 activation은 hiRdh_i ∈ R^d이며, 여기에서 hi=[hi(1);;hi(n)]h_i = [h_i^{(1)}; · · · ; h_i^{(n)}]는 해당 time step에서의 모든 activation layer에 대한 concatenation을 의미함.

  • 그리고 hi(j)h_i^{(j)}jj-th Transformer layer at time step ii를 의미함.

  • Autoregressive Transformer 모델은 hih_i를 function of ziz_i와 과거의 이것의 left context activations를 활용해 다음과 같이 계산함.

    hi=LMϕ(zi,h<i)h_i = LM_ϕ(z_i, h_{<i})
  • hih_i의 last layer는 next token의 distribution을 결정하는 데 사용됨.

    pϕ(zi+1hi)=softmax(Wϕhi(n))p_ϕ(z_{i+1} | h_{≤i}) = softmax(W_ϕ h_i^{(n)})
  • 여기서 WϕW_ϕ는 h_i^{(n)}를 vocabulary에 대한 logits으로 맵핑하는 pretrained matrix임.

3.2 Encoder-Decoder Architecture

  • 우리는 또한 pϕ(yx)p_ϕ(y | x)를 모델링하기 위해 encoder-decoder architecture를 사용함.
  • 여기에서 xx는 bidirectional encoder로 인코딩되며 decoder는 autoregressively하게 yy를 예측함. (conditioned on the encoded xx and its left context)
  • 우리는 same indexing 그리고 activation notation을 사용함. Figure 2 (bottom)과 같이.

3.3 Method: Fine-tuning

  • fine-tuning framework 안에서, 우리는 pretrained parameters ϕ\phi를 초기화함. 우리는 다음과 같은 log-likelihood objective를 gradient updates를 통해 최적화함.
maxϕlogpϕ(yx)=iYidxlogpϕ(zih<i)max_ϕ log p_ϕ(y | x) = ∑_{i∈Y_{idx}} log p_ϕ(z_i | h_{<i})

4. Prefix-Tuning

  • 우리는 prefix-tuning을 conditional generation tasks에 대한 fine-tuning의 alternative로 활용함.

4.1 Intuition

Problem

  • prompting으로부터 영감을 얻어 우리는 LM을 어떠한 parameter의 변경없이도 원하는 답변을 도출하도록 유도하기 위해 적절한 context를 갖는 것이 중요하다고 믿음.
    • 예를 들어, 만약 우리가 LM이 Obama와 같은 특정 단어를 생성하는 것을 원한다고 할 때, 우리는 이것의 common collocations를 context로 prepend해줄 수 있음 (e.g., Barack) 그리고 LM은 뒤에 나올 desired words를 mush higher probability를 갖는 것으로 assign하는 것임.
  • 이러한 직관을 single word나 sentence를 생성하는 것에서 더 확장하여, 우리는 LM이 NLG 테스크를 해결하는 것을 유도할 수 있는 "context"를 찾기를 원함.

    단순히 앞에다가 특정 단어나 문장을 써서 유도하는게 아닌, 보다 추상화된 context를 찾는 것을 목표로 한다는 것

  • 직관적으로, context는 무엇을 xx로부터 추출할 지를 가이드해줌으로써 xx의 encoding에 영향을 줄 수 있음. 그리고 next token distribution을 steering함으로써 yy의 생성에도 영향을 줄 수 있음.
  • 그러나, 이것은 그러한 context가 존재하는지는 명확하지 않음. Natural language task instruction (e.g., summarize the following table in one sentence)는 expert annotator가 테스크를 해결하는 것을 가이드할 수는 있지만, pretraiend LM에서는 실패함.
  • 분할된 instruction에 대한 Data-driven optimization가 도움이 될 수 있으나 descrete optimization은 computationally challenging함.

    문제는, 어떤 컨텍스트를 주어야 LM이 주어진 테스크를 잘 해결할 수 있을지 모른다는 것! (명확히 정해진 것이 없다는 것)

Solution

  • 개별 토큰들을 최적화하는 대신에, 우리는 continuous word embeddings으로서의 insruction을 최적화함.
  • 이러한 효과는 모든 Transformer activation layers의 위쪽으로, 그리고 다음 토큰에 오른쪽으로 전파됨. (레이어 단위, 시퀀스 단위로 전파)
  • 이것은 실제 단어의 임베딩을 매칭시키는 것을 요구하는 개별 프롬프트를 사용하는 것보다 훨씬 expressive함. (continuous vector를 사용하기 때문에)
  • 한편, 이것은 모든 activation layer에 개입하는 것보다는 덜 expressive함. 이 방식은 long-range dependencies를 보존할 수 있으나 더 많은 학습가능한 파라미터들을 포함함.
  • Prefix-tuning은 long-range dependency를 보존하면서도 다른 장점들을 취하기 위해 prefix의 모든 레이어들을 최적화함.

    Meanwhile, this is less expressive than intervening all layers of the activations (§7.2), which avoids long-range dependencies and includes more tunable parameters. Prefix-tuning, therefore, optimizes all layers of the prefix.

4.2 Method

  • Prefix-tuning은 z=[PREFIX;x;y]z=[PREFIX; x; y]를 얻기 위해 prefix를 autoregressive LM에 prepend하거나, z=[PREFIX;x;PREFIX;y]z=[PREFIX; x; PREFIX'; y]를 얻기 위해 encoder-decoder 구조에 prefix를 prepend함.

  • 여기에서 PidxP_{idx}는 sequence of prefix indices를 의미하며, 우리는 Pidx|P_{idx}|를 length of the prefix라고 정의함.

  • 우리는 recurrence relation을 따름. (아래 수식에 해당) prefix가 free parameters라는 것만 다름.

    Free parameter: 학습 과정에서 자유롭게 조정될 수 있는 파라미터, 즉 학습 과정에서 업데이트 되는 파라미터를 의미함.

  • Prefix-tuning은 trainable matrix PθP_\theta를 초기화하며, 차원은 PidxP_{idx} X dim(hi)dim(h_i)로 정의되며, 얘는 prefix parametres의 크기임 (virtual token)

  • Training objective는 기존과 동일(vocab 중 가장 확률 높은 단어를 다음 단어로 출력 하도록 모델링) 하지만 trainable parameters의 집합에 변화가 있음.

    • lanaguage model parameter ϕ\phi는 고정되어 있고, prefix parameter θ\theta만 훈련됨.

      추가적인 훈련시에는 pre-trained LM에서 온 파라미터들은 고정하고 prefix token들에 대한 파라미터들만 추가 학습

  • 여기에서 hih_i는 trainable PθP_\theta의 function을 의미함. 여기에서 iPidxi ∈ P_{idx} 라면, hih_iPθP_\theta으로부터 복사됨

  • 그런데 그게 아니어도(iPidxi ∈ P_{idx}) 여전히 hih_iPθP_\theta에 의존함. 왜냐하면, prefix activation들은 항상 left context안에 있고, 이것들은 항상 이것의 right activation에 영향을 주기 때문.

    즉, 직접적으로 학습되는 건 prefix 들이지만, 그럼에도 이것들이 right context에 영향을 주기 때문에, 전체 시퀀스에 걸쳐 영향을 준다는 것을 강조함.

4.3 Parametrization of PθP_\theta

  • 경험적으로, 직접적으로 PθP_\theta를 업데이트하는 것은 unstable optimization나 slight drop in performance로 이어질 수 있음.

    저자들의 preliminary experiments에서 직접적으로 prefix를 최적화하는 것이 learning rate와 initialization에 매우 sensitive함을 발견했다고 함.

  • 그래서 우리는 아래 공식으로 매트릭스를 reparametrize함.
Pθ[i,:]=MLPθ(Pθ[i,:])P_θ[i, :] = MLP_θ(P'_θ[i, :])
  • 여기에서 smaller matrix (Pθ)(P^{'}_\theta)는 large feedforward neural network (MLPθ)(MLP_\theta)로 구성되어 있음.
  • 주목할점은 PθP_\theta(Pθ)(P^{'}_\theta)는 같은 row dimension (i.e the prefix length)를 가짐. 그러나 columns dimension은 서로 다름.
  • 한번 훈련을 마치고 나면 이러한 reparametrization parameters는 dropped되고 오직 prefix (Pθ)(P_\theta)만 저장됨.
    • 직접적으로 하는 경우는 Prefix 매트릭스를 랜덤하게 초기화한 후, 파인튜닝 과정에서 해당 매트릭스 최적화하는 방법,
    • 그러나 이 방법은 최적화가 불안정하여 이보다 더 작은 매트릭스를 선언한 후, MLP레이어를 통해 목표 차원까지 확장시키는 방법 선택

5. Experimental Setup

5.1 Datasets and Metrics

  • Table-to-text 테스크에 세 가지 벤치마크 활용 (뒤로 갈수록 더 복잡하고 사이즈가 커짐)

    1. E2E: only 1 domain (restaurant reviews), 약 50K example들, 8개의 서로다른 필드, multiple test references for one source table.
    2. WebNLG: 14 domains, 22K examples, x는 sequence of (subject, property, object) triples를 포함. categories 포함. test set은 unseen categories를 포함하여 extrapolation 능력 평가할 수 있음.
    3. DART: open-domain (from Wikipedia), WebNLG와 유사한 오픈 도메인 table-to-text 데이터세트.
  • Summarization 테스크에는 abstract summairzation을 포함하는 XSUM 데이터셋을 활용함.

    • News articles, 225K example, average length of the summaries 23.3
  • Metric 라인업

    1. BLEU, METEOR, TER, ROUGE-L, CIDEr
  • MoverScore, BERTScore, BLEURT

5.2 Methods

  • table-to-text generation을 위해 우리는 prefix-tuning과 three other method를 비교함.

    1. Fine-tuning (FINE-TUNE):
    2. Fine-tuning only the top 2 layer (FT-TOP2)
    3. Adapter-tuning (ADAPTER)
  • 우리는 또한 current state-of-the-art 결과를 보고함. (각 데이터세트에 대한)

    1. E2E: Shen et al. (2019)
    2. WebNLG: Kale (2020) fine-tunes T5-large
    3. DART: no official models trained on this dataset.
    4. Summarization: fine-tuning BART (Lewis et al., 2020)

5.3 Architectures and Hyperparameters

  • table-to-text를 위해, 우리는 GPTGPT-2MEDIUM_{MEDIUM}GPTGPT-2LARGE_{LARGE}를 사용함. Summarization을 위해 우리는 BARTLARGEBART_{LARGE}를 사용함.
  • AdamW optimizer / linear learning rate scheduler / number of epochs, batc size, learning rate, prefix length를 하이퍼파라미터로 두고 튜닝.
  • 10 epochs, batch size 5, learning rate 51055 · 10^{−5}, prefix length 10.
  • Decoding time에서 table-to-text에서 우리는 beam search (with a beam size of 5) 사용, summarization에서는 6 사용.

6. Main Results

6.1 Table-to-text Generation

  • 우리는 오직 0.1% task-specific parameters를 추가한 것 만으로도 prefix-tuning이 table-to-text generation테스크에서 다른 lightweight baselines (ADAPTER and FT-TOP2)를 능가함을 발견하였음.

  • 이러한 트랜드는 모든 세 가지 데이터세트에 대해서 동일하게 나타났음.

  • 동등한 비교를 위해 우리는 the number of parameter를 prefix-tuning과 adapter-tuning에 대해 동등하게 맞추었음 (0.1%로) - 모든 부분에서 우리가 더 잘함.

  • fine-tuning (100%)과 adapter (3.0%)과 우리 모델(0.1%)을 비교했을 때에도, prefix-tuning은 여전히 comparable하거나 better한 성능을 보이고 있었음.

    이것은 prefix-tuning이 adapter tuning보다 더 효과적이며 파라미터 수를 줄이면서도 생성 퀄리티는 유지함을 보여줌.

  • 추가적으로, DART 데이터 세트에서 좋은 성능을 보이는 것은 prefix-tuning이 diverse domain, 그리고 large pool of relation을 가진 table에 일반화된다는 것을 보여줌 (generalize)

  • 전체적으로, prefix-tuning은 effective하고 space-efficient한 방법임. (적어도 GPT-2에서, table-to-text generation 테스크에서)

  • 학습된 prefix는 unnatural format으로부터 contents를 올바르게 추출하고 textual descritpion을 생성하기 위해 GPT-2를 조종하는 데 충분한 만큼 expressive함.

  • Prefix-tuning은 또한 GPT-3과 같은 유사한 아키텍처를 가진 더 큰 모델로 확장하여 적용될 수 있는 잠재력을 가짐.

6.2 Summarization

  • 위 테이블에서 볼 수 있듯이 2% parameters를 업데이트 한 prefix-tuning은 fine-tuning보다 약간 낮은 성능을 가짐을 볼 수 있음. (36.05 vs. 37.25 in ROUGE-L)
  • 0.1% 파라미터만 업데이트 한 경우 prefix-tuning은 full fine-tuning을 underperform함. (35.05 vs. 37.25)
  • 두 테스크 간의 차이는 왜 prefix-tuning이 table-to-text에서 comparative advantage를 갖는지 설명함.
    1. XSUM 데이터세트는 4x 더 많은 example를 포함함 (세 가지 table-to-text 데이터세트의 평균보다)
    2. input articles은 17x longer than the linearized table input of table-to-text datasets on average.
    3. summarization은 table-to-text보다 더 복잡할 수 있음. 왜냐하면, 이것은 reading comprehension과 article에서 key contents를 식별하는 능력을 요구하기 때문임.

솔직히 그러면 table-to-text에서만 잘된다라고 볼 수 있는것 아닐까? 다른 테스크도 해봤을텐데 보고 안한 이유는 얘만 잘 되어서인거 아닐까? 자신이 있었으면 다른 잘 되는 테스크도 하나 더 어떻게든 보고했을텐데..

6.3 Low-data Setting

  • table-to-text와 summarization에서 얻은 결과를 토대로, 우리는 prefix-tuning이 number of training example이 작을 때 comparative advantage를 갖는다는 것을 관찰했음.

  • low-data settings를 구성하기 위해, 우리는 full dataset에서 subsample을 추출함. = {50, 100, 200, 500} 만큼.

  • 각 사이즈에 대해서 우리는 5개의 서로 다른 데이터세트를 구성하고 2개의 training random seed를 적용하여 실험함. (결국 하나의 low-data setting에서 10번의 실험 결과가 나온 것)

  • prefix-tuning이 fine-tuning을 low-data setting에서 outperform했다는 것을 보여줌. (2.9 BLEU on average)

  • 우리는 추가적으로 8개의 example에 대한 qualitative analysis를 제공함. 두 방법론 다 undergenerate (missing table contents) in low data regimes하는 경향이 있지만, prefix-tuning은 보다 faithful한 결과를 생성함.

    FT(100), Prefix(100) 비교해보면, FT에서는 틀린 말 생성함 (체리 피킹 아닐까..?)

6.4 Extrapolation

  • 우리는 unseen topics에 대한 extrapolation performance 능력을 보고자 함. (두 가지 테스크에 대해서)
  • extrapolation setting을 구성하기 위해, 우리는 기존 데이터세트를 분할하여 훈련셋과 테스트셋이 서로 다른 토픽을 다루도록 만들었음.
  • 두 개의 테스크 모두에서 prefix-tuning이 더 나은 extrapolation 능력이 fine-tuning보다 우수했음 (모든 메트릭에 대해)
  • 우리는 또한 adapter-tuning이 good extrapolation performance를 달성하는 것을 발견했음. (Table 1을 보면, prefix tuning (0.1%)보다 adapter tuning (3.0%)가 성능이 더 좋음)
  • 이것은 preserving LM 파라미터가 실제로 positive impact on extrapolation을 할 수 있다는 것을 보여줌.

7. Intrinsic Evaluation

  • 우리는 prefix-tuning의 서로 다른 variants들을 비교할 것임.

7.1 Prefix Length

  • longer prefix는 더 많은 trainable parameter를 의미함. 그러므로 더 많은 expressive power가 있다는 뜻이기도 함.

  • 위의 피규어는 prefix length가 일정 임계치까지 증가할 수록 성능이 오름을 보여줌. (200 for summairzation, 10 for table-to-text)

  • 임계치 이후부터는 slight performance drop occurs함.

  • 경험적으로 longer prefixes는 inference speed에는 무시할수 있을만한 작은 영향을 줌, 왜냐하면 entire prfix에 대한 attention computation이 GPU를 통해 병렬로 이루어지기 때문.

7.2 Full vs Embedding-only

  • 우리는 continuous embeddings of the "virtual tokens"의 최적화의 옵션에 대해서 논의한 바 있음.

    그 직접적으로 훈련하는 방법에 대해서 이야기하는 것 (MLP레이어 통해서 말고 prefix 토큰들의 임베딩을 직접 튜닝하는것)

  • 우리는 그 아이디어를 embedding-only ablation이라고 부를 것임. word embeddings은 free parameters이고, upper activation layers는 Transformer에 의해 계산됨.

  • Table 4 (top)에서는 이렇게 했을 때 상당한 성능의 drop이 있음을 보여주며, embedding layer를 튜닝하는 것이 충분히 expressive하지 않음을 보여줌.

  • Embedding-only ablation는 개별 prompt optimization의 성능의 upper bound임 왜냐하면 discrete prompt는 embedding layer를 정확하게 real word의 임베딩과 매칭되도록 두기 때문에.

    descrete prompt < embedding-only ablation < prefix-tuning 순서로 expressive하다고 표현.

    • embedding-only ablation은 임베딩 층만 건들기 때문에 덜 expressive 하지만, prefix는 모든 층에 걸쳐 최적화되기 때문에 더 expressive함.
    • 또한 prompt를 개별적으로 두는 건 어쨌든 모델이 실제로 알고 있는 단어들로 구성해야하며, 사전학습된 후의 고정된 vector표현으로 단어가 표현되기 때문에.

7.3 Prefixing vs Infixing

  • 우리는 또한 how the trainable activations' position in the sequence affects performance를 조사함. (시퀀스 내의 학습가능한 activations 위치가 성능에 주는 영향)
  • [x;INFIX;y][x; INFIX; y]와 디폴트 셋팅을 비교함 (이를 infix-tuning이라고 부름)
  • 이렇게 적용한 경우 prefix-tuning을 underperform하는 모습을 보여줌.
  • 우리는 이것이 prefix-tuning은 x, y 둘 다에 영향을 주지만 infix-tuning이 y에만 영향을 주기때문이라고 생각함.

7.4 Initialization

  • 우리는 prefix가 초기화되는 방식이 low-data setting에서 더 큰 영향을 준다는 것을 발견하였음.

  • Random 초기화는 low performance with high variance를 이끌어냈음.

  • prefix with activations of real word로 초기화하는 것은 상당한 성능 향상을 이끌어냈음.

  • 특히, task relevant words (e.g., "summarization" and "table-to-text")로 초기화하는 것이 더 나은 성능 향상으로 이어졌음.

  • 테스크와 상관 없는 단어더라도 random보다는 더 나은 성능을 보였음.

  • 우리가 prefix with activations of real words computed by the LM으로 초기화했기 때문에 이 initialization strategy는 사전학습된 LM을 가능한 한 많이 보존하는 것임.


8. Discussion

  • 이 섹션에서 우리는 몇가지 favorable properties of prefix-tuning에 대해 논의하고자 함.

8.1 Personalization

  • prefix-tuning은 독립적으로 학습해야 하는 task들이 많은 경우에 유리함.
  • 특히 사용자 개인정보보호에 유리하게 작용할 수 있음. -> 사용자 별로 데이터 분리하고 각 사용자에 맞는 개인화된 모델 만들어야 하는데 이것을 각각의 독립적인 task라고 간주
  • 수백만명의 사용자가 있는 경우, prefix-tuning이 확장성, 모듈성 유지 가능하므로 cross-contamination없이 시스템 유지 가능하며 prefix만 추가/삭제하면 되기 때문에 신규사용자 유입/삭제에 유연함.

8.2 Batching Across Users

  • 여러 사용자가 동시에 쿼리하는 경우에도 동일한 배치에 이 사용자들을 배치하여 처리하는 데 유용함.
  • 왜냐? prefix만 바꾸어주면 되기 때문에. 이미 어떤 식으로 prefix를 넣으면 이 테스크에 학습이 잘 될지를 만들어두었다면, 최종적으로 LM에다가 쿼리할때는 그냥 prefix만 바꾸어서 넣어주면 됨
  • 반면 shard Transformer 레이어 간의 personalized adapters가 있는 adapter-tuning에서는 이런 작업 못함.

8.3 Inductive Bias of Prefix-tuning

Inductive Bias

  • 모델이 새로운 데이터나 상황에 대해 일반화할 때 사용하는 가정, 모델이 학습 데이터 외의 상황에서 어떻게 행동할지를 결정하는 기본적인 성향
  • language model이 general purpose corpus에 대해서 사전훈련되기 때문에 LM 파라미터를 보존하는 것이 generalization에 도움을 줄 수 있음. (훈련 동안에는 보지 못한 domain에 대한)
  • 이러한 직관과 동일하게, 우리는 prefix-tuning과 adapter-tuning이 extrapolation에서 우수한 성능을 달성하는 것을 보긴 했지만, 여전히 이는 open question임.
  • prefix-tuning과 adapter-tuning 둘 다 pretrained parameters를 freeze하긴 하지만, 그들은 different sets of parameters를 튜닝함.
  • 그런데 adapter tuning이 어쨌든 LM 레이어 사이에 훈련 가능한 모듈을 추가해서 학습하는 반면, prefix tuning은 prefix만 앞단에 prepend해서 사용하기 때문에 LM을 그대로 유지하므로, prefix-tuning이 훨씬 더 LM을 가능한 한 그대로 유지하는 방법이라고 주장.

    즉, prefix-tuning는 사전 학습된 LM의 파라미터를 보존함으로써, LM이 획득한 지식에 기반한 inductive bias을 보존하면서도 효율적으로 특정 작업에 적응할 수 있게 해주며, 이는 더 나은 일반화 능력으로 이어진다!


9. Conclusion

  • 우리는 prefix-tuning을 제안함. 이는 fine-tuning의 lightweight alternative이며, 여기에서 trainable continuous prefix가 사용됨 (prepend되어서)
  • 우리는 1000x fewer parameter than fine-tuning으로도 prefix-tuning이 comparable performance를 full data setting에서 유지할 수 있음을 발견하였음.
  • 뿐만 아니라 low-data seting, extrapolation settings에서도 prefix tuning이 fine-tuning을 outperform한다는 것을 발견하였음.
profile
SKKU DSAIL 석박통합과정 n학기 / 정신건강과 인공지능의 융합을 연구합니다.

0개의 댓글