본문 바로가기
étude/논문 리뷰

[논문 리뷰] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing

by mummoo 2024. 2. 24.

0. Abstract

NLP에서의 새로운 패러다임인 “prompt based learning”

input x에 대한 output y를 P(y|x)로 출력하는 전통적인 supervised learning과 달리 prompt-based learning은 text의 probability를 직접적으로 출력하는 LM에 기반한다.

LM의 이용을 위해 input x는 template를 통해 채워지지 않은 slot이 존재하는 문자열 prompt인 x’로 바뀌고, LM이 확률적으로 채워지지 않은 정보를 채워서 마지막 문자열인 x^을 얻는다. 이후 y를 출력 가능하다.

해당 프레임워크는 여러 이유로 매력적이다 . 먼저 LM이 대량의 raw text를 기반으로 pre-trained 될 수 있도록 하고, prompting function으로 모델은 few or no labeled data를 기반으로 few-shot이나 또는 심지어 zero-shot learning도 가능하다.

 

1. Two Sea Changes in NLP

supervised dataset들은 항상 충분할 수가 없기 때문에 초기 NLP 모델들은 feature engineering에 크게 의존했다.

**feature engineering : raw data에서 NLP 연구자나 엔지니어들이 자신들의 지식을 사용해 현저한 feature를 추출하고, 한정된 data를 기반으로 모델에게 inductive bias 를 제공

NLP를 위한 순환 신경망 모델의 출현으로 현저한 feature들은 모델 자체의 training으로 얻을 수 있었다.

따라서 architecture engineering으로 중심이 이동했고, 그러한 feature를 얻기 위해 network architecture로만 inductive bias를 얻을 수 있었다.

  • 2017 ~ 2019 : fully supervised paradigm의 감소고정된 architecture는 LM으로 pre-train되고, 관찰된 textual data로부터 probability를 예측할 수 있다. LM을 훈련시키기 위한 raw textual data가 충분하지 않기 때문에 이러한 LM들은 큰 데이터셋으로 훈련 가능하고, 이 과정에서 모델링하는 언어의 general purpose feature를 학습할 수 있다.**objective engineering : pre-training과 fine-tuning 단계에서 공통적으로 이용되는 training objective 디자인하기문서에서 현저한 문장을 예측하는 것의 loss function을 소개하는 것은 텍스트 요약을 위한 더 나은 pre-trained model을 만들 수 있음. 항상 그런 것은 아니지만 pre-trained LM의 메인 바디는 downstream task를 더 잘 풀게 하기 위해 fine-tuning되어 있다
  • 예시)
  • 여기에서 pre-trained LM은 task-specific한 objective function을 이용함으로써 fine-tuning과 추가적인 parameter를 통해 다른 downstream tasks을 학습할 수 있고, 이 파라다임에서 중심은 objective engineering으로 변경되었다.
  • 기준은 pre-train and fine-tune paradigm으로 변경
  • 2021 : pre-train, prompt, and predict 으로 중심이 변경예시)
    1. “I missed the bus today” 우리는 prompt를 “I felt so___”로 시작하고 LM에게 감정과 관련된 단어로 빈칸을 채우라고 할 수 있음
    2. “English : I missed the bus today. French : _______” 로 prompt를 선택하면 LM이 빈칸을 불어 번역으로 채울 수 있음
    • 이 두 가지의 경우, 적절한 prompt를 선택함으로써 pre-trained LM이 추가적인 task-specific training 없이 원하는 output을 낼 수 있도록 조정할 수 있다.
    • 이 방식의 이점은 적절한 prompt 몇 개로 완전히 unsupervised 방식으로 학습된 단일 LM이 엄청난 task를 해결하는 데에 사용될 수 있다는 것이다. 하지만 모든 매력적인 전망이 그렇듯이 단점이 이는데, 이 방법은 prompt engineering이라는 개념이 필요성을 도입해 LM이 바로 해결할 수 있는 적절한 prompt를 찾도록 한다.
  • 소셜 미디어 포스트에서 감정을 인식할 때
  • objective engineering을 통해 downstream task에 pre-trained LM을 적용하는 것보다, downstream task가 LM에서 textual prompt의 도움을 통해 해결된 것들과 더 비슷하게 보이도록 변경된다!!

2. A Formal Description of Prompting

2.1 Supervised Learning in NLP

input x에 대해 output y를 도출하고, y는 레이블, text 또는 다른 여러 output이 될 수도 있음

⇒ 모델의 파라미터인 세타를 학습시키기 위해, 우리는 input,output 쌍으로 구성된 데이터셋을 이용하고 이러한 상황의 확률을 예측하기 위해 모델을 학습시킨다. 우리는 이걸 두 가지의 기존 예시로 제시

  • text classification
  • conditional text

