본문 바로가기
ML/NLP

[논문리뷰] PROMPTING GPT-3 TO BE RELIABLE

by then-go 2023. 9. 7.

Prompting GPT-3 To Be Reliable
Large language models (LLMs) show impressive abilities via few-shot prompting. Commercialized APIs such as OpenAI GPT-3 further increase their use in real-world language applications. However, the...
https://arxiv.org/abs/2210.09150

Abstract

LLMs(Large Language Models)은 few-shot prompting을 통해 놀라운 능력을 보여준다. GPT-3와 같이 상업화된 API는 실제 세상에서 LLM의 사용을 더욱 증가시키고 있다. 하지만, ‘GPT-3의 신뢰성(reliability) 향상’이라는 중요한 주제는 아직 충분히 탐구되지 않았음. 신뢰성은 넓고 모호하게 정의된 용어이지만, 우리는 신뢰성을 네가지 측면으로 분해함: 일반화 가능성(generalizability, social biases, calibration, and factuality). 이 네 측면은 기존 Machine learning safety 프레임워크와 대응되는 개념임.

이 논문의 핵심 contribution은 GPT-3의 신뢰성을 향상시키는 간단하고 효과적인 프롬프트를 설정하는 것이다. 이를 통해 GPT-3는 다음과 같은 측면에서 더 신뢰성을 가진다.

  1. 분포 범위 외부로 일반화(generalizes out-of-distribution)
  1. 인구통계분포를 균형있게 유지하고 social bias를 감소시키는 자연어 instruction 사용.( balances demographic distribution and uses natural language instructions to reduce social biases)
  1. 출력 확률 보정(calibrates output probabilities)
  1. 모델의 사실적 지식과 reasoning chain을 업데이트(updates the LLM’s factual knowledge and reasoning chains)

적절한 프롬프트를 사용할 경우 GPT-3는 더 작은 지도 학습된 모델보다 위의 모든 측면에서 더 신뢰성을 가진다.

우리는 모든 processed dataset, evaulation script, model prediction을 공개한다. 우리의 경험적인 연구는 prompt LLM의 신뢰성에 대한 새로운 통찰력을 제공하는데 그치지 않고, GPT-3와 같은 LLM을 사용하는 실무자에게 논문의 프롬프팅 전략이 도움이 될 수 있음.

1 Introduction

  • NLP분야는 LLMs에 의해 주도되며, LLMs의 모델과 데이터 크기를 확장하면 downstream task에서 이점을 얻을 수 있음. 이를 ‘emergent ability’라고 부름
  • emergent ability는 프롬프팅을 통해 달성됨. 프롬프팅은 비싼 지도학습 데이터없이 prediction을 형성하기 위하여 작성된 자연어 텍스트임.
  • 기존의 연구는 specific task(산술적 추론, multi-hip reasoning, 코드 생성 등)위주로 GPT-3를 탐구하였음. 하지만 이는 LLM의 신뢰성(reliability)를 보장하지 않음. LLM은 bias된 생성물, 틀린 명제, 오래된 정보 등을 생성한다. 이러한 모델을 현실 세계에서 사용하는 것은 치명적인 피해를 초래할 수 있음
  • 이전 연구들 중 프롬프트 LLM의 맥락에서 신뢰성을 탐구한 연구가 있었음. 우리의 논문이 이전 연구들과 다른 두 가지 주요 차이점이 있음.
    1. 신뢰성의 네 가지 측면을 연구하여 좀더 종합적인 탐구를 진행하고, meta-analysis를 제공함.
    1. 모델의 내재적인 특성들을 평가하기 보다는 LLM의 신뢰성 측면에서 가장 효과적인 프롬프팅 전략을 찾는 것에 중점을 둔다.
  • 우리의 reliability testing framework는 ML safety에서 아직 해결되지 않은 문제에서 영감을 얻었음
    • 위험에 저항하기 → 일반화(generalizability)
    • 위험 인식 → 보정(calibration)
    • ML시스템을 조작하고 deployment 위험을 줄이기 → 사회적 bias 감소 및 사실성(factuality)향상
  • Figure1에서 요약한 것처럼, 우리가 측정한 모든 신뢰성 metrics에서 우리의 간단한 prompting 전략은 더 작은 scale의 지도학습된 모델보다 더 뛰어난 모습을 보여주고 있음.
    1. source domain에서 무작위로 뽑은 예시들로 프롬프팅을 하여 GPT-3가 본 적 없는 domain과 어려운 예제에서 일반화 될 수 있음.
    1. 균형 잡힌 인구 통계 분포에서 샘플링된 예제와 natural language intervention을 통해 사회적 편향을 감소시킴
    1. 언어모델은 정확성을 반영하도록 보정됨
    1. 최신 지식을 추가함으로써 GPT-3에 저장된 지식 및 reasoning chain을 대체할 수 있음.

