Search

Zero-shot Approach to Overcome Perturbation Sensitivity of Prompts

Category
PaperReview
Venue
ACL 2023
Backbone
BERT-BASE
BERT-LARGE
Text
- ZERO-SHOT 세팅에서 좋은 PROPT를 찾기 위한 연구 (LM-BFF 계열) - SENTENCE(INPUT)내 KEYWORD에 민감하게 반응하는 PROMPT가 ROBUST한 PROMPT이다.
PPT
→ Zero-shot setting에서 Binary claffication을 수행할 때, 모델의 성능을 높히기 위해서 좋은 manual prompt를 찾는 방법에 대해서 연구한 논문
→ 어떻게 하면 MANUAL PROMPT를 더욱더 견고하게 만들까 고민한 논문이라고 보면 될듯

Introduction

Prompt내에 있는 단어나, Prompt가 있는 위치에 따라서 모델 성능 편차가 심하다.
특히 instruction에 대한 민감도가 떨어지기 때문에 MANUAL PROMPT는 ZERO-SHOT SETTING에서 POOR PERFORMANCE를 보일 때가 많음.
위에서 언급한 MANUAL PROMPT의 문제를 해결하기 위해서 다음의 연구가 진행되어왔음
→ FEW SHOT SETTING을 차용해서 PROMPT를 자동으로 생성
ZERO-SHOT SETTING에서 FEW-SHOT SETTING을 차용해서 PROMPT를 생성할 수 없음
(ZERO-SHOT에서는 PROMPT랑 ANSWER까지 한번에 생성하도록 ZERO-SHOT를 할 수 없음 (여러가지의 demonstration에 대한 접근 권한이 없다..) → 사용자가 PROMPT를 주는게 ZERO-SHOT이니깐)
자동으로 생성하는 PROMPT가 HUMAN INTENTION을 그대로 따를지는 알 수 없음
(인간이 의도를 가지고 넣어준 PROMPT도 못 따르는 마당에)
→ (아마도 MANUAL) LM를 FT해서 PROMPT를 평가
조금 더 USABILITY가 좋은 MANUAL PROMPT를 만들기 위해서
→ BASE PROMPT가 있다는 가정하에
→ AUGMENTATION을 통해 CANDIDATE PROMPT를 만든다. (AUTOMATIC 맞음)
(KEYWORD에 SENSITIVE하게 반응하는 PROMPT를 만들자 (RANKING MODEL로 평가)
… 다음 문장이 긍정인지 부정인지 판별해줘 : (이 PROMPT는 다음에 오는 문장에 포함되는 부정.긍정 키워드를 잘 잡으면 ROBUST한 PROMPT)
)
→ ROBUST한 PROMPT를 가져와서 ZERO-SHOT TEST, DIFFERENT DOMAIN에서 좋은 성능

PROMPT BASED LEARNING

→ FEW-SHOT LEARNINGING인데 DEMONSTRATION보다는 PROMPT의 설계에 따라서 performance차이가 많이 난다고 보는 연구 분야 같음
→ 좋은 Prompt를 어떻게 찾을까에 대한 연구를 하는 분야.
PROMPT라고 하면 X,Y를 NATURAL LANGAUAGE로 변형한 모든 형태를 일컫는 것으로 보이며, 구체적으로는 다음의 것들을 모두 포함하는것으로 보임
Instruction
Template
Keyword (The movie was terrrible/horrible)

METHODOLOGY

→ Zero-shot Performance가 좋아지도록 Base Prompt를 (1) Augmentation하고 (2) Selection해내는 과정이 이 논문의 주요 방법론
→ Input Mapping은 Label을 Model의 Vocab으로 Mapping 시켜주는 Function
#### (1) Augmentation
1.
subordinate conjunctions (접속사): 접속사를 추가해줘서 Input과 Prompt 사이의 dependency를 modeling. (모델이 자연스럽게 언어를 해석하면서 label을 예측하도록)
2.
positioning: prompt 순서 변경 (사실상 vanilla)
3.
paraphrasing: input + masked prompt + label에 MLM을 통해 비슷한 prompt를 여러개 생성. (label 고정. mask한 token과 예측한 token들 pos 같도록 제약 추가)
#### (2) Ranking & Selection
- Intuition: Sentence(Input)내 Keyword가 바뀌면 Label Prediction도 영향을 받아야 한다.
(ex) "battery life was great" with "terrible” → label flip
1.
Mapping Token을 포함한 Input Sentence i를 가져온다.
2.
i에 Mapping Token B가 포함되어 있다고 할 때, 아래를 총 |Z|회 반복
a.
B를 유의어로 대체
b.
B를 Label Token + 유의어로 대체
3.
모든 i번째 문장에 prompt를 붙혀서 score(p)를 계산
#### 구한 Best Score Prompt 기반으로 Prediction
(→ Input Mapping에 있는 단어들로만 softmax 계산하면 문제가 쉬워지는데.. 코드가 없음)
→ Top-Rank Score Prompt 기반으로 Zero-shot 태워서 Aggergation

Experimental Results

Base-prompt 1 : "<sentence>. It was [MASK]”
Base-prompt 2: "<sentence>. The sentence was [MASK]”
#### Results
접속사가 효과가 좋음 (Top-Rank) : 접속사를 추가하는것만으로도 Casual Modeling하는데 도움이 되는 것으로 보임
다른 방법들과 다르게 Model Scale Law 적용가능
ZS-SC는 Prompt 생성한 모델이랑 분류하는 모델이랑 같음
K가 증가한다고 해서 항상 성능이 증가하는 것은 아니지만, 아래 (BERT-LARGE)Ablation에서 보이는것처럼 K가 증가하면 top-rank가 독립적으로 만들 수도 있는 실수들을 어느정도 보완해줄 수 있음