2.2 Prompting Basics

supervised learning의 메인 이슈는, P(y|x)를 학습시키기 위해 supervised data가 충분하지 않다는 것이다. NLP를 위한 prompt-based learning 메소드는 이 이슈를 text x자체의 확률 P를 모델해서 이 확률을 y를 예측하는 데에 사용해 큰 데이터셋의 필요성을 줄인다.

이 섹션에서 우리는 가장 기본적인 prompting 형태의 수학적 description을 사용하고, 이 basic prompting은 y^의 예측에서 세 가지 형태로 높은 점수를 냈다.

 

2.2.1 Prompt Addition

prompting function fprompt(·) 은 input text x를 prompt x’ = fprompt(x)로 바꿈 : 이는 두 가지 단계로 구성된다.

  1. template 적용 :두 가지 slot이 있는 text 문자열이다answer slot [Z] : (이후에 y로 매핑될) 생성된answer text z
  2. input slot [X] : input x 넣기
  3. slot [X]를 input text x로 채우기

2.2.2 Answer Search

LM의 점수를 최대화하는 highest-scoring text z^를 찾는다

Z = {}를 z를 위한 하나의 가능한 세트로 정의하고, Z는 생성된 task에 속한 언어 전체에서 구성 가능하다.

ffill(x’, z) 함수 정의하기 : [Z]를 잠재적 답인 z를 가진 prompt x’로 채운다.

이러한 과정을 거친 모든 prompt를 filled prompt로 부를 것이다. 특히 prompt가 참인 답변으로 채워지면 우리는 이걸 answered prompt라고 부를 것

잠재적 답변인 z의 세트를 pre-trained LM을 사용해 상응하는 filled prompt의 확률을 계산함으로써 찾음

⇒ 이때 이용하는 식

이 search function은 argmax search로써 최고점의 output을 찾을 수도 있고 LM의 확률 분포를 따라 output을 랜덤으로 생성하는 sampling이 될 수도 있음

 

2.2.3 Answer Mapping

최고점 answer z^ → 최고점 output y^

답변 자체가 output이면 좀 사소할 수도 있지만 다수의 답변이 같은 output으로 나올 수도 있는 경우에서는 고려해볼만함

2.3 Design Considerations for Prompting

위에서 basic mathematical formulation을 소개했으니 prompting method를 적용할 basic design consideration을 고려한다. 다음과 같다 :

  • pre-trained model choice
  • prompt engineering
  • answer engineering
  • expanding the paradigm
  • prompt-based training strategies

3. Pre-trained Language Models

pre-trained LM 소개 : 3.1 ~ 3.4의 관점을 통해 구체화

3.1 Training Objectives

3.2 Noising Functions

3.3 Directionality of Representations

3.4 Typical Pre-Training Methods

4. Prompt Engineering

downstream task에서 가장 효과적인 결과를 내는 fprompt(x)를 생성하는 과정

⇒ 기존 연구에서는 prompt template engineering을 포함했었음

이건 실제 엔지니어나 알고리즘이 각 모델이 학습해야 할 각 task에 대한 최적의 template을 찾는 과정

⇒ 이를 위해서는 prompt shape를 고려해야 한 후, 원하는 shape을 생성하기 위한 manual / automated 방법 중 한 방식을 골라야 한다.

4.1 Prompt Shape

prompt에는 두 가지 방식이 있다.

  • cloze prompt
  • = textual 문자열의 빈칸을 채움
  • prefix prompt
  • = 문자열 prefix를 생성

⇒ 둘 중에서 task와 model에 기반해 선택될 것

  • 생성을 간주한 task에서 표준 auto-regressive한 LM에 의해 해결되는 task에서 모델의 left-to right 방향성을 고려했을 때 prefix prompt가 더 도움이 된다.
  • masked LM을 이용하는 task의 경우 pre-training task의 형태를 더 잘 매치하기 때문에 cloze prompt의 적용이 더 괜찮다.
  • text reconstruction모델에서는 둘 중 뭘 써도 괜찮다.
  • text pair classification처럼 여러 input을 고려하는 경우 prompt template은 [X1], [X2] 등 두 가지 이상의 input을 위한 공간을 가지고 있어야 한다.

4.2 Manual Template Engineering

인간 introspection을 고려한 intuitive template을 수동으로 구성하는 것이 가장 자연스러울 것이다.

4.3 Automated Template Learning

수동으로 구성하는 것이 더 직관적이고 다양한 task를 특정 정확성 이상으로 해결할 수 있지만 또 여러 이슈가 있다.

5. Answer Engineering

