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와 같은 최신 모델들에 대해 실험을 진행하는 것이 필요하다고 함.
'Generative AI > Prompt Engineering' 카테고리의 다른 글
Is a Question Decomposition Unit All We Need? (0) | 2024.11.01 |
---|---|
MoT: Memory-of-Thought Enables ChatGPT to Self-Improve (0) | 2024.10.22 |
Complexity-Based Prompting for Multi-step Reasoning (0) | 2024.10.19 |
Uncertainty-Routed CoT Prompting (0) | 2024.10.18 |
Contrastive Chain-of-Thought Prompting (0) | 2024.10.18 |