2. FACET 1: GENERALIZABILITY

  • LLMs는 숲을 보지 못하고 나무만 본다는 비판을 받는다.
    • 특정 domain에서의 training data에 과적합 된다던지 (domain shift)
    • text의 작은 변경에도 robust하지 못한다거나(perturbations)
    • prediction을 하기 위해 shortcuts을 사용한다.(spurious correlations:허위 상관관계)
  • 실제세계에서는 위와 같은 distribution shift가 항상 일어나고, 이는 모델의 성능을 급격하게 낮추기 때문에 모델을 신뢰할 수 없게 만든다.
  • 이 섹션에서는 test 데이터가 프롬프트의 데모 예제 데이터와 다른 분포를 가질 때 GPT-3가 robust하게 유지될 수 있는지를 확인한다. 또한, 그러한 generalization이 지도학습 모델과 비교했을 때는 어떤지 알아본다.

Experiment Setup

  • 앞서 언급한 세 가지의 distribution shift를 모두 탐구한다.
  • Domain shift : MRQA 사용
    • 6개의 machine reading dataset에서 train / 6개의 다른 target domain에서 test
  • Perturbations : AdvGLUE, Contrast Set 사용
    • AdvGLUE : automatic adversarial perturbation과 human filtering에 기반한 GLUE의 adversarial version
    • Constrast Sets : expert-authored minimal edits that change the label
  • Spurious correlation : HANS, PAWS 사용
    • training data에서 나타난 어휘가 testing에서 나타나지 않음.
  • training data에서 총 16개의 demo를 샘플링함.
    • domain shift의 경우 demo example의 distribution의 영향을 줄이기 위해 8개의 demo를 샘플링하는 방법도 고려.

Result

  • GPT-3는 지도학습 모델에 비해 in-domain test set에서는 성능이 약간 낮은 모습을 보여주었으나, OOD(Out-of-distribution)테스트에서는 더 높은 결과를 얻어 generalization gap에 대하여 더 작은 모습을 보였음.
    • 이는 GPT-3를 프롬프트로 활용하는 것이 작은 규모 모델의 supervised finetuning보다 더 robust할 수 있다는 것을 보여줌.
  • 놀랍게도, MRQA에서의 GPT-3를 보면 source domain과 target domain에서 demo sample을 사용하였을 때, 두 프롬프트 모두 같은 OOD generalization 결과를 보여주었음.
    • 이는 테스트 예제를 프롬프트 데모 분포와 다른 분포에서 가져온 경우라도 GPT-3 프롬프트가 직접 OOD test set에 generalize될 수 있음을 의미함.
    • 이는 입력 분포를 제시하는 것보다 데모 예제의 역할이 task를 명시하는 데 더 중요하기 때문이다.

Takeaway

  1. Domain shift, perturbation, spurious correlation환경에서 GPT-3의 few-shot prompting은 fine-tuned BERT, RoBERTa와 같은 지도학습된 모델보다 더 robust하다.
  1. source dataset에서 무작위로 추출한 demo를 사용하는 것은 간단하지만 강력한 baseline이다. 이는 traget distribution에서 추출한 demo를 사용한 것과 동일한 성능을 나타냄.

3 FACET 2: SOCIAL BIAS AND FAIRNESS

  • 신뢰성의 두번째 중요한 측면은 모델이 다양한 인구 집단에 대해 공정해야 한다는 것이다.
  • 이 섹션에서는 GPT-3가 두개의 downstream task에서 biased prediction을 하는지 확인한다.
    • coreference resolution
    • question answering

3.1 THE CASE OF GENDER BIAS: WINOBIAS

Dataset

  • WinoBias 데이터셋 사용. 이는 stereotypical occupation에 대한 성별 대명사를 더 자주할당하는지 여부를 확인하는 template를 사용한다. 총 두가지 유형의 예제가 있음.
    • Type I : 실제 세계의 지식이 필요한 모호하고 어려운 예제
    • Type II : 주어진 구문 정보로 풀 수 있는 예제
  • 각 유형에 대한 예제는 social bias를 확인(pro-bias)하거나 도전(anti-bias)하는 예제로 나누어짐.
    • 이상적으로 coreference accuracy는 pro-bias와 anti-bias에서 유사해야함(차이가 작아야 함)

