optimal 한 prompt를 찾는 태스크에 강화학습을 적용한 연구 입니다.
읽은 날짜 2023.05.30
카테고리 #자연어처리논문리뷰, #프롬프트, #강화학습
RLPrompt: Optimizing Discrete Text Prompts with Reinforcement Learning
- Authors: Mingkai Deng, Jianyu Wang, Cheng-Ping Hsieh, Yihan Wang, Han Guo, Tianmin Shu, Meng Song, Eric Xing, Zhiting Hu
- DOI: https://aclanthology.org/2022.emnlp-main.222/
- Keywords:
- Issue Date: December 2022
- Publisher: EMNLP 2022
1. 등장 배경
Fine-tuning vs Prompt tuning (Few-shot, Zero-shot)
Task의 종류에 따라, Fine-tuning이 나은 상황도 있고, Prompt tuning이 나은 상황이 있다.
전반적으로는 Fine-tuning이 성능 개선에 낫지만, text generation 관련 Task에서는 prompt tuning이 강세.
Prompt tuning 장점: Task performance를 위해 Language Model의 parameter의 업데이트를 하지 않고, LM은 freeze한 채로 성능을 개선할 수 있다.
Prompt tuning 의 Challenge: 적절한 prompt (optimal prompt)를 찾기 힘들다.
Prompt tuning 종류:
(1) Soft prompt
- 장점: Gradient descent를 적용하여,discrete prompt에 비해 최적화가 비교적 쉽다.
- 단점: 사람이 이해할 수 없고, 다른 LM과 함께 사용하는 것이 불가능하다.
(2) Discrete prompt
- 장점: 사람이 이해할 수 있다.
- 단점: Gradient descent 적용이 어렵다. Prompt space를 다루기 어렵다(intractable).
2. 목표
Task-specific한 performance를 올려주는 discrete prompt를 찾기 위하여, RL(Reinforcement Learning)을 적용한 방법을 사용한다.
Contributions
- 구조: LM안에 Policy network (MLP: Multi-Layered Perceptron)을 삽입하는 방식
- 메커니즘: Descrete prompt를 찾아주는 RL 메커니즘 → Reward함수 2가지
- 실험: 서로 다른 LM간에 discrete prompt가 작동함을 증명함.
3. 이론적 기반
Rainforcement Learning
현재의 상태(State)에서 어떤 행동(Action)을 취할 때 마다 외부 환경에서 보상(Reward)가 주어지는 방식으로, 최적의 행동(Action)을 학습하는 것.
취할 수 있는 Action들의 집합 → Action space
현재 상태(State)에서 다음 action을 알려주는 함수 → Policy
즉, 최적의 policy 함수를 찾는 것이 목적이다.
RLPrompt 에서의 Reinforcement Learning 재정의
State: prompt token sequence
Action: 다음 token으로 취하는 것 (Action space =Vocabulary 집합)
Reward: 완성된 prompt를 task LM에 input과 함께 통과시켰을 때 downstream task performance
Policy: 현재 prompt의 다음 token의 확률을 계산하는 LM (left-to-right LM)
4. 모델 및 방법론
(1) Prompt generation
- Policy LM 사이에 Task-Specific MLP layer를 끼워넣음.
- 주어진 step만큼 iterative하게 prompt token 생성 → prompt z
- 예) T={2,5} ⇒ prompt의 token 2개 ~ 5개
- Goal: Discrete prompt optimization
- Downstream task에 대하여 performance ‘R’을 최대로 만들어 주는, 최적의 ‘z’를 찾는 것.
(y = LM이 input x, prompt z를 취해서 만든 Output)
(z는 Vocaburary의 집합에 속한다. )
- 이 것을 RL 관점에서 다시 정의하면, 아래와 같다.
- R (=Reward) 최적화를 위해서는 RL 학습기법 적용가능 (이 논문은 soft Q 방법사용)
(2) Policy network
- Policy LM: DistilGPT-2 (82M parameters)
- Task-specific MLP (1개의 hidden layer)
(3) RL formulation details
- LM은 freeze 시키고, 결과 logit만 사용.
- Gradient는 사용하지 않음.
[Training]
- Prompt policy를 사용해서 prompt 모음 { z } 생성
- 각 z에 대하여 reward 계산 → 새로운 reward 방법 2가지 제시
- (1) Input-specific z-score reward
- 각 input x마다 다른 weight를 준다. (RL의 adaptive reward normalization이라 볼 수 있다.)
- (2) Piecewise reward
- 각 input에 대한 Task output에 sensitive하게 reward 정의
- 예) classification task일 때, 정답 label에 대한 probability를 label로 할 경우, 특정 label에만 치우치게 됨.
[Evaluation]
-
-
- Policy LM 사이에 Task-Specific MLP layer를 끼워넣음.
- 주어진 step만큼 iterative하게 prompt token 생성 → prompt z
- 예) T={2,5} ⇒ prompt의 token 2개 ~ 5개
- Goal: Discrete prompt optimization
- Downstream task에 대하여 performance ‘R’을 최대로 만들어 주는, 최적의 ‘z’를 찾는 것.
- R (=Reward) 최적화를 위해서는 RL 학습기법 적용가능 (이 논문은 soft Q 방법사용)
- Policy LM: DistilGPT-2 (82M parameters)
- Task-specific MLP (1개의 hidden layer)
- LM은 freeze 시키고, 결과 logit만 사용.
- Gradient는 사용하지 않음.
- Prompt policy를 사용해서 prompt 모음 { z } 생성
- 각 z에 대하여 reward 계산 → 새로운 reward 방법 2가지 제시
- (1) Input-specific z-score reward
- 각 input x마다 다른 weight를 준다. (RL의 adaptive reward normalization이라 볼 수 있다.)
- (2) Piecewise reward
- 각 input에 대한 Task output에 sensitive하게 reward 정의
- 예) classification task일 때, 정답 label에 대한 probability를 label로 할 경우, 특정 label에만 치우치게 됨.
- 학습 완료된 prompt policy를 사용하여 greedy 방식으로 prompt z 생성 후, Task LM에 z 사용
-
- (z는 Vocaburary의 집합에 속한다. )
- (y = LM이 input x, prompt z를 취해서 만든 Output)
5. 실험 및 결과
Few-shot Text classification 태스크
- Datasets: SST-2, Yelp Polarity, AG’s News 등
- Model: Backbone으로 RoBERTa-large 사용
- Policy LM: distil-GPT2 (82M)
- Prompt length: T = {2, 5}
- Reward function: Piecewise reward
- 비교 대상: Fine-Tuning, Manual Prompt, Instructions, In-Context learning, BB Tuning, AutoPrompt
- 결과: RLPrompt의 성능이 비교 대상에 비해 우수했으며, tokens가 5개인 prompt가 2개인 경우보다 성능이 좋은 경우가 많음.
Unsupervised Text Style Transfer (TST) 태스크
- Datasets: Yelp sentiment transfer dataset
- Model: Backbone으로 GPT-2사용, distil-GPT-2 (82M), GPT-2-xl (1.5B)
- Prompt length: T=5
- Reward function: Input-specific z-score reward
- Reward를 content와 style의 합으로 정의함.
- Content함수: CTC metric 참고하여 Bidirectional alignment (matching token embeddings)
- Style함수: pre-trained BERT-base-uncased classifier 사용하여 Target style probability사용
- 비교 대상: Training Baselines(Style Transfer, DiRR), Prompting Baselines(Null prompt, Random prompt, Manual prompt)
- 결과: DiRR보다는 성능이 낮으나, Manual Prompt에 비해 content, style, GM 스코어 높음.
Transferring Prompts across LMs
- Policy LM을 사용하여 Task-LM A에 맞게 학습된 policy를 사용하여 만든 ‘z’를 Task-LM B에 사용하여 성능 측정
- LM A의 사이즈가 B보다 컸으면 성능이 하락하고, LM A 사이즈가 B보다 작으면 성능 비슷하거나 약간 상승.
- GPT, BERT 계열 간에도 Transfer가 유효했다.
나의 의견
논문을 선택한 이유
(1) 사실 강화학습은 학습 방법중 하나이므로, 학습이 필요한 어느 분야에서든 적용가능할 텐데, 강화학습의 state와 action이라는 용어가 주는 선입견 때문인지 게임과 같은 동적인 태스크 이외의 상황에서 쓴다는 것을 생각해 본 적이 없었다. 이번 수업을 통해 강화학습을 NLP에서 optimal 한 prompt를 찾는 과제에 사용한 것을 보고 신선하다고 생각했다.
읽고 난 후 의견
- 강화학습을 잘 다루게 된다면, prompt optimization 뿐만 아니라, 적절한 measure만 있다면 다른 태스크에 적용하기만 해도 새로운 연구가 되지 않을까? (이미 있을 수도 있겠다.)
- optimal한 prompt를 찾는 방법에 대한 연구는 앞으로도 계속 많이 나올 것 같다.