prompting method에 들어갈 적절한 input을 디자인하는 prompt engineering과 다르게 answer engineering은 answer space Z와 효과적인 predictive model을 만드는 original output Y에 대한 맵을 찾는 것을 목적으로 한다.

answer engineering을 위해 필요한 두 가지

  • answer shape 결정하기
  • answer design method 고르기

5.1 Answer Shape

answer의 shape은 이것의 세분화된 정도를 특정한다. 몇몇의 보통의 선택은 토큰, span, 그리고 sentence를 포함한다.

수용 가능한 answer의 shape을 고르는 것은 우리가 수행하고자 하는 task에 달려 있다. token이나 text-span answer space는 classification task에서 범용적으로 이용되고 relation extraction, named entity recognition같은 다른 task에서도 이용된다.

긴 phrase나 sentential answer는 가끔 언어 생성 task에서도 사용되지만 다중 선택 question answering 등에서도 이용된다.

 

5.2 Answer Space Design Methods

answer를 위한 다음 질문은

  • 어떻게 적절한 answer space Z를 디자인할 수 있느냐
  • answer가 final output으로 이용되지 않을 경우 output space Y로 매핑할 방법

5.2.1 Manual Design

potential answer Z와 Y로의 매핑은 해당 영역과 관련된 시스템이나 벤치마크 디자이너에 의해 수동적으로 구조화된다. 이것을 위해 실시할 수 있는 것에는 다음의 두 가지 방법이 존재한다.

  • Unconstrained Spaces
  • ⇒ 대부분의 경우에서 answer space Z는 모든 토큰 / 고정된 길이의 span / token sequence의 space 이다. 이러한 경우들에서 answer z를 final output y로 바로 연결하는 방법은 identity mapping을 이용하는 방법
  • Constrained Spaces
  • ⇒ 다만 가능한 output의 space가 제한되어 위의 경우를 수행하지 못할 수도 있다. text classification이나 entity recognition, 다중 선택 question answering처럼 제한된 label space를 가진 경우가 이에 해당된다. 이러한 경우 answer Z와 Y 사이의 매핑이 필수적이다.

5.2.2 Discrete Answer Search

수동적으로 만들어진 prompt들은 LM이 이상적인 예측 성능을 달성하기 위한 보조 선택수단일 수도 있다. 따라서 automatic answer search에 대한 연구들이 존재하지만 이상적인 prompt를 찾는 것보다는 그 수가 적다. 이러한 연구들은 discrete answer space와 continuous answer space 모두를 고려한다.

  • answer paraphrasing
    • answer와 output (z’, y)를 가지고 우리는 answer의 요약된 세트인 para(z’)를 얻는 함수를 정의한다.
    • **역번역 : 다른 언어로 먼저 번역 후, 다시 번역해 여러 요약된 answer의 리스트를 생성한다.
    • 이 요약 방법은 어떠한 method를 쓰든 사용 가능하지만, 특히 역번역 메서드를 자주 사용한다.
    • **한계확률 : 아무런 조건이 없는 상태에서 무언가가 일어날 확률
    • final output의 확률은 해당 요약 세트 P(y|x)의 모든 answer에서의 한계 확률로 정의된다.
    • ⇒ 이 방법은 초기 answer space Z’으로 시작하고 이 answer space를 이것의 coverage를 넓히기 위해 paraphrasing을 사용한다.
  • prune-then-search
    1. 초기에 몇 개의 가능한 answer Z’의 answer space로 가지치기한 후
    2. 어떠한 알고리즘이 이 가지쳐진 space를 search해서 최종 answer set를 선택
    3. label y → token z로의 함수 (verbalizer)를 정의하는 논문도 있다
  • 이 방법은
  • Label Decompositionanswer span의 확률은 각 token의 probability의 합으로 계산될 것이다.
  • relation extraction을 할 때 각 relation label을 이의 constituent word로 분해하고 이걸 answer로 사용한다.

5.2.3 Continuous Answer Search

soft answer token을 사용하는 연구는 많지가 않다. 이건 gradient descent를 통해 최적화될 수 있다. 각 class label에 가상의 token을 할당하고 token embedding을 prompt token embedding과 함께 각 class에 최적화한다.

answer token들이 embedding space에 직접적으로 최적화되기 때문에 그들은 LM을 통해 얻은 embedding은 이용하지 않고 LM을 통해 각 label을 scratch해서 얻은 embedding을 이용한다.

6. Multi-Prompt Learning

이 prompt engineering method는 기존의 method들과 다르게 input으로 single prompt를 넣지 않는다.