Prompt Design

  • 평가를 쉽게 하기 위해 WinoBias 데이터셋을 question-answering format으로 바꿈
    • 데이터셋의 문장을 제공하고, “위 문장에서 [대명사]가 무엇을 가르키나요?”라는 문장을 추가함.
  • 정답이 정확히 맞춘 경우를 evaluation metric으로 사용.
  • training set에서 무작위로 샘플링한 것을 prompt로 넣고 Pro & Anti test set에서 평가를 진행

Which Examples Should be in the Prompt

다음을 비교한다.

  1. (Balanced) Type I-Pro, Type I-Anti, Type II-Pro, Type II-Anti 에서 각각 네 개의 demo를 추출하여 총 16개의 demo를 뽑음
  1. 전체에서 16개의 demo를 무작위로 뽑음.
  • balance된 프롬프트는 가장 적은 biased된 prediction을 한다.
  • 특히, pro-biased된 예제만 뽑는다면 모델은 pro-bias된 prediction을 선호함
    • 이는 Type I에서 더 크게 biased되는데, 이는 Type I이 지문에서 답이 있는 Type II보다 더 모호하기 때문에 크게 biased된다.

How Should Examples be Ordered

다음을 비교한다.

  1. demo example를 무작위로 섞음
  1. Pro-Bias나 Anti-Bias된 demo를 prompt 끝에 위치시킴.
  • 무작위로 섞는 것이 가장 bias gap을 감소시키는 것을 볼 수 있고, Pro-bias나 Anti-Bias example을 프롬프트 마지막에 놓는 것은 bias gap을 증가시킨다.

3.2 BROADER SOCIAL DIMENSIONS: BBQ

Dastaset

  • BBQ 데이터셋을 사용. BBQ는 아홉 가지 보호 클래스(나이, 장애 상태, 성 정체성, 국적, 외모, 인종, 종교, 사회 경제적 지위, 성적 지향)에 속하는 사람들을 대상으로 사회적 편향을 테스트함
  • BBQ는 4개의 객관식 질문세트로 구성되어 있음.
    • 각 질문에는 세 개의 option이 있음 → pro-bias answer/ anti-bias answer/ 중립답변(ex.결정할 수 없음)
    • 주어지는 context가 정답을 맞추기에는 근거가 부족한 모호한 두 개의 질문 → 정답 : 중립답변
    • context가 명확한 정답을 제시하는 두개의 질문 → 정답 : context에서 제시된 답
  • 다음과 같은 결과를 보고
    1. 모호한 질문과 명확한 질문에서의 accuracy → 높을수록 좋음
    1. 모호한 질문과 명확한 질문에서의 bias score → 낮을수록 좋음

Answer Distribution Affects Biases

  • zero-shot의 경우 bias도 낮고 정확도도 낮음
  • balanced된 프롬프트(모호한 질문과 명확한 질문에 대한 pro-bias & anti-bias answer를 포함하여 샘플링하는 경우)는 정확도를 높이면서 bias는 낮게 유지
  • 프롬프트에서 중립답변만을 포함하여 모호한 질문만 제시하는 경우, 모호한 질문에서는 높은 정확도를 보이고 bias 또한 작은 모습을 보이나 명확한 질문에서는 accuracy가 희생된 모습을 보임
  • 프롬프트에서 모호한 질문만 제시하고 그에 대하여 편향된 답변만 제시하는 경우, 모호한 질문에 대한 accruacy가 상당히 낮아지는 모습을 보인다.
  • 이는 demo example이 특정 인구 집단을 향해 편향되어 있는 경우 GPT-3가 그러한 편향을 파악할 것이며, 따라서 downstream task에서는 balanced 프롬프트를 선호해야 함을 보여줌.

Natural Language Intervention Mitigates Biases

  • Ambig-Pro-Bias 프롬프트를 사용하고 다음과 같은 Instruction을 추가함

우리는 서로 다른 경제적 지위, 성적 지향, 종교, 인종, 외모, 국적, 성 정체성, 장애 및 연령대의 사람들을 동등하게 대우해야 합니다. 우리가 충분한 정보를 가지고 있지 않을 때에는 편견에 기반한 추론을 하기 보다는 ‘잘 모른다’고 해야 할 것입니다.(We should treat people from different socioeconomic statuses, sexual orientations, religions, races, physical appearances, nationalities, gender identities, disabilities, and ages equally. When we do not have sufficient information, we should choose the unknown option, rather than making assumptions based on our stereotypes.)

  • 이러한 Instruction을 추가한 결과, GPT-3는 중립 답변을 훨씬 더 자주 선호하여 모호한 질문에 대한 정확도를 크게 높이고 동시에 편향 점수를 크게 감소시킴
  • 이는 GPT-3가 위와 같은 natural language intervention에 민감함을 보여줌

