본문 바로가기

AI/NLP

[논문리뷰] Prefix-tuning: Optimizing Continuous Prompts for Generation // Prefix-tuning 이론

https://arxiv.org/abs/2101.00190

 

Prefix-Tuning: Optimizing Continuous Prompts for Generation

Fine-tuning is the de facto way to leverage large pretrained language models to perform downstream tasks. However, it modifies all the language model parameters and therefore necessitates storing a full copy for each task. In this paper, we propose prefix-

arxiv.org

Prefix-Tuning: Optimizing Continuous Prompts for Generation

Abstract

- LLM을 학습하려면 LLM의 full copy를 저장해야 한다.

- 백본 모델은 freeze하고 작은 continuous task-specific vector(called prefix)를 학습하는 full-tuning을 대체하는 "Prefix-tuning"을 제안한다.

- 0.1%의 파라미터만을 학습하고

- 데이터가 많은 세팅에서는 FT에 비견되고

- 데이터가 적은 세팅에서는 FT보다 우월하며

- 학습시 보지 않은 샘플에 대한 일반화 성능도 더 높다.

Introduction

- Fine-tuning task에 따라 서로 다른 weight 가짐

- Prefix-tuning backbone 모델 고정, Prefix 부분만 task에 따라 바꿔서 활용

 

Method

- GPT 계열 casual language 모델 형태 decoder 세팅

- BART 계열 세팅 encoder decoder 모두 활용 세팅

- 중간 부분 기존 transformer fine tuning과 동일. (어떤 source가 오면 target 오도록 모델링, token index 지정)

- Prefix는 앞에 실제 토큰이 들어가는 것이 아니고 soft prompt가 들어가는 영역 만들어 학습에 사용

- BART encoder 쪽에 x를 놓고 decoder에 y를 놓음. 똑같이 앞부분에 Prefix 영역을 둠

- objective : language 모델 objective x가 주어졌을 때 y가 관측될 확률을 최대화하는 파이 찾기. 파라미터는 prefix의 파라미터

- z는 어떤 시점의 출력 결과. i번째 이전의 hidden state만을 참고해서 출력 

- h_i는 Prefix 토큰 인덱스에 속하는 영역이면, prefix 파라미터(벡터) 사용. 아닌 경우, LM의 파라미터 이전의 hidden state를 참고하여 다음 hidden state 만듬.

 

Result

- FINE-TUNE과 PREFIX 비교. 많은 부분에서 거의 차이가 없거나 더 좋은 경우도 있음. 파라미터 수 매우 적음에도 성능 굿.

- 데이터 샘플에 따른 비교. Prefix가 데이터 더 적을 때 더 잘함

- 테이블 주어졌을 때, 자연어를 만드는 task

- Prefix 의 경우 Chinese에 대한 언급 있음. 

- rating이 average, not family friendly Prefix에 반영 o. FT에는 반영 x

- rouge score PT 500개 이하에서 항상 좋음

- summarization은 FT가 좀 더 좋음

- Extrapolation 배우지 않은 영역. news학습에서 스포츠 요약 PT 성능 더 좋음. 같은 뉴스는 성능 비슷

- 일반화 성능 더 좋음 

- Prefix 토근 지정할 수 있음. 계속 성능이 좋아지는 것은 아니고 어느정도 값에서 수렴함 

- Infix Prefix를 중간에 둠. Prefix보다 성능이 좋지 않음

- GPT casual language 모델이기 때문에 중간에 Infix가 있으면(x-infix-y 형태) x가 attention의 영향을 받지 못함(이후 부분만 영향을 받기 때문)  

- 관련성 있는 토큰으로 initializing 했을 때 성능 좋음 

- Prefix 적정 파라미터 개수 실험

Conclusion

Prefix tuning은 1000배 더 적은 파라미터를 학습하며 Full fine-tuning에 비견되는 성능을 보이며, 데이터가 적은 세팅에서는 더 우월함을 보였다.