We explore how generating a chain of thought—a series of intermediate reasoning
steps—significantly improves the ability of large language models to perform
complex reasoning. In particular, we show how such reasoning abilities emerge
naturally in sufficiently large language models via a simple method called chain-of-thought prompting, where a few chain of thought demonstrations are provided as
exemplars in prompting.
Experiments on three large language models show that chain-of-thought prompting
improves performance on a range of arithmetic, commonsense, and symbolic
reasoning tasks. The empirical gains can be striking. For instance, prompting a
PaLM 540B with just eight chain-of-thought exemplars achieves state-of-the-art
accuracy on the GSM8K benchmark of math word problems, surpassing even
finetuned GPT-3 with a verifier.
거대 언어모델의 성능을 높이는 여러 방법 중 프롬프트를 활용하는 방법에 관심이 생겼고 실제로 성능향상을 보인 좋은 방법론이 있다고 해서 흥미가 생겼다.
기존의 언어모델(gpt-3)가 잘 해결하지 못한 ‘추론’ task에서의 성능을 ‘Chain-of-Thought Prompting’ 이라는 방법으로 향상시켰다. 여기서 추론 task란 산술, 상식, 상징적인 추론과 같은 task들을 말한다. 기존엔 추론 성능을 올리기 위해 거대한 데이터셋을 추가하고 모델 크기를 늘렸으나 유의미한 효과를 보지 못했다고 한다.
거대 언어모델이 해결할 수 있는 여러 문제들 중 유독 추론 task에 약세를 보인다. 인간이 문제를 풀 때 풀이과정을 거쳐가며 최종적인 답안을 내듯이 언어모델이 인간의 사고방식을 비슷하게 흉내낸다면 그 속에서 생각치못한 해답과 가치를 발굴해낼 수 있을 것이다.
기존 언어모델들은 처음부터 중간단계의 자연어를 생성하는 방법을 고안하거나 pre-trained된 모델을 fine tuning하거나, neuro-symbolic 이라는 방법을 사용했다.
또한 프롬프트를 활용한 few-shot learning이 학습 단에서 어느정도 이루어졌다고 한다. 이는 각 task마다 따로 언어모델을 학습시키는 것이 아닌 몇 개의 input-output 예제들을 통해 모델을 ‘prompt’하는 것을 의미한다.
언어모델이 추론문제에서 잘 작동하지 않고, 모델 크기를 늘려도 향상되지 않던 두 한계를 극복하기 위해 input과 output 사이에 chain of thought 라는 일종의 secondary window를 제공하여 reasoning step을 직접 추가해주었다. 이를 통해 언어 모델이 몇 개 안되는 예제들을 통해 추론 능력을 훨씬 상승시킬 수 있는 간단하고 강력한 방법을 제안했다.
일반적으로 우리가 문제를 풀때 풀이과정을 단계적으로 적어가며 최종 답변으로 향하는 과정을 학습과정에 담았다는 것이 핵심이다.
“After Jane gives 2 flowers to her mom she has 10 … then after she gives 3 to her dad she will have 7…so the answer is 7.”
Chain-of-Thought prompting은 거대언어모델의 multi-step 추론을 유도하는 아주 간단한 메커니즘이다. 3개의 분야에서 좋은 성능 향상과 robust함을 보였고 단순히 기존 언어모델에 prompt를 추가함으로써 이룩한 결과이다.
이는 우리의 표준적인 언어모델의 성능이 저평가되어있고 더 향상될 여지가 있음을 보여준다. 또다른 방식이나 모델의 크기에 따라 어떻게 변화될지 모른다.
하지만 인간의 사고방식을 모델에 적용해본 것이 실제로 모델이 추론했음을 보장하진 않는다. 또한 정답을 무조건 맞추지 못하고 모델 크기에 따라 효과가 다르므로 범용성이 뛰어나진 않는다. 추론을 위한 대표적인 샘플들을 만드는 비용 또한 고려해봐야 할 것이다.
인간의 사고방식을 언어모델에 적용시키고자하는 시도가 굉장히 놀라웠다. 마치 실제로 생각하는 것처럼 느껴지는 것만 같은 결과들을 보면서 거대 언어모델이 가지고 있을 잠재력이 어디까지인지 더 궁금해졌다.