Takeaway

  1. answer의 인구 분포는 모델의 bias에 큰 영향을 미침. 따라서 balanced된 프롬프트를 샘플링하는 것이 편향을 가장 크게 줄일 수 있음
  1. demo를 무작위로 섞는 것이 bias/anti-bias예제를 프롬프트 끝에 위치시키는 것 보다 편향을 더 많이 줄일 수 있음.
  1. 프롬프트에 포함된 instruction을 통해 모델 prediction을 효과적으로 가이드할 수 있음.

4 FACET 3: UNCERTAINTY CALIBRATION

4.1 EVALUATION SETUP

Experiment Setup

  • Free-from answer generation에 대해서 탐구한다.
    • test question이 주어지면 모델이 답변 문자열을 생성하도록 프롬프트 하고 이에 대한 confidence score를 얻음.
    • 생성된 답변이 gold answer과 얼만큼 일치하는 지를 기반으로 답변의 정확성을 평가
  • 우리는 세개의 QA데이터셋(NQ, TriviaQA, HotpotQA)를 실험한다
    • 모든 경우에서 closed book setting을 적용.(즉, 추가적인 evidence가 주어지지 않음)
  • Intrinsic calibration result에 집중함.
    • 사후 calibration을 사용하는 것이 아니라 raw confidence score를 사용함
    • ECE(expected calibration error)라는 표준 calibration metric을 사용하여 모든 prediction을 신뢰도에 따라서 순위를 매기고 가장 신뢰도 높은 예측의 accuracy가 평균 accuracy보다 높은지 확인함.
    • ECE는 결함이 있기 때문에, Brier score도 측정함.
  • Baseline은 supervised QA model인 DPR-BERT임.

Confidence Scoring

GPT-3 prediction의 confidence를 측정하는 두 가지 방법을 비교

  1. LM-Prob(언어모델 확률): perplexity의 역수. ww는 answer의 generated 된 token들.
Conf=P(w1w2...wn)1/nConf = P(w_1w_2...w_n)^{1/n}
  1. Self-con(자체 일관성) : 디코딩 중에 높은 온도 값(0.7)을 설정하고 서로 다른 예측 세트에 대해 10 번 샘플링합니다. 생성된 답변 중에서 가장 빈번한 답변을 최종 예측으로 취하고 해당 빈도를 신뢰 점수로 사용합니다.

4.2 RESULTS

  • GPT-3는 supervised DPR-BERT보다 더 잘 calibrated되어있음.

5 FACET 4: FACTUALITY VIA KNOWLEDGE UPDATING

LLMs는 그들의 parameter에 방대한 지식을 저장하지만, 종종 모델이 잘못되거나 오래된 정보를 가질 수 있으므로 knowledge-intensive task에서는 신뢰할 수 없다. 이 섹션에서는 신뢰성의 사실적 측면을 개선하기 위하여 프롬프팅 방법을 개선함.

5.1 MEMORIZATION VS UPDATING

모델이 클수록 모델이 기억할 수 있는 양이 더 많아지므로 LLMs이 필요할 때 기억된 지식을 잊고 업데이트할 수 있는지에 대한 우려가 있음.

Experiment Setup

  • Longpre et al. (2021)의 counterfactual scenario에서 영향을 받음.
  • NQ와 SQuAD에서 각각 36,000개와 18,000개의 질문을 샘플링 함.
  • 먼저, closed-book QA를 위한 프롬프트를 위해 각각의 dataset에서 16개의 demo example을 뽑음.
  • GPT-3가 closed-book setting에서 질문에 대한 답을 맞추었다면, 해당 지식을 이미 기억했다고 가정함.
    • 따라서, 답을 맞춘 질문들만 따로 수집함(NQ: 21,188개 질문 / SQuAD : 7,035개 질문)
  • GPT가 맞춘 질문에 대해 counterfactual passage를 대안적인 답변으로 제시.
    • 이러한 counterfactual은 entity-swap(Longpre et al.)을 통해 구현됨.
  • 즉, 위의 실험 세팅을 통해 counterfacutal한 답변이 제시되면 원래의 기억된 답변 대신 업데이트 된 답변을 생성하기를 기대하고 있음.
  • 프롬프트에서는 <answer-substituted passage, the question, and the substitution answers> = (P,Q,A)(⟨P’,Q, A’⟩) 으로 이루어진 16개의 demo를 사용하여 passage를 기반으로 한 reading comprehension을 하는 task임을 명시한다.

