https://arxiv.org/pdf/2201.11903.pdf
Abstract
저자는 일련의 imtermediate reasoning step인 'chain of thought' 를 어떻게 만들어내는지에 대해 탐구하고, 복잡한 추론을 수행하는 Large language models의 성능을 어떻게 향상시키는지에 대해 탐구한다.
특히, 'chain of thought prompting'이라는 간단한 방법을 이용했을 때 large language model이 어떻게 추론 능력을 충분히 향상시키는지 보여준다.
세가지의 large language model에 대한 실험은 chain of thought prompting이 arithmetic, commonsense, symbolic reasoning tasks와 같은 분야에서 성능이 개선됨을 보여주었다.
1. Introduction
language model의 size를 확장하는 것은 성능을 향상시킬 수 있고, sample efficiency를 향상시킬 수 있다는 benefit이 존재하였다.
하지만 model size를 확장하는 것은 arithmetic, commonsense, symbolic reasoning과 같은 일부 task에서 높은 성능을 기대하기에는 충분하지 않다는 것이 증명되었다.
이 논문에서는 large language model의 추론능력이 어떻게 다음과 같은 간단한 method에 의해 unlocked되는지 탐구한다.
첫번째로, arithmetic reasoning 기술은 최종 답변을 얻을 수 있는 근본적인 이유를 만들어내는데에 이점이 있다.
두번째로, large language model은 prompting을 이용한 in-context few-shot의 prospect를 제공한다.
하지만 위와 같은 idea는 몇가지의 한계점을 갖고 있다.
rationale-augmented training과 fine-tuninig 방법에서는 high quality의 rationales를 만들어 내는데에 비용이 매우 많이 든다.
또한 전통적인 few-shot prompting의 경우 language model의 size를 크게하더라도 성능이 크게 개선되지 않음을 확인하였다.
이 논문에서는 그것들의 한계점을 피하면서 강점들을 결합할 수 있는 방법을 제안한다.
특히 여기서는 <input, chain of thought, output> triples로 구성된 prompt가 주어졌을 때, reasoning task에서 few-shot prompting을 수행하는 경우의 language model의 ability를 탐구한다.
chain of thoughts는 최종 output으로 연결되는 일련의 중간 추론단계이며 Fig 1.에서 확인할 수 있다.
2. Chain of Thought Prompting
어떤 사람이 수학문제와 같은 복잡한 추론문제를 풀어나갈 때를 생각해보자
일반적으로 문제를 intermediate step으로 분해하고, 각각의 문제들을 해결한 후에 최종 답안을 제시한다.
이 논문의 목표는 language model에 이와 비슷한 chain of thought(문제에 대한 최종 answer로 이어지는 일련의 중간 추론 단계)를 만들어 낼 수 있는 능력을 부여하는 것을 목표로 한다.
저자는 few-shot prompting에 대한 예시들이 제공된 경우에 충분히 큰 언어 모델이 chain of thought를 만들어내는 것을 확인하였다.
chain of thought prompting은 language model에서의 reasoning을 만들어내기 위한 몇가지 흥미로운 특성을 가지고 있다.
1. Chain of Thought은 원칙적으로 모델이 multi-step problems을 intermediate step으로 분해할 수 있게 해주는데,
이는 더 많은 reasoning step을 필요로 하는 problem에 추가적인 computation을 할당할 수 있다.
2. Chain of Thought은 model의 behavior에 대한 해석가능한 통로를 제공하여, 어떻게 특정 answer에 도달했는지 확인할 수 있고, reasoning path가 잘못된 곳을 찾아 디버깅할 수 있는 기회를 제공할 수 있다.
3. Chain of Thought는 math word problems, commonsense reasoning, symbolic manipulation과 같은 task에서 사용될 수 있으며, 인간들이 언어를 통해 해결할 수 있는 모든 작업에 잠재적으로 적용할 수 있다.
4. 마지막으로 Chain of Thought는 단순히 chain of thought sequence의 예시들을 few-shot prompting에 포함함으로써 충분히 큰 language model들에 적용할 수 있다.
3. Arithmetic Reasoning
3.1 Experimental Setup
Chain-of-thought prompting
이 논문에서 제안하는 prompt는 Fig 1.의 오른쪽과 같다.
3.2 Results
4. Commonsense Reasoning
commonsense reasoning은 세계와 상호작용하기 위한 핵심이며, 여전히 NLU 시스템의 범위를 벗어나는 문제이다.
prompts
여기서 제안한 approach는 Fig 1 오른쪽에 설명된 것처럼, 관련 answer에 대한 chain of thought의 few-shot prompting의 예시들을 더 많이 넣는 것이다.
대부분의 dataset에는 evaluation을 위한 split만 제공되기 때문에 저자는 직접 prompting을 위한 few-shot examplar들을 만들어냈다.
results
5. Symbolic Reasoning
symbolic reasoning은 사람에게는 간단한 문제이지만, language model에는 어려울 것이다.
저자는 chain-of-thought을 통해 language models이 standard prompting setting에서 어려운 symbolic reasoning 작업을 수행할 수 있을 뿐만 아니라, few-shot exemplar에서 보여지는 것보다 더 긴 inference-time input에 대한 length generalization을 수행할 수 있다.
Tasks
- Last letter concatenation
이 task는 이름의 단어 마지막 글자를 concat하는 task이다. (e.g., "Amy Brown" -> "yn")
이는 first letter concatenation보다 더욱 어려운 version으로 language models은 이미 chain of thought 없이도 수행할 수 있다.
저자는 인구조사 데이터에서 상의 1,000개의 이름을 무작위로 연결하여 dataset을 만들었다.
- Coin flip
이 task는 여러 사람들이 동전을 던졌을 때 동전의 최종 면이 앞면인지 뒷면인지 구별하는 task이다.
(e.g., "A coin is heads up. Phoebe filps the coin. Osvaldo does not flip the coin. Is the coin still heads up?" -> "no")
Results
댓글