많은 연구에서 multiple prompt를 쓰는 것이 prompting method의 효능을 증진시킬 수 있음을 보였기 때문이다. single prompt learning 을 연장해 multiple prompt로 쓰는 방법이 있다.

6.1 Prompt Ensembling

prompt ensembling = 다중의 unanswered prompt들을 inference time의 input에 넣어 예측하는 방법

 

다중의 prompt들은 discrete할 수도 있고 continuous할 수도 있다.

이러한 종류의 prompt ensembling은

  1. 다른 prompt들의 complementary 이점들을 leverage할 수 있고
  2. prompt engineering에 드는 비용을 경감시킬 수 있고
  3. downstream task에서의 성능을 안정화할 수 있다.

prompt ensembling은 다중의 시스템을 결합하는 데에 사용되는 ensembling method와 연결되어 있다.

⇒ uniform averaging, weighted averaging, majority voting, knowledge distillation, prompt ensembling for text generation 등

6.2 Prompt Augmentation

= demonstration learning

 

input x로 인스턴트화된 actual prompt에 LM이 어떻게 answer를 제공해야 하는지를 보여주는 데에 사용되는 추가적인 answered prompt가 상대적으로 덜 필요하다.

아이디어 자체는 단순하지만, 어렵게 만드는 몇 가지의 관점이 존재한다.

  1. sample selection : 어떻게 가장 효율적인 예시를 고를 것인가?어떤 task에서는 SOTA를 달성할 수도 있고, 어떠한 task에서는 random guess를 할 수도 있는 것.
  2. 이 이슈를 설명하기 위해 embedding space에서의 input과 비슷한 sentence embedding을 sample example에 적용한다. pre-trained LM의 instruction 기반 task 생성 능력을 측정하기 위해서 답과 오답 sample 모두를 제공한다.
  3. ⇒ 이 few-shot 시나리오에 사용된 예시들은 아주 다른 성능을 보일 수 있다.
  4. sample ordering : 선택된 예시를 prompt와 함꼐 어떻게 정렬할 것인가?augmented prompt로서의 training example들의 좋은 순열을 찾고, 이후 성능에서의 gain을 위해 prompt 사이의 separator token을 학습한다.
  5. model에 부여된 answered prompt의 순서는 모델 성능에서 중요한 역할을 했음을 발견한 후 다른 후보 순열을 평가하기 위해 엔트로피에 기반한 메소드를 제안한다.

6.3 Prompt Composition

다중의 sub prompt들을 이용해 각 subtask마다 하나씩 사용하고, 그 sub prompt에 기반한 composite prompt를 정의할 수 있다.

6.4 Prompt Decomposition

하나의 sample에 여러 prediction들이 이용되어야 하는 task들에서 전체적인 prompt들을 정의하는 것은 어려울 수 있다. 이 문제는 전체적인 prompt를 다른 subprompt로 쪼개고 각 sub prompt에 개별적으로 답함으로써 해결할 수 있다.

 

7. Training Strategies for Prompting Methods

적절한 prompt를 얻고 이에 상응하는 답변을 얻는 방법은 이제 명확하다

⇒ prompting method와 함께 model을 훈련시키는 방

7.1 Training Settings

zero-shot setting도 가능하지만, training data를 이용할 때 prompting method와 협력해 model을 훈련시키는 방법도 존재한다. 이것은 full-data learning이나 few-shot learning으로 구성되어 있다.

prompting method는 보통 후자에서 특히 도움이 되고, 따라서 model 을 push하기 위해 옳은 방향으로 prompt를 이용하는 것은 특히 효율적이다.

prompt engineering method들 중 대부분에서 주석이 달린 training sample들은 downstream task model에만 사용되지 않는다는 것을 유념해야 한다. 이들은 우리가 사용할 downstream task의 prompt의 construction이나 validation에서 자주 이용된다.

7.2 Parameter Update Methods

prompt-based downstream task learning에서 pre-trained model에서 온 것과 prompt에서 온 것의 두 종류의 parameter가 존재한다. 어떤 parameter를 업데이트해야하는지도 중요한 design decision이고, 이는 다른 시나리오에서의 다른 레벨의 적용성으로 이어질 수 있다.

기반 LM이 튜닝되었는지 / 추가적인 prompt 관련 parameter가 존재하는지 / 추가적인 prompt 관련 parameter가 존재할 경우 그 parameter들이 튜닝되었는지

⇒ 의 세 가지 기준으로 다섯 가지의 tuning 전략을 소개한다.

8. Applications

Knowledge Probing, Classification based Tasks, Information Extraction, NLP에서의 reasoning, Question Answering, Text Generation, Automatic Evaluation of Text Generation, Multi modal Learning, Meta-Application 등에서 이용된다

9. Conclusion