소프트 프롬프트를 pre training 단계에 적용하여, 사전학습과 함께 프롬프트를 튜닝하는 방법론에 대한 연구 입니다.
읽은 날짜 2023.05.22
카테고리 #자연어처리논문리뷰, #프롬프트
PPT: Pre-trained Prompt Tuning for Few-shot Learning
- Authors: Yuxian Gu, Xu Han, Zhiyuan Liu, Minlie Huang
- DOI: https://aclanthology.org/2022.acl-long.576/
- Keywords:
- Issue Date: May 2022
- Publisher: ACL 2022
ABSTRACT
(배경) PLM(Pre-trained language model)의 프롬프트는 pre-training task와 다양한 다운스트림 태스크 사이의 gap을 해결하며 주목할 만한 성능을 보여왔다.
(선행연구인) Prompt tuning은 PLM을 freeze해두고 soft prompts만을 튜닝하여, Large-scale PLM을 다운스트림 태스크에 적용하는 데 효율적이고 효과적인 솔루션을 제공한다.
(문제점) 파일럿 실험에서 Prompt tuning은 다운스트림 데이터가 충분한 경우 기존 풀 모델 튜닝과 비슷한 성능을 보이지만, Few shot learning 셋팅에서는 Prompt tuning 적용에 방해가 될 수 있어서, 성능이 훨씬 떨어지는 것으로 나타났다. 아마도 이런 성능저하는 soft prompt를 initializing 하는 방법 때문일 것이다.
(목표) 이 연구에서는, soft prompt를 pre-tranining stage에 추가하여 prompt를 pre-train하는 것을 제안한다. Pre-trained Prompt Tuning 프레임워크 ⇒ "PPT"라고 부른다.
(방법) PPT의 일반화를 위해 유사한 분류 작업을 통합 작업 양식으로 공식화하고 이 통합 작업에 대한 소프트 프롬프트를 사전 학습한다. 광범위한 실험에 따르면 다운스트림 작업에 대해 사전 학습된 프롬프트를 튜닝하면 전체 데이터 및 소수 샷 설정 모두에서 전체 모델 미세 조정에 도달하거나 그 이상의 성능을 발휘할 수 있다.
이러한 접근 방식은 실제로 대규모 PLM을 사용하는 데 효과적이고 효율적이다.
1. 등장 배경
Pre-training 패러다임
- Masked Language Modeling
- Task-oriented Fine-tuning
- Prompt-oriented Fine-tuning
- Prompt Tuning
다운스트림 태스크에서, Full-model Tuning 단점
- Downstream Task 별 많은 labeled data 필요
- 태스크 별로 PLM parameter + 추가 parameter 필요
다운스트림 태스크에서, Prompt의 사용
LAMA: Cloze-style Prompt
- PLM이 [MASK] token을 맞추게 하는 테스트
- PLM은 pre-trained 될 때, 대량의 unlabeled corpus를 통해 이미 많은 지식을 담고 있으므로, 인풋을 Close-style로 변형하여 추가적인 Fine-tuning없이 문제를 풀 수 있다.
GPT-3:
- in-context learning: 모델이 downstream task정보를 pre-train 과정에서 학습하여, fine-tuning없이 다운스트림 태스크 수행 가능 (LAMA와 비슷한 인사이트)
- 원래 인풋을 language modeling 형태로 변형해도 PLM이 추가적인 Fine-tuning 없이 문제를 풀 수 있다.
(참고)
Cloze-style question: 빈칸을 채우는 문제
Cloze test란: 특정 항목, 단어 또는 기호가 제거된 언어의 일부(Cloze-text)의 빈 칸을 채우는 테스트
언어 유창성 테스트, 또는 지식 테스트의 목적이 있다.
https://en.wikipedia.org/wiki/Cloze_test
2. 목표
Few-shot learning에서 prompt tuning을 통해 PLM을 효율적, 효과적으로 사용할 수 있게 하는 것이 목표이다.
3. 이론적 기반
Hard Prompt & Soft Prompt
(1) Hard Prompt: 사람이 해석할 수 있는 형태의 prompt 사용
- PET (Pattern Exploiting Training):
- Pre-training Task와 동일한 형태로 Task와 Label을 변환하는 방법(Cloze-style)을 사용하여 Pre-trained LM이 수행할 수 있는 형태로 문제를 재정의.
- Labeled Training Set T에 PLM Ensemble을 통해 Unlabeled Dataset을 soft labeling하고, 이렇게 생성된 soft labeled dataset으로 classifier를 학습한다.
- 예) Binary Sentiment Classification
- Verbalizer역할: 0 또는 1과 같은 숫자로 표현된 outcome을 vocabulary에 속하는 단어로 변환. (예: great, bad)
- 단점: -Soft-labeled dataset을 만들기 위해 PLM을 pattern(템플릿) 수 만큼 Fine Tuning해야함. -Hard prompt를 만들기 위해 도메인 지식이 필요할 때가 있다.
- LM-BFF:
- 장점: Label word 와 Template을 자동으로 생성한다.
- Label Word 자동생성: Template은 고정한 상태로 각 Class (Positive/Negative) 별 Top-K Vocabulary 집합 구성 후, Label Word 조합(예: great/terrible, good/terrible, good/bad, 등).
- 이 후, Zero-shot inference의 accuracy 기준으로 top-n개의 label word 조합 선정
- Template 자동생성: Label word를 고정한 후, T5의 Pre-training objective인 span corruption이용
- Hard prompt의 단점:
- prompt 제작에 시간, 노력 필요.
- 도메인 지식 또는 언어학적 지식 필요.
- 사소한 차이로도 성능차이가 큼.
(2) Soft Prompt: 사람이 해석할 수 없는 임베딩 형태의 prompt 사용
- 대체로 Hard prompt보다 성능이 좋다고 함.
- Prefix-Tuning:
- 기존 pre-trained LM의 파라미터는 freeze한 상태
- pre-trained된 Transformer의 encoder/decoder layer별로 learnable soft prompt 를 prefix로 추가
- 장점: Full-model tuning보다 parameter 업데이트 양이 적다.
- P-Tuning (2021, “GPT Understands, Too”):
- 기존 pre-trained LM의 파라미터는 freeze한 상태로, soft prompt만 업데이트
- hard prompt에 해당하는 pseudo prompts를 생성한 후, Prompt Encoder라는 구조에 통과 시켜서 soft prompt를 얻는다.
- Inference시에는 soft prompt token들만 사용.
- Soft prompt 와 hard prompt (Anker token, 예: “?”) 를 함께 사용하는 구조. (이렇게 했더니 성능이 더 좋았음.) 예: [S1][Prompt Tokens][P2] ? [Prompt Tokens][MASK]
- 기존의 prompt search는 Binary-space 에서 행해졌음.
- P-Tuning은 continuous한 공간에서 prompt tuning을 수행.
- Prompt Tuning
- 기존 pre-trained LM의 파라미터는 freeze한 상태로, input text의 soft prompt만 업데이트 (Prefix-Tuning, P-Tuning에 비해 단순한 구조)
- Classification Task는 Pattern-Verbalizer Pair (f, v)로 표현 가능 ⇒ PVP 라고 하면 Classification Task임.
- 장점: intermediate layer나 hard prompt 없이 soft prompt만 사용해서 end-to-end 학습가능
- 한계점: 다운스트림 태스크에서 데이터가 적을 때 (Few-shot setting), 성능이 낮다.
4. 모델/데이터 및 실험
파일럿 실험 3가지
(1) Hybrid Prompt Tuning
- Soft prompt만 사용한 경우, Soft prompt와 hard prompt함께 사용한 경우 성능 측정
(2) Verbalizer Selection
- Verbalizer의 변화에 따른 성능 측정 - 동일한 hard prompt 에서 verbalizer만 바꿔서 측정
(3) Real Word Initialization
- 다섯가지 Soft prompt initialization 방법에 대하여 성능 측정
- 실험 결과는 Random initialization이 real word보다 성능이 좋거나, 별 차이없음
⇒ 파일럿 실험 인사이트: Few shot setting에서 위의 (1), (2), (3) 모두 prompt tuning 성능 개선 효과를 가져오는 key factors이다. (하지만 여전히 full model 보다 성능 낮았음.)
Method
-Few shot learning에서 prompt tuning 성능을 높이기 위해 soft prompt를 pre-training 성능 높이기 위해 soft prompt를 pre-train 하는 방법 제안.
-Classification Task(PVP)를 3가지 다운스트림 태스크 그룹으로 묶은 후, 각 그룹을 이용해 soft prompt를 pre-train함. 이 후, 각 다운스트림 태스크의 soft prompt initialization에 사용
3가지 다운스트림 태스크 그룹
(i) Sentence-Pair
- NSP ⇒ input x = (s_1, s_2) 일 때, labels를 {0, 1, 2}로 확장 ⇒ 0: Irrelevant, 1: Similar, 2: Coherent ⇒ [no, maybe, yes]
(ii) Multiple-Choice
- 하나의 질문에 정답후보가 여러개가 있고, 실제 정답은 하나.
- Next Sentence Selection ⇒ Query sentence S_q 가 있을 때, input x = (s_q, s_1, … , s_6) labels y = {1,2,3,4,5,6}
(iii) Single-Sentence Classification
- 5-class sentiment classification ⇒ input x=(s) 일 때, labels y = {1,2,3,4,5} ⇒ [terrible, bad, maybe, good, great]
- 한계: RoBERTa_base를 Yelp-5 dataset으로 pretraining했으므로, 다른 데이터셋에 동작안함.
-위의 한계를 해결하기 위하여(?) 모든 태스크를 다 Multiple-choice classification으로 통일함.
⇒ Unified PPT
메인 실험
(1) 실험 셋팅
- 모델: 영어(T5-XXL), 중국어(CPM-2, mT5)
- pre-training 데이터셋: 영어(OpenWebText, 10GB), 중국어(WuDaoCorpora, 10GB)
- 사용한 soft prompt tokens : 100 tokens
(2) 실험 내용
- Few-shot setting (샘플 32개)에서 각 방법론 별로 성능 비교
- Full model Tuning (=FT): 트레이닝 데이터로 파라미터 전체 11B 업데이트
- Vanilla PT: Soft prompt 정규분포로 초기화
- LM Adaption: LMdmf 10K steps 추가 pre-train
- Hybrid PPT: (파일럿 실험 참고)Pre-trained soft prompt, hard prompt 함께 사용
- Unified PPT: (위의 Method참고)
(3) 실험 결과
- Full model Tuning (=FT): 모델 크기 커짐에 따라 성능 향상
- Prompt Tuning (=PT)와 PPT 비교:
- 대부분 PPT가 Vanilla PT, LM Adaptiation 보다 성능이 좋다. Hybrid PT보다는 낮았다.
- Hybrid PPT는 모든 경우 성능이 우수하다.
- PPT와 Full model Tuning(=FT) 비교
- 대부분 PPT가 FT 보다 성능이 좋고, variance 가 낮음.
(4) 추가 실험
- Sample 수에 따른 성능 비교
- 32개, 64개, 128개, 256개로 training sample 개수 바꿔가며 성능 측정
- 샘플 수가 적을 때는 FT>PPT>Vanilla PT 의 성능을 보이고, 샘플 수가 커질 수록 세 방법론이 수렴한다.
- ⇒ Training samples 적을 수록 prompt를 pre-training하는 방법론에 이득이 있다.
- Vanilla PT는 학습 시간이 길어서, 수렴 속도가 느리다.
나의 의견
논문을 선택한 이유
(1) 유명한 논문이기에 읽어보게 되었다.
읽고 난 후 의견
- 최근에 새로운 내용이 마구 나타나서 따라가기 어려웠는데, 이 번 논문을 자세히 정리하면서 prompt tuning 에 대해 다시 정리할 수 있었다.
- prompt tuning으로 오면서 예전의 큰 모델을, 큰 기업이나 연구실이 아니더라도 영세한 곳이나 학생들도 효율적으로 활용할 수 있게 되었다는 점이 반갑다. Full model fine tuning이 어쨌든 가장 성능이 좋겠지만, 충분한 학습 데이터가 없다면 prompt tuning으로 기존에 학습된 모델을 활용할 수 있어서 매우 효율적이라고 생각한다.
- 개인적으로는 fine tuning에 비해 prompt tuning은 좀 더 논리적이라는 생각이 든다. fine tuning은 알 수 없는 블랙박스 모델이 어떤 수치가 적당할 지 고심하며 숫자를 골라야 했다면, 그나마 prompt tuning은 (물론 알수없는 부분이 더 많지만) 그래도 이 모델이 “이런 스타일의 언어로 소통했을 때 잘 이해하구나” 의 느낌이다.