https://arxiv.org/abs/2302.12246


Abstract:

  • LLM이 높은 품질의 답변을 생성하기 위해서는 프롬프트 예시가 중요하다.
  • 이 논문에서는 작업에 특화된 예제를 생성하는 방법으로, 어떤 예시에 대해서 주석 처리를 할 지 결정하는 방법에 대해 다룬다. 그러니까 주석을 처리해서 예시를 만드는 것도 비용이기 때문에 효과적인 예제를 만드는 방법을 다룸.
  • 이를 위해 불확실성 기반의 능동 학습(active learning) 에서 아이디어를 가져옴. 모델의 응답에 대한 불확실성을 측정하기 위한 여러 지표를 도입하여, 가장 불확실한 질문을 선택하고 주석을 다는 방법임.
  • 이 방법은 8개의 복잡한 추론 작업에서 우수한 성능을 보였다고 한다.

 

Introduction:

  • CoT 프롬프트는 인간이 선택하고 주석한 예제에 의존하며, 이는 모든 작업에 최적화되어 있지 않을 수 있음. 그리고 어떤 질문을 주석해야 가장 효과적인지 알기 어려움.
  • 핵심 문제는 어떤 질문이 가장 중요하고 도움이 되는지 결정하는 것임.
  • 이 논문에서는 불확실성 기반의 능동 학습에서 아이디어를 가져와, 모델이 가장 불확실하게 예측하는 질문을 선택하여 주석 전략을 제안함.
  • 좀 구체적인 방법은 다음과 같음:
    • 1) 데이터셋 D에서 각 질문에 대해 모델이 k번 답변하도록 함.
    • 2) 각 질문에 대한 k개의 답변을 바탕으로 불확실성 u를 계산한다. 불확실성은 답변의 불일치도, 엔트로피, 분산 등으로 측정함.
    • 3) 불확실성 u가 가장 높은 n 개의 질문을 선택함.
    • 4) 이 질문들을 전문가가 추론 과정과 CoT 를 작성함.
    • 5) 생성된 예제는 프롬프트에 포함됨.
  • 불확실성 측정 지표:
    • 불일치도(disagreement): 모델의 여러 답변 간의 차이 정도
    • 엔트로피(entropy): 답변 분포의 불확실성 정도
    • 분산(variance): 답변 값의 변동성
    • 자신감(self-confidence): 모델 스스로의 답변 확신 정도를 평가하려 했으나, 모델이 과신하는 경향이 있어서 효과적이지 않았다고 함.

 

Active-Prompt:

  • 복잡한 추론 작업에 적용하기 위해, 훈련 데이터에서 불확실성이 높은 n개의 질문을 선택하고 주석하여 예제 세트 E를 구성하는 거임.
  • Active Prompting 은 이렇게 구성한 이후에 이 예제 세트 E를 사용하여 테스트 데이터에 대한 연쇄 추론(Chain-of-Thought, CoT) 프롬프트를 수행하는 것.
  • 불확실성 측정 방법:
    • 모델의 불확실성을 측정하여, 불확실성이 높은 질문을 선택하도록 하는 방법.
    • 각 질문에 대해 모델이 k번 답변을 하도록 할거임. 이걸로 통계적 확률 값을 계산해서 불확실성을 측정할 것이다.
    • 불일치도(Disagreement):
      • k개의 답변 중 서로 다른(unique) 답변의 수를 세어 불확실성을 측정하는 방법
      • h = 서로 다른 답변의 수 (중복 제거 후)
      • u (불일치도) = h / k 로 계산함.
      • 여기서 중복 제거 연산은 set 연산을 의미한다고함. 단답형 또는 객관식 답이라고 가정한듯.
      • 의미적으로 유사하지만 텍스트는 다른 답이라면 이를 고려해야할 것.
    • 엔트로피(Entropy):
      • 답변의 분포에 대한 엔트로피를 계산하는 방법임.
      • P(aj | qi) = 특정 질문에 대해서 답변 aj가 생성될 확률 (빈도수 기반) 기반으로 엔트로피를 계산한다.
      • 확률 분포가 고르게 퍼져 있을수록 엔트로피 값은 높아지며 불확실성이 크다고 가정함.
      • 그러니까 답변들을 고를 확률이 차이가 나지 않는 경우에 엔트로피 값이 커지는거라고 생각하면 된다.
      • 여기서는 답변을 고를 확률은 k번 실행을 해보면서 확률 분포를 만드는 과정으로 구성됨.
    • 분산(Variance):
      • 수치형 답변의 경우, 답변 값들의 분산을 계산한다고 함.
      • 큰 숫자가 분산을 지배하는 걸 막기 위해서 질문의 숫자들로 답변을 정규화한다고 함.
      • 분산으로 불확실성을 계산하는 경우에는 답과 차이가 별로 안날수록 작아지고, 불확실성이 낮다고 판단함.
  • 이렇게 불확실성을 측정한 후 각 질문의 불확실성 u를 기준으로 랭킹을 만듬.
  • 상위 n개의 질문을 선택해서 인간 주석자가 처리해서 예시를 만들게 된다.
  • 만들어진 예제 세트는 프롬프트에 추가되서 Few-shot CoT 방법으로 사용됨.
  • 그리고 추론은 Self-Consistency 매커니즘을 사용해서 최종 답변을 선택하는 방식으로 사용될 것.

 