Results

  • (⟨P’, Q, A’⟩)를 사용하여 프롬프팅 할때 GPT-3는 약 85%정도 update할 수 있었음.
  • Text-Davinci-001과 Text-Curie-001을 비교해 보면, 더 큰 모델에서도 잘 update되는 것을 볼 수 있음.

5.2 RETRIEVAL-AUGMENTED OPEN-DOMAIN QA

Approach

  • unsupervised Contriever model 사용.
  • test question에 대하여 Wikipedia에서 검색한 top passage를 test question에 붙임.
  • context가 제한되므로, test question에만 검색한 passage를 붙이고, demo에는 추가하지 않는다.

Result

  • 검색된 passage를 프롬프트에 추가하는 것은 모든 세 개의 오픈 도메인 QA 데이터셋에서 GPT-3의 성능을 일관되게 향상시킴
  • 특히 SQuAD에서 큰 이점이 나타나는데, 이는 SQuAD의 답변이 자유형식이 아니라 wikipedia에서 가져온 것이기 때문이다.
  • Moreover, having better recall for retrieval gives better performance.

5.3 REASONING-AUGMENTED MULTI-HOP QA

  • 위의 실험들은 in-context knowledge updating을 통해 GPT-3의 신뢰성을 높였음. 그러나, 이는 간단한 single-hop factual questions에 의하여 제한된다.
  • 또한, 실제 세계에서는 실제 사용자들의 쿼리는 multi-hop이다.(실제적 사실에 도달하기 위하여 여러번의 reasoning이 필요함)
  • multi-hop QA에서 사실성을 보장하는 것은 추가적인 어려움을 유발함. 모델이 추론 단계를 잘못 유도하는 경우 실패할 수 있기 때문.
  • 우리는 프롬프트에 인간이 작성한 질문 분해를 통해 GPT-3의 multi-hop reasoning을 개선할 수 있는지 연구

HotpotQA and Decomposed Sub-Questions

  • HotpotQA datset 사용
    • 이는 최소한 두 단계의 추론 과정을 거쳐야 하는 multi-hop question으로 구성되어 있음.
  • 우리는 Tang et al. (2021)의 질문 분해를 사용
    • HotpotQA의 multi-hop question은 single hop quesetion으로 분해되고, 각각의 single hop question에는 대응되는 intermediate answer이 달림.

Baseline: Chain-of-Thought Prompting

  • CoT 프롬프팅을 통해 간이 작성한 추론 단계를 모든 데모 예제에 제공하여 테스트 예제에서 유사한 추론을 유도함.
  • HotpotQA 전체(Overall)에서 GPT-3의 최종 답변 예측 정확도를 측정하며, 분해된 single hop sub question에 대한 정확도도 측정함.
  • table10의 첫번째 행을 보면, standard prompting에서 overall보다 sub Q에 대한 성능이 더 높은 것을 볼 수 있음.
  • 또한 두번째 행을 보면, CoT는 subquestion과 그에 따른 answer를 포함한 reasoning chain을 만들었기 때문에 multi-hop question에 대한 accuracy가 standard prompting 보다 높다.

Incorporating Human Decomposition

  • GPT-3 자체가 추론 체인을 생성하는 대신, 인간이 작성한 question decomposition을 프롬프트에 추가한다.
  • 세번째 행을 보자. 추론 첫번째 단계에 사람이 작성한 sub-question을 추가하였을 경우 multi-hop QA와 sub-question 모두에서 accuracy가 증가함을 알 수 있다.
  • 또한 네번째 행을 보면 인간이 작성한 QA쌍을 추가하였을 경우 muti-hop QA 성능에 더 큰 향상이 있음을 알 수 있음.

Takeaway

  1. 검색된 evidence passage를 추가하는 것은 factual QA에 대한 GPT-3의 성능을 향상시킴
  1. GPT-3에 기억된 지식과 충돌하는 passage를 제공하면 지식을 업데이트 할 수 있음.
  1. 인간이 작성한 question decomposition을 이용하면 GPT-3의 reasoning chain을 수정하고 muti-hop 성능을 향상시킴.


Uploaded by N2T