- 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을 의미.
- Task input은 "name: Starbucks | type: coffee shop"으로 표현
- Output은 textual description임 ("Starbucks serves coffee.")
- Prefix-tuning은 continuous task-specific vectors를 input에 prepend함. 이를 우리는 prefix라고 부름. 이는 Figure 1의 red block에 해당.
- 그 다음 토큰에서, Transformer는 prefix에 이것이 virtual token인 것처럼 attend함.
모듈러 프로그래밍 (Modular Programming) :
프로그램 내부를 기능별 단위로 분할하여 독립성을 갖도록 함으로써 다른 모듈에 영향을 받는 일이 없이 일부 모듈의 개량이나 재번역이 가능하도록 하는 프로그래밍 기법
위에서 언급한 Adapter training의 관점에서 보면, 어쨌든 insert된 additional layer를 학습시킨 모델이 task/user별로 나와야 하니까 그런 듯, 여기서는 inference 단계에서 앞쪽의 prefix만 교체해주면 가능하다! 이런 의미로 보임.
Experiments
- Storage
- Performance with Full dataset
- Performance with Low dataset
- Generalizability
✔︎ 이 논문에서 우리는 GPT-2를 사용한 table-to-text와 BART를 사용한 summarization에 초점을 맞추었지만 prefix-tuning은 other generation나 pre-trained model에 다 적용될 수 있음.
✔︎ 이러한 연구들들은 LM parameters의 약 3.6%를 훈련하지만 우리의 방법론은 오직 0.1%만 사용하면서 30x reduction in task-specific parameters를 얻을 수 있으며 동시에 comparable performance도 유지함.
✔︎ 반면에, prefix-tuning은 모든 task-specific prefix를 최적화하는데, 이는 all instance of that task에 모두 적용 가능함. 결과적으로, sentence reconstruction에 한정되어 사용되던 이전 연구와는 달리 prefix-tuning은 NLG 테스크에 적용될 수 있음.
✔︎ 그러나, table-to-text그리고 summairzation과 같은 특정 테스크의 수요에 맞게 이러한 controllable generation techniques를 fine-grained control을 강제하기 위해 직접적으로 적용한 방식은 없었음.
(1) Table-to-text: 입력은 linearized data table, 출력은 textual description
(2) Summarization: 입력은 article, 출력은 short summary임.
우리가 다음과 같이 Transformer 기반의 autoregressive language model을 가졌다고 생각해보자. (여기서 는 parameter를 의미)
Figure 2 윗 부분에 표현되어 있듯이, 는 두 개의 concatenate를 의미함.
는 sequence of indices를 의미하며, 얘는 x에 따라 달라짐. 는 y에 대한 sequence of indices를 의미함.
각 time step 에 대한 activation은 이며, 여기에서 는 해당 time step에서의 모든 activation layer에 대한 concatenation을 의미함.
그리고 는 -th Transformer layer at time step 를 의미함.
Autoregressive Transformer 모델은 를 function of 와 과거의 이것의 left context activations를 활용해 다음과 같이 계산함.
의 last layer는 next token의 distribution을 결정하는 데 사용됨.
여기서 는 h_i^{(n)}를 vocabulary에 대한 logits으로 맵핑하는 pretrained matrix임.
단순히 앞에다가 특정 단어나 문장을 써서 유도하는게 아닌, 보다 추상화된 context를 찾는 것을 목표로 한다는 것
문제는, 어떤 컨텍스트를 주어야 LM이 주어진 테스크를 잘 해결할 수 있을지 모른다는 것! (명확히 정해진 것이 없다는 것)
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.
Prefix-tuning은 를 얻기 위해 prefix를 autoregressive LM에 prepend하거나, 를 얻기 위해 encoder-decoder 구조에 prefix를 prepend함.
여기에서 는 sequence of prefix indices를 의미하며, 우리는 를 length of the prefix라고 정의함.
우리는 recurrence relation을 따름. (아래 수식에 해당) prefix가 free parameters라는 것만 다름.
Free parameter: 학습 과정에서 자유롭게 조정될 수 있는 파라미터, 즉 학습 과정에서 업데이트 되는 파라미터를 의미함.
Prefix-tuning은 trainable matrix 를 초기화하며, 차원은 X 로 정의되며, 얘는 prefix parametres의 크기임 (virtual token)
Training objective는 기존과 동일(vocab 중 가장 확률 높은 단어를 다음 단어로 출력 하도록 모델링) 하지만 trainable parameters의 집합에 변화가 있음.
추가적인 훈련시에는 pre-trained LM에서 온 파라미터들은 고정하고 prefix token들에 대한 파라미터들만 추가 학습
여기에서 는 trainable 의 function을 의미함. 여기에서 라면, 는 으로부터 복사됨
그런데 그게 아니어도() 여전히 는 에 의존함. 왜냐하면, prefix activation들은 항상 left context안에 있고, 이것들은 항상 이것의 right activation에 영향을 주기 때문.
즉, 직접적으로 학습되는 건 prefix 들이지만, 그럼에도 이것들이 right context에 영향을 주기 때문에, 전체 시퀀스에 걸쳐 영향을 준다는 것을 강조함.
저자들의 preliminary experiments에서 직접적으로 prefix를 최적화하는 것이 learning rate와 initialization에 매우 sensitive함을 발견했다고 함.
- 직접적으로 하는 경우는 Prefix 매트릭스를 랜덤하게 초기화한 후, 파인튜닝 과정에서 해당 매트릭스 최적화하는 방법,
- 그러나 이 방법은 최적화가 불안정하여 이보다 더 작은 매트릭스를 선언한 후, MLP레이어를 통해 목표 차원까지 확장시키는 방법 선택
Table-to-text 테스크에 세 가지 벤치마크 활용 (뒤로 갈수록 더 복잡하고 사이즈가 커짐)
Summarization 테스크에는 abstract summairzation을 포함하는 XSUM 데이터셋을 활용함.
Metric 라인업
- BLEU, METEOR, TER, ROUGE-L, CIDEr
MoverScore, BERTScore, BLEURT
table-to-text generation을 위해 우리는 prefix-tuning과 three other method를 비교함.
우리는 또한 current state-of-the-art 결과를 보고함. (각 데이터세트에 대한)
우리는 오직 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과 같은 유사한 아키텍처를 가진 더 큰 모델로 확장하여 적용될 수 있는 잠재력을 가짐.
솔직히 그러면 table-to-text에서만 잘된다라고 볼 수 있는것 아닐까? 다른 테스크도 해봤을텐데 보고 안한 이유는 얘만 잘 되어서인거 아닐까? 자신이 있었으면 다른 잘 되는 테스크도 하나 더 어떻게든 보고했을텐데..
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에서는 틀린 말 생성함 (체리 피킹 아닐까..?)
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를 통해 병렬로 이루어지기 때문.
우리는 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표현으로 단어가 표현되기 때문에.
우리는 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을 가능한 한 많이 보존하는 것임.
Inductive Bias
- 모델이 새로운 데이터나 상황에 대해 일반화할 때 사용하는 가정, 모델이 학습 데이터 외의 상황에서 어떻게 행동할지를 결정하는 기본적인 성향
즉, prefix-tuning는 사전 학습된 LM의 파라미터를 보존함으로써, LM이 획득한 지식에 기반한 inductive bias을 보존하면서도 효율적으로 특정 작업에 적응할 수 있게 해주며, 이는 더 나은 일반화 능력으로 이어진다!