- 링크:
https://arxiv.org/pdf/2101.00190
Background
PLM
- 큰 LM을 Pretraining하고 Full-FT은 높은 성능을 내지만 downstream task별로 많은 컴퓨팅 자원과메모리가 필요함
Adapter
- Parameter를 제거하는 연구도 있으나 Adapter의 경우 3.6%의 추가적인 파라미터 튜닝을 통해 Full-FT과 비슷한 성능을 냄
In-Context learning
- GPT-3의 경우 아무런 Task-specific Tuning 없이 Natural language task instruction과 Few-shot example을 입력해 사용하기도 함
- 하지만 수작업으로 프롬프트를 작성해야하며, context의 크기 한계가 있음
→ NLG task에서 Full-FT 대신 가벼운 prefix tuning 제안
Methods
Prefix tuning
- Language model의 parameter는 frozen하고 작은 continuous task specific vector (prefix)를 튜닝하자
- Prefix의 파라미터를 업데이트할 때 바로 업데이트 하지않고 large FFN에 통과시킨 후 사용함
Experiment & Analysis
- GPT-2는 table-to-text generation, BART는 summarization task
- BPE token: 512, epoch: 1, batch size: 5, learning rate:5*10^-5, prefix length: 10
- Table 1
- Summarization이 전반적으로 낮은 성능 → 상대적으로 더 어려운 task임
- Figure 1
- 적은 데이터로 실험했을때 Full-FT보다 나은 성능
- Table 3
- Unseen taks에서 더 높은 성능
- Table 4
- Prefix Length에 따라 속도에는 거의 차이 없음
- 길이 10 정도가 최적
- 너무 길면 성능이 약간 감소함
- Infixing 보다 Prefixing이 더 높은 성능을 보임 → 저자는 Infixing은 뒷 문장에만 영향을 주는 반면 prefixing은 문장 전체에 영향을 줄 수 있기 때문이라 분석함
- Discrete prompting < Embedding-only ablation < Prefix-tuning의 순서로 성능이 개선됌
- Prefix-tuning이라는 것은 ‘virtual token’을 입력 앞에 continuous embeddings의 형태로 추가하고, 이 벡터를 학습하는 것
- Embedding-only는 입력으로 들어가는 단어 벡터만 학습하고 이후는 frozen하는 것 → Full prefix tuning에 비해 성능이 떨어짐
- Embedding-only는 임베딩 벡터를 자유롭게 학습하고 최적화할 수 있음
- Discrete prompting은 토큰이 아닌 사람이 사용하는 실제 어휘 사전에 있는 인덱스만 사용하는거라 더 한정된 공간에서만 최적화 → embedding-only 방식이 discrete prompting이 도달할 수 있는 upper-bound 성능을 이미 능가함
- Initialization
- Random initialization은 낮은 성능을 보임
- 초기화를 activations of real words (각 레이어에서 단어를 입력하면 출력되는 값) 로 하면 성능이 크게 향상됌
- 이는 pretrained LM을 보존하는 것과 같은 의미임
Result
- 0.1%의 파라미터 튜닝으로 full fintunig과 비슷한 성능 달성
- Adapter와 달리 사용자 별로 독립적인 학습 가능
- Extrapolation seting (주어진 데이터의 범위를 넘어가는)에서 높은 성능
Limitation
- Full-fintuning보다는 낮은 성능