일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Today
- Total
- activation function
- AdaGrad
- adaptive learning rate
- arithmetic reasoning
- Attention is all you need
- attention mechanism
- auto encoder
- Back Propagation Trough Time
- Backpropagation
- Bayes Theorem
- BCE
- Bert
- Bidirectional Encoder Representation from Transformer
- Binary classification
- BPTT
- Chain-of-Thought
- CNN
- commonsense reasoning
- Computer Vision
- Confusion Matrix
- convolutional neural network
- Cot
- cot reasoning
- counting
- Cross Entropy Loss
- deep learning
- degradation
- Dimension Reduction
- Few-shot
- fine-tuning
데이터 분석 일지
[Paper Review] Zero-shot CoT: Large Language Models are Zero-Shot Reasoners 본문
[Paper Review] Zero-shot CoT: Large Language Models are Zero-Shot Reasoners
-ˋˏ ♡ ˎˊ- 2024. 6. 11. 15:56이전 CoT 논문을 통해 pre-trained된 model로 few-shot을 사용하더라도 reasoning ability를 이끌어내는 능력이 중요함을 보였다. 하지만 few-shot을 사용한다면 hand-crafted examplar가 필요하다는 단점이 있었다. 이를 보완하기 위하여 본 논문에서는 answer 전에 "Let's think step by step"이라는 prompting을 추가하여 zero-shot으로도 상당한 성능 향상을 보이며 reasoning ability를 이끌어낸다. 이 기법을 Zero-shot CoT라고 표기한다.
1. Introduction
이전 CoT 논문*에서는 Figure 1과 같이 few-shot을 사용하여 추론할 수 있도록 example을 주었다. 이로써 pre-trained model에 잠재되어 있던 추론 능력을 도출해 낼 수 있었지만, 어떤 example이냐에 따라 성능이 변하기도 하고, hand-crafted로 example을 작성하는 것이기 때문에 비용이 들었다.
본 논문에서는 이를 해결하기 위하여 zero-shot으로도 CoT를 수행하고자 한다. zero-shot은 task-agnostic하기 때문에 example을 생성할 필요가 없다.
Zero-shot CoT를 수행하기 위해서는 어떤 task인지 상관없이 prompt에 단순히 고정된 문구인 "Let's think step by step"만 작성하면 된다.
*본 논문 리뷰를 보기 전에 CoT 리뷰를 보시는 것을 추천합니다.
2. Zero-shot Chain-of-Thought
기존 few-shot CoT와의 차이점은 아래의 세 가지로 나눌 수 있다.
- few-shot example 필요 없음
- task-agnostic함
- single template로 reasoning ability 끌어낼 수 있음
이 외에도 큰 차이점이 하나 있는데, prompting을 두 번 한다는 것이다.
2. 1. Two Stage Prompting
zero-shot CoT의 개념은 단순하지만 reasoning과 asnwer를 각각 추출하기 위해서 prompting을 두 번 수행한다. 이는 Figure 3와 같다. few-shot prompting은 standard와 CoT 둘 다 이미 prompting을 통해 [추론 -> 답]의 형식을 알려주지만, zero-shot CoT는 형식 제시를 하지 않기 때문에 두 번의 prompting을 거쳐, [추론 -> 답]의 형식을 이끌어낸다.
첫 번째 prompt는 reasoning extraction이다. 이는 문제 X와, input trigger sentence(prompt)가 있을 때 Q: [X]. A: [T]의 형식으로 LLM에 입력된다. 입력받은 후 LLM은 reasoning을 출력하게 된다.
두 번째 prompt는 answer extraction이다. 이는 Q: [X]. A: [T] [Reasoning] [A]의 형식으로 LLM에 입력된다. 여기서 [Reasoning]은 첫 번째 prompt의 출력이고, [A]는 answer trigger sentence이다. 입력받은 후 LLM은 answer를 출력하게 된다.
정리하자면 few-shot CoT는 task마다 hand-crafted example이 필요하지만, zero-shot CoT는 example이 필요 없는 대신에 prompting을 두 번 거쳐야 한다.
3. Experiment
Tasks and Datasets
총 12개의 dataset을 사용하고, 이는 각각 4개의 category로 나뉜다. 이는 각각 아래와 같다.
- Arithmetic (6): SingleEq, AddSub, MultiArith, AQUARAT, GSM8K, SVAMP
- Commonsense(2): CommonsenseQA, StrategyQA
- Symbolic (2): Last Letter Concatenation, Coin Flip
- Logical (2): Date Understanding, Tracking Shuffled Objects
초록색으로 표시된 dataset은 하나의 step으로 풀 수 있거나 간단한 dataset이고, 빨간색으로 표시된 dataset은 여러 setp으로 풀어야 하고 복잡한 dataset을 의미한다. Logical reasoning dataset의 난이도에 대해서는 특별한 언급은 없었다.
Models
주 실험에서는 Instruct GPT-3와 Original GPT-3, PaLM을 사용한다. 추가로 scaling 연구를 위해 GPT-2와 GPT-Neo, GPT-J, T0, OPT를 사용하였다.
Baselines
기본적으로 본 논문에서 제시하는 방법인 zero-shot CoT prompting과 이전 CoT 방법인 few-shot CoT prompting, 그리고 추가로 zero-shot promtping, few-shot prompting과 비교한다.
Answer Cleansing
model의 output에서 정답만 출력하기 위해 answer cleansing을 수행한다. 각 task의 answer format별로 answer cleansing 방법은 Table 1과 같다.
4. Results
4. 1. Zero-shot CoT vs Zero-shot
각 dataset에 대한 결과는 Table 2와 같다. Table 2에서 대부분의 task의 성능은 zero-shot CoT가 더 우세했지만, SingleEq와 AddSub, 또 Common Sense task의 경우 zero-shot과 성능이 비슷하거나 더 낮은 것을 볼 수 있다.
좋은 성능을 거둔 부분보다 성능이 저하된 부분을 주목해야 한다. 본 논문에서는 SingleEq, AddSub의 zero-shot CoT 성능이 향상되지 않은 이유를 복잡한 추론이 필요하지 않은 문제이기 때문이라고 설명한다. 이전 CoT 논문에서도 task가 복잡하고 model의 크기가 클수록 CoT의 추론 능력이 나타난다고 하였다. 이 가설은 본 논문에서도 적용되는 가설이라고 설명한다.
그렇다면 Common Sense task의 zero-shot CoT 성능이 향상되지 않은 이유는 무엇일까? 본 논문은 Table 3을 통해 이 이유를 설명한다. 보통 두 가지 예시가 있었는데, 첫 번째는 추론은 맞았지만 정답이 틀린 경우이고, 두 번째는 모델이 정답을 고를 때 하나의 정답만 고르는 것이 아니라 여러 개의 정담을 고르는 경우이다.
4. 2. Comparison with other baselines
다른 baseline과 비교를 해보면 Table 4와 같다. Table 4는 다른 prompting 방식을 사용하여 MultiArith와 GSM8K의 수행 능력을 나타낸다. Zero-shot과 Zero-shot CoT를 비교해 보면 확연한 차이가 나는 것을 알 수 있다. 물론 few-shot CoT보다는 성능이 낮지만, standard few-shot의 성능과 차이가 많이 나는 것을 보아 zero-shot CoT의 추론 능력이 뛰어남을 볼 수 있다.
4. 3. Does model size matter for zero-shot reasoning?
본 논문은 zero-shot CoT도 model 크기에 영향을 받을지 실험하였다. Figure 4는 이에 대한 실험 결과를 보여준다. 확실히 standard zero-shot보다 zero-shot CoT가 model size에 영향을 많이 받는 것을 볼 수 있다. 모델이 커질수록, 특히 100B 이상의 모델일수록 performance gap이 크다. 이는 이전 few-shot CoT의 실험 결과와 비슷하다
4. 4. Error Analysis
zero-shot CoT의 error에는 어떤 error가 있는지 prompting과 output을 직접 조사하였다. 분석 결과 zero-shot CoT에서 많이 나타나는 오류는 2가지로, one unnecessary step error와 reasoning is not started였다. 반대로 few-shot CoT는 zero-shot CoT가 나타내는 오류에는 강했지만, 3항 이상 연산이 나오면 틀리곤 하였다.
4. 5. How does prompt selection affect Zero-shot-CoT?
본 논문에서는 zero-shot CoT의 prompt에 성능 영향이 미치는지를 알아보고자 하였다. 본 논문의 introduction에서는 "Let's think step by step"의 한 가지 prompt만 이야기했다. 이외의 다른 prompt를 사용했을 때의 성능은 Table 6에서 나타낸다.
세 가지 카테고리로 나누어 prompt를 생성하였는데, 이는 각각 instructive, misleading, irrelevant이다. 당연하게도 misleading과 irrelevant에서는 정확도가 20%도 못 미치는 결과를 나타낸다.