https://arxiv.org/pdf/2104.08786
Abstract:
- GPT-3와 같은 LLM 은 몇 개의 예시만으로도 완전한 지도 학습된 모델과 유사한 성능을 보일 수 있다고 함.
- 여기서는 예시를 제시하는 순서가 모델의 성능에 큰 영향을 미칠 수 있다는 것을 강조하고 있음.
- 어떤 순서로 예시를 배치하느냐에 따라 모델이 최첨단 성능을 보이기도 하고, 무작위 추측 수준으로 떨어지기도 한다고 함.
- 이런 예시의 순서 민감성은 모델의 크기에 관계없이 나타나며, 가장 큰 모델에서도 관찰된다고 함.
- 특정 예시들의 집합 때문이 아니라 정말 예시의 순서와 연관이 있다고 함.
- 그리고 한 모델에서 좋은 성능을 내는 예시 순서가 다른 모델에서도 동일한 효과를 보이지는 않는다고도 한다.
- 가장 좋은 예시 순서를 찾아내는게 도전 과제임. 근데 이걸 매번 예시를 제공할 때마다 수행하게 되면 부담이 된다.
- 그리고 우리는 좋은 예시 순서를 찾아내기 위해서 필요한 라벨링 된 평가 데이터가 부족한 문제가 있을 수 있다.
- 그래서 여기서 제안한 방법은 인공적인 데이터를 생성 (개발 세트 생성이라고 함) 하고, 이를 예시 순서만 다르게 줘봐서 엔트로피 통계 분석을 한다고 함. 엔트로피가 낮을수록 모델이 확신을 가지고 안정적인 예측을 하는 거라고 함. 결국 최종적으로는 모델이 잘 처리하는 예시의 순서는 몇번째인지 를 파악하기 위함임. 즉 주어진 모델에 대해 일반적으로 잘 작동하는 순서 패턴을 찾는 것을 목표로 하는 것임.
- 이 방법은 11개의 주요 텍스트 분류 과제에서 GPT 계열 모델의 성능을 평균 13% 상대적으로 향상시켰다고 함.
Introdution:
- LLM 은 적절한 텍스트 문맥을 제공받을 때 뛰어난 성능을 보임. 특히, 소수의 학습 예시로 구성된 문맥을 제공하면 완전한 지도 학습 모델과 유사한 성능의 텍스트 분류 결과를 보일 수 있다고 한다. 이걸 In-Context Learning 이라고 함.
- 기존 연구에서는 템플릿의 구조가 성능에 큰 영향을 미친다는 것이 밝혀졌지만, 샘플의 순서가 In-context Learning의 성능에 미치는 영향에 대한 연구는 없었음.
- 이 논문에서는 샘플의 올바른 순서가 올바른 템플릿만큼이나 성능에 큰 차이를 만들 수 있다는 것을 발견한 것.
- 다음 이미지에서 볼 수 있듯이, 일부 순서는 감성 분류에서 지도 학습과 비슷한 성능(85% 이상의 정확도)을 보이는 반면 다른 순열은 무작위 수준(약 50%)의 성능을 보였다고 함.
- 이러한 순서 민감성은 모든 모델에서 보편적으로 나타나며, 모델의 크기를 늘리면 어느 정도 해결되긴 하지만 수십억 개의 매개변수를 가진 모델에서도 일부 텍스트 분류 작업(예: 그림 1의 Subj)에서는 문제가 여전히 존재한다고 함.
- 이 논문에서는 성능이 좋은 샘플 순서들 간의 공통점을 찾을 수 없었다고 함. 즉 "이런 순서가 항상 좋다" 와 같은 최적의 예시 패턴을 만드는 명확한 규칙을 찾는 것이 힘들다고 생각한 것.
- 하지만 인공 개발 세트를 이용해서 모델의 행동을 간접적으로 판단하기로 함. 대체적으로 이런 순서를 만들면 성능이 괜찮더라 하는 방법을 찾아내도록 함. 엔트로피 기반의 통계적 방법을 이용해서. "이 순서를 사용하면 대체로 성능이 좋더라"는 경험적 증거를 제시하는 거임.
- 이런 방법의 가정에는 프로빙 세트에서 좋은 성능을 보이는 순서는 실제 데이터에도 좋은 순서를 보일 것이라는 가정이 담겨 있음.
- 여기서는 순서 민감성 문제를 해결하기 위한 방법으로 다음 방법을 사용:
- 라벨이 없는 인공적인 프로빙 세트 생성:
- 대형 언어 모델은 이미 방대한 양의 데이터를 학습했기 때문에, 추가적인 데이터 없이도 텍스트를 생성할 수 있음.
- 프로빙 세트는 라벨이 없는 인공 데이터를 말하며, 모델에게 순서를 다르게 줘서 입력으로 제공할 데이터를 말함.
- 엔트로피 기반의 지표로 프롬프트 품질 평가:
- 엔트로피는 모델의 예측 분포의 불확실성을 나타내는 척도임.
- 낮은 엔트로피는 모델이 예측에 대해 높은 확신을 가지고 있고 높은 엔트로피는 모델 예측이 불확실함을 나타냄
- 다양한 예시 순서를 가진 프롬프트를 생성해서 모델의 출력을 얻음.
- 이 출력의 예측 분포에 대한 엔트로피를 계산한다.
- 엔트로피 값을 비교해서 모델이 가장 확신을 가지는 프롬프트를 선택하는 방법이라고 함.
- 라벨이 없는 인공적인 프로빙 세트 생성:
Order Sensitivity and Prompt Design:
- SST-2 데이터셋에서 레이블이 균형 잡힌 4개의 샘플을 고정적으로 선택하여, 이 샘플들의 모든 가능한 순서(총 24가지)를 실험했다고 함. 또한, 5개의 무작위로 선택된 샘플 집합을 테스트하여 통계를 정리했다고 함.
- 모델 크기를 늘리면 성능이 향상되지만, 순서에 따른 성능 변동성(분산) 은 여전히 큰 문제로 남아있다고 한다. 모델이 작을수록 변동이 더 크다고 함.
- 학습 샘플의 수를 늘리고, 최대 24개의 다른 순서를 샘플링하여 실험했을 때 샘플 수가 증가하면 평균 성능은 향상되나, 순서에 따른 성능 변동성은 크게 줄어들지 않으며, 오히려 증가할 수 있다고 함.
- 순서 민감성이 In-context Learning의 근본적인 문제임을 시사한다.
- 성능이 좋은 프롬프트는 모델 간에 전이되지 않는다는 걸 발경함:
- 특정한 예시 순서(퍼뮤테이션)가 한 모델에서는 88.7%의 정확도를 보였지만, 이를 다른 모델로 변경하면 51.6%로 성능이 급락하기도 한다고 함.
- 이는 한 모델에서 잘 동작하는 특정한 예시 순서가 다른 모델에서도 좋은 결과를 보장하지 않는다는 것을 의미
- 즉 프롬프트의 예시 순서 최적화는 모델마다 별도로 수행해야 한다고 함.
- 성능이 좋은 레이블 순서는 모델 간에 일관되지 않는다고 함.
- 예시의 순서뿐만 아니라, 레이블의 순서도 모델의 성능에 영향을 미칠 수 있는지 조사했다고 함.
- 레이블 순서의 성능도 모델 간에 무작위적으로 나타났다고 함.
- 한 모델에서 좋은 성능을 보인 레이블 순서가 다른 모델에서는 그렇지 않다고도 함.
- 레이블 순서 또한 모델마다 별도로 최적화해야 함을 알 수 있다고 함.
Entropy 기반 프로빙 메트릭 방법 정리:
- Global Entropy (GlobalE):
- 목적: 모델이 얼마나 균형 잡힌 예측을 했는지를 평가 (프로빙 세트에서 생성된 레이블 분포가 어느 정도 균일하다는 가정이 내포되어 있음.)
- GlobalE는 모델이 다양한 프롬프트 순열에 대해 특정 레이블에 편향되지 않고 고르게 예측했는지를 확인
- 높은 GlobalE 점수는 모델이 균형 잡힌 예측을 하고, 모든 가능한 레이블에 대해 골고루 확률을 분배했음을 나타냄
- GlobalE는 모델이 프롬프트 순서에 관계없이 균형 잡힌 예측을 할 수 있는지 평가하여, 특정 레이블에 대한 편향을 최소화하는 것을 목표로 함.
- Local Entropy (LocalE)
- 목적: 모델이 얼마나 확신을 덜 가지고 다양한 케이스를 고려했는지를 확인하는 지표
- LocalE는 모델이 예측할 때 지나치게 자신감을 가지지 않고, 여러 클래스에 대한 예측을 고르게 고려했는지를 확인
- LocalE는 모델이 예측에 대해 과도한 자신감을 가지지 않고 다양한 가능성을 고려하는지 평가하여, 모델의 잘 캘리브레이션된 상태를 확인한다.
- 즉 특정 프롬프트 순서에 대해 모델이 모든 입력에 대해 동일한 레이블을 강하게 예측하는 것보다, 다양한 레이블에 대해 적절한 불확실성을 유지하는 것이 중요.
- 레이블 A, B, C 가 있다면 A: 0.8, B: 0.1, C: 0.1 확률이 A: 0.9, B: 0.05, C: 0.05 확률보다 더 나은 결과 로 잡힘. 더 나아가서 A: 0.51, B: 0.25, C: 0.24가 A: 0.8, B: 0.1, C: 0.1보다 Local Entropy 점수가 더 높게 잡힌다. 수식대로 계산하면.
- GlobalE와 LocalE 메트릭을 통해, 우리는 프롬프트 순서가 모델의 예측에 얼마나 편향을 유발하는지 확인할 수 있음.GlobalE가 높을수록 모델은 특정 레이블에 치우치지 않고 균형 잡힌 예측을 할거고, LocalE가 높을수록 모델은 지나치게 자신감 있게 예측하지 않으며, 다양한 클래스 가능성을 고려하면서 예측을 할거임.
- 이 두 메트릭은 함께 사용되어, 편향을 줄이고 안정적인 성능을 유지하는 최적의 프롬프트 순서를 자동으로 식별하는 방법임.
- 이 방법을 적용했을 때 13~30% 성능 향상을 이뤘다고 한다.
'Generative AI > Prompt Engineering' 카테고리의 다른 글
Calibrate Before Use: Improving Few-shot Performance of Language Models (0) | 2024.10.01 |
---|---|
A Survey on In-context Learning (0) | 2024.09.30 |
What Makes Good In-Context Examples for GPT-3? (0) | 2024.09.30 |
Self-Consistency improves Chain-of Thought Reasoning in Language Models (0) | 2024.09.29 |
Least-to-Most Prompting enables complex reasoning in LLM (0) | 2024.09.29 |