실험 및 결과:

  • 실험에 사용된 네 가지 주요 베이스라인 모델:
    • Chain-of-thought (CoT)
    • Self-consistency (SC)
    • Auto-CoT
    • Random-CoT (Active-Prompt와 동일한 주석 프로세스를 따르지만, 제안된 불확실성 지표를 사용하지 않고 훈련 데이터에서 무작위로 질문을 샘플링하여 주석을 달음)
  • 추론 단계 설정:
    • 온도 매개변수 T = 0.7로 설정하고, 각 질문에 대해 40번의 추론을 수행
    • 그 후 가장 일관된 답변을 선택
  • 불확실성 지표:
    • 불일치 기반(Active-Prompt (D)) 과 엔트로피 기반 (Active-Prompt (E)) 를 씀.
  • 결과:
    • Active-Prompt는 모든 베이스라인 모델보다 큰 폭으로 우수한 성능을 보였음.

 

Ablation Study:

  • Zero-Shot-Active-Prompt는 Active-Prompt와 경쟁력 있는 성능을 보였다고 함. 이 방법은 Zero-shot CoT 를 이용해서 인간 주석자에 의존하지 않고 예시를 생성하도록 하는 방법을 말함.
  • Active-Prompt는 Random-CoT보다 상당히 우수한 성능을 보였다고 함. 확실히 불확실성 기반의 예제 선택이 효과적인 예제 선택 전략(능동적 선택) 이었음.
  • 불확실성 추정에서 입력 질문에 대해 k개의 답변을 생성하여 예측 풀(pool)을 구성하는데 이때 k 값은 불확실성 추정의 성능에 영향을 미침. 예측된 답변의 수(k)가 성능에 미치는 영향을 보여주기 위해, k 값을 1, 5, 10, 15로 변화시키면서 정확도를 측정해봤다고 함. k값이 증가함에 따라 성능도 향상되었고, k=10 부터 성능이 수렴하는 경향을 보였다고 함. k 값이 10이라는 거는 각 질문에 대해서 10번 추론해서 확률 분포를 구성해서 엔트로피를 계산했다는거임.

 

전이성 (Transferability):

  • Active Prompting 의 불확실성의 요인이 특정 모델에서만 오는지, 작업에서 오는지 검사해봤다고 함.
  • Active Prompt 에서 선택된 불확실하다고 평가한 예제를 주석 처리해서 예시로 사용했을 때 다른 모델에서도 일관되게 성능 향상을 나타낸다고 함. 이게 그냥 CoT 를 쓰는 것보다 성능이 더 잘 나왔기 때문에 Active Prompt 가 전이성이 있음을 나타낸다. 
  • 그리고 이러한 전이성은 큰 모델에서 질문을 선택하고 이를 작은 모델에게 적용할 때 더 효과적이라고 함.

 

Limitations:

  • 더 많은 모델에 대한 실험의 필요성:
    • text-davinci-002와 text-davinci-003는 사용 비용이 매우 높아, 하나의 모델에 대해서만 실험할 수 있었다고 함.
    • 더 강력한 모델인 GPT-4와 같은 최신 모델들에 대해 실험을 진행하는 것이 필요하다고 함.

+ Recent posts