learningAI
article thumbnail

지난 CoT 리뷰에 이은 zero-shot CoT를 리뷰해보겠다! CoT는 few-shot prompting을 통해 모델에게 차근차근(step-by-step) 생각할 수 있는 능력을 부여하는 간단한 방법을 통해 LLM이 고전하는 문제에서 엄청난 성능을 보여줬다. 해당 리뷰에서 다룰 논문은 zero-shot 환경에서의 CoT를 다루며, 단순히 "Let's think step by step"이라는 문장을 추가함으로써 CoT를 구현한다. 비록 few-shot CoT 보다는 뒤쳐지는 성능을 보여주지만, 기본 zero-shot과 비교하여 훨씬 좋은 성능에 도달한다. 

 

Introduction

최근 모델 사이즈 scaling은 NLP 연구의 핵심 주제가 되었다. 이러한 LLM의 성공적인 결과는 zero-shot 및 few-shot method를 사용하여 이뤄낼 수 있었다. Zero-shot과 few-shot은 간단한 prompting을 통해 사전훈련된 모델을 다양한 task에 적용할 수 있게 하는 엄청난 method이다. 따라서 최근에는 prompt 텍스트를 어떻게 세팅할 것인지에 대한 연구도 활발히 이뤄지고 있다.

 

LLM은 많은 task에서 성공적인 결과를 보여준다고는 하지만, 여전히 단계적인 step을 통해 문제를 해결할 것을 요구하는 system-2(ex. math problems) task에서는 처참한 성적을 보여주고는 한다... 이러한 문제를 해결하기 위해 CoT 논문에서는 모델에게 여러 step을 통해 생각하는 능력을 부여했으며, 이는 few-shot prompting method를 사용해 구현되었다. 결과적으로 CoT method는 기존에 좋지 못한 성능을 보였던 task에서 엄청난 폭의 추론 능력 향상 결과를 보여줬다.

 

본 논문에서는 기존 CoT처럼 few-shot prompting을 사용하는 것이 아닌 zero-shot prompting을 통해 chain-of-thought(CoT)를 구현했다. Zero-shot 환경에서 구동되기 때문에 기존 CoT에서처럼 입력으로 예시를 줄 필요가 없게 된다. 이렇게 매우 간단한 method를 사용하지만, MultiArith, GSM8K, AQUA-RAT, SVAMP 등의 task과 비교하여 기존의 zero-shot에서 크게 향상된 추론 능력을 가진다.

 

Zero-shot CoT

본 논문에서는 zero-shot 템플릿 기반의 zero-shot CoT를 제안한다. 이전에 언급했듯이 step-by-step example를 요구하는 기존의 CoT와 달리 zero-shot 환경에서 구동되므로 간단한 prompt만으로 step-by-step 추론이 가능하다. 따라서 하나의 템플릿으로 여러 task에서의 CoT를 구현할 수 있게 된다.

 

Two-stage prompting

기존의 CoT는 단계별로 생각하는 능력을 부여하기 위해 예시를 줬지만, zero-shot CoT는 step-by-step thinking을 어떻게 구현했을까? 논문에서는 두 가지 추론 단계를 거쳐 최종 답변을 출력하는 방법을 통해 아래 그림과 같이 zero-shot CoT를 가능하게 했다.

 

간단히 입력의 마지막에 "Let's think step by step."이라는 프롬프트를 추가하는 것만으로 모델은 문제를 작은 단계로 쪼갤 수 있게 된다. 매우 간단하지만 zero-shot CoT의 핵심 개념이다. 다만, 해당 프롬프트를 통해 최종 답변을 도출해내지 못하기 때문에, 2번째 추론 단계에서 "The answer is"와 같은 형식의 텍스트를 추가해서 모델이 최종 답변을 계산하도록 유도한다.

 

Experiment

실험 과정에서는 CoT method를 몇가지 reasoning task(arithmetic, commonsense, symbolic, etc.)에 속한 12가지 데이터셋을 사용해 평가했다. 총 17개의 모델이 평가되었으며, Instruct-GPT3, original GPT3, PaLM 등의 모델에서 zero-shot CoT를 적용한 실험이 진행되었다. 각 task에서 사용된 CoT prompt는 아래 표와 같다.

 

Zero-shot CoT와 zero-shot의 성능 비교표는 아래에서 확인할 수 있다.

 

Zero-shot CoT는 Commonsense reasoning task를 제외한 task에서 성능이 엄청나게 좋아진 것을 확인할 수 있다. SingleEq와 AddSub은 multi-step 추론을 요구하지는 않지만, 비슷하거나 더 좋은 결과를 보여준다. Commonsense reasoning task에서 성능 향상이 되지 않은 이유를 추측하기를, 기존 CoT에서와 같이 작은 모델에서는 CoT가 좋은 영향을 미치지 못할 수 있다는 의견을 제시했다.

 

위의 그림은 각 모델의 크기에 따라 zero-shot CoT의 성능 변화를 그래프로 나타낸 것이다. CoT를 적용하지 않은 모델은 성능 변화가 없거나 미미한 수준이다. 그에 비해 zero-shot CoT를 적용한 모델은 사이즈가 커짐에 따라 성능이 수평적으로 움직이다가 급격히 상승하는 것을 볼 수 있다. 따라서 모델이 작으면 CoT를 적용했을 때 매우 적은 성능 변화가 있는 것을 알 수 있고, CoT 효과를 보기 위해서는 모델 크기가 충분히 커야 한다는 추론이 성립한다.

 

논문에서는 zero-shot CoT의 추가적인 이해를 위해 모델이 틀린 답을 내놓았던 예시를 분석한다. 랜덤으로 틀린 추론 예시를 추출해 관찰한 결과, commonsense reasoning task에서는 최종 답이 틀리더라도 대체로 중간 논리는 유연하고 논리적이었으며, 종종 하나의 답변을 고르지 못해 여러 답변을 출력하기도 했다. Arithmetic task에서는 모델이 추론 과정 중에 정답을 언급하지만, 불필요한 추가 계산을 해서 오답을 출력하는 경우가 많이 있었으며, 때론 추론을 시작하지 않고 입력 문장을 계속 반복 출력하기도 했다.

 

Conclusion

본 논문에서 제시한 zero-shot CoT method는 기존의 CoT를 더욱 간단하게 해서 모델에게 multi-step 추론 능력을 부여했으며, "Let's think step-by-step"을 대체할 수 있는 프롬프트를 탐구할 수 있는 길을 열어주었다. 고작 한줄의 문장이 모델의 성능을 끌어낼 수 있는 것이 매우 인상적인 논문이며, appendix에서 추가적인 실험 결과를 확인할 수 있다. 

 

논문

https://arxiv.org/abs/2205.11916

profile

learningAI

@YyunS

인공지능 공부하는 학생입니다!