[22′ NeurIPS] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

This entry is part 8 of 13 in the series Language Model

1. 들어가며

대규모 언어 모델(LLM)의 발전은 인공지능 분야에서 끊임없는 혁신을 이루어왔습니다. GPT-3와 같은 모델들이 다양한 자연어 처리 작업에서 인간과 유사한 수준의 성능을 보여주고 있음에도 불구하고, 복잡한 산수 추론이나 상식 추론과 같은 문제를 해결하는 데에는 여전히 한계가 있었습니다. 이러한 문제를 극복하기 위해 제안된 ‘Chain of Thought’ 방식은, 복잡한 추론 문제 해결을 위한 언어 모델의 새로운 사용 방법을 탐색합니다. 이번 글에서는 2022년 NeurIPS에 발표된 Chain of Thought 논문을 리뷰하며, 이 방식이 어떻게 기존의 한계를 극복하고, 언어 모델을 사용한 복잡한 추론 문제 해결에 새로운 지평을 열었는지 탐구해보고자 합니다.

Chain of Thought 방식의 핵심은 문제 해결 과정에서 모델이 중간 단계의 추론을 명시적으로 생성하도록 하는 것입니다. 이 접근법은 모델이 보다 복잡한 문제를 이해하고 해결하는 데 도움을 주며, 모델의 추론 과정을 사용자에게 투명하게 만듭니다. 본문에서는 이 방식의 구체적인 메커니즘과 효과적인 이유, 그리고 다양한 추론 문제에 대한 실험 결과를 자세히 살펴보겠습니다.

실험 결과는 Chain of Thought 방식이 산수 추론, 상식 추론, 기호 추론 등 다양한 영역에서 기존 방법 대비 우수한 성능을 보이며, 특히 모델 사이즈가 클수록 성능 향상 폭이 커진다는 것을 보여줍니다. 이러한 결과는 Chain of Thought 방식이 언어 모델의 추론 능력을 크게 향상시킬 수 있는 강력한 도구임을 입증합니다.

이번 리뷰를 통해, Chain of Thought 방식이 언어 모델을 활용한 복잡한 추론 문제 해결에 있어 어떤 중요한 역할을 할 수 있는지에 대한 통찰을 제공하고자 합니다.

2. 기존 방법의 문제점

본격적으로 Chain of Thought 방법을 알아보기 전에, 저자들은 어떠한 문제점을 해결하고 싶어했는지 기존 방법의 문제점을 살펴보겠습니다. 2022년 Chain of Thought가 발표된 당시 LLM은 아주 빠른 속도로 Scale Up 하며 성능을 발전시키고 있었습니다. 특히 ChatGPT의 등장은 실제 어플리케이션으로서의 LLM의 역할에 확신을 심어주었죠.

하지만 이렇게 급격하게 발전하고 있는 당시의 LLM에도 한계는 존재했는데요. 바로 아주아주 못하는 분야가 존재한다는 것이었습니다. 예를 들어 수학 추론 (Arithmetic Reasoning), 상식 추론 (Common Sense Reasoning), 기호 추론 (Symbolic Reasoning) 등이 대표적이었죠. 생각해보면 LLM이 이러한 문제들을 잘 풀지 못하는건 당연해보입니다. 예를 들어 ChatGPT로 대표되는 GPT 시리즈를 살펴볼까요? 이들은 공통적으로 그저 다음 단어를 예측하도록 학습했습니다. 그리고 이들이 학습한 데이터는 인터넷상에서 모을 수 있는 ‘문장’ 들이었죠. 사람으로 비유해보면 평생 문학만 공부한 문학 전문가에게 미적분 문제를 풀라는 꼴과 같은 상황인거죠.

이렇게 문장에서의 다음 단어를 예측하도록 학습한 LLM들이 못 푸는 영역이 존재함에도 불구하고, LLM을 사용하여 이러한 문제들을 정복하기 위한 연구는 활발히 진행되어 왔습니다. 특히 GPT3에서는 몇몇 예시를 알려주는 In Context Learning 방법을 활용하면 대부분의 문제에서 기존 LLM의 성능을 크게 올릴 수 있음을 밝혔습니다.

그림1. Few Shot Standard Prompting 예시
그림1. Few Shot Standard Prompting 예시

위 그림은 GPT3 방식의 In Context Learning 예시를 보여주고 있습니다. LLM에게 주어진 문제는 23개의 사과중 20개를 사용하고 6개를 더 사면 남아있는 사과의 개수를 물어보는 것이죠. 전형적인 산수 문제인데요. 앞서 언급했듯, LLM에게 이렇게 질문하면 LLM 대답의 정확도는 매우 낮습니다. 애초에 LLM은 산수 계산 방법을 배운적이 없기 때문이죠. 그런데 문제를 주기 전, 하나의 예시를 주는 모습을 볼 수 있습니다. 테니스공이 5개가 있는데, 두 캔의 테니스볼을 더 사면 몇개가 되는지를 물어보고, 이 대답이 11개임을 알려주는거죠. 이렇게 예시를 통해 LLM은 이번에 풀어야 하는 문제에 대한 대략적인 정보를 얻을 수 있었습니다.

3. Chain of Thought

이렇게 In Context Learning 방법을 사용하면 여러 Task에서 LLM의 성능을 크게 높일 수 있습니다. 하지만 산수 계산과 같은 문제에서는 여전히 어려움을 겪었죠. 그렇다면 Chain of Thought Prompting 방식은 기존 Few Shot (In Context Learning) 방식과 무엇이, 어떻게 다를까요?

Chain of Thought Prompting은 Few Shot Learning 방식에 해당합니다. 문제를 풀기 전 비슷한 문제 몇개를 예시로 알려주죠. 다만 기존 Few Shot과 다른 점은 ‘풀이 방법’을 알려준다는 점입니다. 이러한 ‘풀이 방법을’ 생각의 연쇄 과정 (Chain of Thought) 라고 표현하고 있죠. 예시를 통해 살펴보는게 가장 쉬운데요.

그림2. Chain of Thought Prompting 예시
그림2. Chain of Thought Prompting 예시

위 그림은 Chain of Thought Prompting 예시를 보여주고 있습니다. 먼저 위의 Model Input은 모델에게 들어간 입력 Prompt이고요, 아래 Model Output은 이에 대해 모델이 낸 출력 결과입니다. 이전 챕터의 GPT3 Few Shot 예시와 동일한 문제인데요. 한 가지 다른 점은 Few Shot을 제공해줄 때 ‘문제 풀이 과정’을 설명해주고 있다는 점입니다. 그림에서는 파란 형광색 표시 부분입니다. 그리고 재미있는건 이렇게 ‘풀이 과정’ 을 같이 제공해주자, 대답을 할때도 예시로 봤던 풀이과정과 유사한 과정을 거쳐 대답을 한다는거죠. 이렇게 낸 대답은 최종적으로 정답이었구요.

저자들은 이러한 Chain of Thought Prompting 방식은 Reasoning 과정에서 사용하기에 몇 가지 장점이 있다고 주장합니다.
첫 번째 장점은 문제를 여러 중간 단계로 분해해준다는 점입니다. 이는 어려운 하나의 문제를 쉬운 여러개의 문제로 분해해준다는 의미가 되고, 결국 최종 정답을 맞출 가능성을 올려줍니다.
두 번째 장점은 해석 가능한 대답을 내준다는 점입니다. 해석 불가능하다는 특성은 기존 딥러닝 연구의 가장 큰 난제 중 하나였는데요. 기존 딥러닝 모델은 정답은 잘 맞추더라도, 그러한 대답을 한 원인을 찾기 힘들었었죠. 하지만 Chain of Thought 방식을 활용하면 대답을 하면서 그 근거를 다 서술해줍니다. 덕분에 우리는 인과관계를 추론하기 쉬워졌죠.
세 번째 장점은 수학, 상식 추론, 기호 추론 등에서 유용하다는 점입니다. 이러한 문제들은 기존 LLM에서는 난제로 손꼽히던 문제들이었죠. 뿐만 아니라 사람이 언어를 사용해서 풀 수 있는 문제라면, 거의 대부분 Chain of Thought 방식으로 풀 수 있습니다.
네 번째 장점은 Few Shot Prompting 방식이기에 적용하기 쉽다는 점입니다. Chain of Thought Prompting은 본질적으로 GPT에서 제안한 Few Shot 방식과 같습니다. 다만 더 자세한 Few Shot을 제공해준다는 차이가 있을 뿐이죠.

4. Arithmetic Reasoning

이제부터는 기존 LLM의 난제로 꼽혔던 Arithmetic Reasoning, Common Sense Reasoning, Symbolic Reasoning 등의 문제에 Chain of Thought를 적용한 실험 결과를 살펴보겠습니다.

먼저 Arithmetic Reasoning 실험을 살펴보겠습니다. 앞서 살펴본 예시도 수학 문제였는데요, 동일한 방식의 Chain of Thought Prompting을 사용할겁니다.

그림3. Arithmetic Reasoning Chain of Thought Prompting 예시
그림3. Arithmetic Reasoning Chain of Thought Prompting 예시

위 그림은 이번 실험에 사용한 Chain of Thought Prompting 예시를 보여주고 있습니다. 수학 문제를 질문으로 주고, 문제 풀이 과정과 그 정답을 알려주는 모습을 볼 수 있습니다.

4-1. 실험 결과

그림4. Arithmetic Reasoning 실험 결과
그림4. Arithmetic Reasoning 실험 결과

위 그림은 이렇게 Chain of Thought와 Standard Prompting을 사용한 성능을 비교하는 그래프입니다. 우리는 이 그래프를 통해 세 가지 교훈을 얻을 수 있습니다.

첫 번째는 Chain of Thought는 작은 모델에서는 효과가 적으며 큰 모델일수록 효과적이라는 사실입니다.
두 번째는 Chain of Thought는 문제가 복잡할 수록 더 효과적이라는 사실입니다.
세 번째는 GPT3, PaLM 등에서는 Chain of Thought를 사용하면 Supervised Learning 방식의 SOTA에 필적한 성능을 보여준다는 사실입니다.

4-2. 결과 분석

왜 그럴까요? 왜 Chain of Thought 방식을 사용하면 수학 문제를 잘 못 풀던 LLM이 수학 문제를 잘 풀게 되는걸까요? 이를 분석하기 위해 저자들은 Chain of Thought 를 사용한 대답 중 오답을 분석해봤습니다.

그 결과 오답의 46%는 사소한 오류로 최종 정답을 내지 못한 경우였는데요. 예를 들어 풀이 과정은 잘 따라 갔으나 중간에 단순 계산 실수가 발생한 경우가 있습니다.

그림5. 단순 계산 실수한 경우 예시
그림5. 단순 계산 실수한 경우 예시

위 그림을 보면 풀이 과정은 잘 맞았지만 중간 단순 연산이 틀린 모습을 볼 수 있습니다.

또한 나머지 54%는 풀이 과정에 오류가 있는 케이스였습니다.

그림6. 풀이 과정에 오류가 있는 경우 예시
그림6. 풀이 과정에 오류가 있는 경우 예시

위 풀이 과정을 보면 문제를 전혀 잘못 이해한 모습을 볼 수 있습니다. 금화가 은화보다 30개가 많다고 했는데 은화 개수를 구하기 위해 전체 코인 개수에서 30개를 빼는 실수를 했죠.

한편 정답을 잘 맞춘 대답도 분석해봤는데요. 이 대답들은 거의 대부분 저자가 의도했던 풀이 과정을 잘 따라 정답까지 추론해냈다고 합니다.

결국 ‘Chain of Thought가 수학 문제를 푸는데에 있어서 왜 유용한 것인가?’ 라고 묻는다면 ‘한번에 풀려고 하지 않고, 중간 과정을 따라 차근 차근 풀기 때문’ 이라고 정리할 수 있겠습니다. 이건 마치 초등학생 아이들에게 수학을 가르칠때와 비슷한 느낌을 주는데요. 우리도 생각해보면 어린시절 수학 문제를 풀 때 한번에 정답을 내려고 암산을 하면 자주 틀렸잖아요? 그러다가 욕심을 버리고 차근차근 풀이 과정을 써가며 풀다 보면 실수가 적어지고 성적이 많이 향상되죠. Chain of Thought는 초등학생 LLM에게 이렇게 풀이과정을 써가며 푸는 방법을 가르치는것이라고 보면 되겠습니다.

또한 저자들은 PaLM 62B와 PaLM 540B를 동일한 조건에서 분석해보았는데요. PaLM 540B 모델은 확실히 풀이 과정을 빼먹는다든가, 문제를 잘못 이해하는 경우가 적었다고 합니다. 따라서 모델의 크기가 커질수록 언어 이해 능력이 좋아지고, 이에 따라서 Chain of Thought 방식에서도 영향을 받는다고 볼 수 있는거죠.

4-3. Robustness of CoT

그럼 이런 생각이 들 수 있잖아요? 결국 Chain of Thought는 사람이 ‘풀이 과정’을 알려주는건데요, 이 ‘풀이 과정’을 얼마나 잘 알려주는지에 따라 성능이 많이 달라지지 않을까요?

그림7. Annotator에 따른 성능 비교
그림7. Annotator에 따른 성능 비교

저자들은 이를 분석하기 위해 총 세명의 다른 사람이 Chain of Thought Prompt를 제작해 성능을 비교해봤는데요. 위 그래프를 보면 결과에 약간의 차이는 있지만, 누가 Chain of Thought Prompt를 제작하더라도 Standard Prompting 성능보다는 개선되는 모습을 볼 수 있습니다. 따라서 Chain of Thought Prompt 방식은 비교적 Robust 한 방식이라고 할 수 있죠.

5. Common Sense Reasoning

다음으로 살펴볼 실험은 상식 추론 (Common Sense Reasoning) 입니다. LLM이 수학 계산을 못하는건 납득이 되는데요. 산수 계산 방법을 학습하지는 않았으니까요. 그런데 상식 문제를 LLM이 잘 못푼다는건 언듯 생각하면 납득이 가질 않습니다. 그래서 상식 추론에 해당하는 벤치마크 데이터셋을 살펴봤는데요. 여기서 말하는 상식이라는건 단번에 대답이 나오는 문제가 아닙니다. 예를 들어 ‘한국의 수도가 어디야?’ 의 질문에는 단번에 ‘서울’ 이라고 대답할 수 있죠. 이번 실험에서 살펴볼 상식 추론 문제는 이렇게 단번에 대답할 수 있는 문제가 아닌 여러 단계의 고민을 거쳐야만 대답할 수 있는 문제들입니다. 예를 들어 이렇게 질문하는거죠. ‘진주는 물에 가라앉을까?’ 바로 대답이 떠오르지는 않는데요. 이 질문에 대답을 하려면 우선 진주의 밀도를 생각해봐야겠죠. 그리고 나서야 비로소 진주가 물에 가라앉을지 떠오를지를 대답할 수 있습니다.

이런 식으로 구성된 상식 추론 벤치마크에는 CSQA(상식), StrategyQA (Multi hop strategy), Data (날짜 계산 문제), Sports (yes/no 로 대답하는 문제), SayCan (Robot Action과 질문을 매칭하는 문제) 등이 있습니다. 실험에 사용한 Chain of Thought Prompt를 예시로 보면 더욱 이해하기 쉬운데요.

그림8. Common Sense Reasoning Benchmark 예시
그림8. Common Sense Reasoning Benchmark 예시

위 그림은 지금까지 설명한 다양한 상식 추론 문제에서 사용한 Chain of Thought Prompt 예시를 보여주고 있습니다. 공통적으로 질문에 대한 대답을 구하기 위해 여러 단계의 연산을 거쳐야 함을 알 수 있습니다.

그림9. Common Sense Reasoning 실험 결과
그림9. Common Sense Reasoning 실험 결과

위 그림은 이렇게 다섯가지 상식 추론 벤치마크 데이터셋에 대한 Chain of Thought Prompting과 Standard Prompting 성능 비교 그래프입니다. 위 결과로부터 우리는 두가지 사실을 발견할 수 있습니다.
첫 번째는 모든 벤치마크 데이터셋에서 모델 사이즈가 커질수록 (Scale Up) 성능이 좋아진다는 점입니다.
두 번째는 이러한 성능 향상 폭은 Chain of Thought에서 더욱 크다는 점입니다.

따라서 이번 실험 결과를 통해 우리는 Chain of Thought Prompting은 상식 추론 문제에서도 굉장히 효과적이며, 또한 모델 사이즈가 클 수록 그 효과가 더 크다는 결론을 내릴 수 있습니다.

6. Symbolic Reasoning

다음으로는 기호 추론 (Symbolic Reasoning) 실험을 살펴보겠습니다. 기호 추론 실험에서는 두가지 벤치마크 데이셋을 사용했습니다.
첫 번째는 Last Letter Concatenation 문제입니다. 각 단어의 마지막 알파벳만 이어 붙이기 문제입니다.
두 번째는 Coin Flip 문제입니다. 동전의 상황을 말로 설명해주고 동전이 뒤집혔는지 맞추는 문제입니다.
실험에 사용된 Chain of Thought 예시를 보면 더욱 쉽게 이해할 수 있습니다.

그림10. Symbolic Reasoning Benchmark 예시
그림10. Symbolic Reasoning Benchmark 예시

위 그림은 Last Letter Concatenation과 Coin Flip 문제에 사용된 Chain of Thought 예시를 보여주고 있는데요.
Last Letter Concatenation 문제에서는 Lady Gaga의 마지막 알파벳인 y와 a만을 합쳐서 ya를 만드는 모습을 볼 수 있습니다.
Coin Flip 문제에서는 코인을 한번은 뒤집고, 한번은 안 뒤집었을 때 코인의 상태를 물어보고 있죠.
이번 문제들 역시도 질문에 대해 곧바로 대답을 할 수는 없고, 문제를 처음부터 따라가며 쉬운 연산들을 수행해 이 결과로 최종 대답을 해야 하는 문제들임을 알 수 있습니다.

그림11. Symbolic Reasoning 실험 결과
그림11. Symbolic Reasoning 실험 결과

위 그림은 이렇게 두개 벤치마크에 대해 Chain of Thought와 Standard Prompting 방식의 성능을 비교한 그래프입니다. 이전 실험들과 달리 In Domain과 OOD(Out Of Domain)으로 나누어 실험을 진행했는데요. 이는 문제의 특성상 In Domain 문제에서는 사실상 완벽한 솔루션을 알려주기 때문에 문제가 너무 쉬워지기 때문입니다. 실제로 실험 결과를 보면 Chain of Thought의 경우 거의 100% 성능을 보여주고 있죠.

위 실험 결과를 통해서도 우리는 동일한 결론을 도출할 수 있습니다. 이전 실험들과 마찬가지로 LLM은 Chain of Thought Prompting을 사용하면 성능이 크게 향상됩니다. 또한 모델 사이즈가 커질수록 성능은 더 좋아집니다. 그리고 이 성능 향상 폭은 모델 사이즈가 커질수록 더욱 커지게 됩니다.

7. 장점

지금까지 기존 LLM이 약한 모습을 보였던 세가지 유형의 문제에 대해 Chain of Thought Prompting의 효과에 대해 살펴봤습니다. 이러한 실험 결과를 통해 Chain of Thought Prompting의 다양한 장점을 정리해보겠습니다.

먼저 첫 번째 장점은 복잡한 추론 문제에 대한 해결 방법을 제안한 것입니다. 이 논문은 언어 모델이 단순한 질문에 대한 답변뿐만 아니라, 복잡한 추론을 요구하는 문제를 해결할 수 있음을 보여줍니다. Chain of Thought 접근 방식을 통해 모델은 문제 해결 과정에서 필요한 중간 단계의 추론을 명시적으로 생성하며, 이를 통해 최종 답변을 도출합니다. 이는 언어 모델의 추론 능력을 크게 향상시키는 동시에, 모델이 더 복잡한 문제를 이해하고 해결할 수 있게 합니다.

두 번째 장점은 모델의 추론 과정을 해석할 수 있다는 점입니다. Chain of Thought 방식은 모델이 어떻게 답변에 도달했는지를 보여주는 중간 단계의 추론을 제공함으로써, 모델의 추론 과정에 대한 투명성을 높입니다. 이는 사용자가 모델의 결정 과정을 이해하고 신뢰할 수 있게 하며, 잠재적인 오류나 편향을 식별하는 데 도움을 줍니다.

세 번째 장점은 인공지능 연구의 새로운 방향 제시한다는 점입니다. Chain of Thought 접근 방식은 인공지능 연구에 새로운 방향을 제시합니다. 복잡한 문제 해결을 위한 모델의 추론 과정을 명시적으로 모델링하는 이 방법은, 추후 연구에서 모델의 추론 능력을 더욱 발전시키고, 다양한 응용 분야에 적용할 수 있는 새로운 아이디어와 기술을 탐구하는 기반이 됩니다.

네 번째 장점은 다양한 응용 분야 확장할 수 있다는 점입니다. Chain of Thought 방식은 수학 문제 해결, 공통 상식 질문, 복잡한 논리적 추론 등 다양한 분야에서의 언어 모델의 활용 가능성을 확장합니다. 이는 언어 모델을 교육, 과학 연구, 기술 지원 등 보다 넓은 범위의 응용 분야에 효과적으로 적용할 수 있는 길을 열어줍니다.

8. 한계

이렇게 많은 장점을 가진 Chain of Thought Prompting에도 한계는 존재하는데요.

첫 번째 한계는 올바른 추론 경로를 보장할 수 없다는 점입니다. Chain of Thought Prompting 방식을 사용하기 위해서는 Few Shot Sample을 사람이 직접 만들어줘야 하는데요. LLM은 이때 만들어진 예시를 참고하여, 새로운 문제를 풀 때도 예시로 받은 ‘풀이 과정’을 따라가며 연산하게 되죠. 그 말은 예시로 받은 풀이 과정이 틀렸다면, 이에 따른 LLM의 답변도 틀릴 가능성이 매우 높다는 의미가 됩니다.

두 번째 한계는 Fine Tuning의 어려움입니다. Chain of Thought 방식은 결국 사람이 직접 답변을 만들어줘야 한다는 점에서 기존 Supervised Learning 데이터셋을 제작하는것과 동일한데요. 지금은 Few Shot 방식으로 사용하고 있지만, Fine Tuning을 위해서는 정답 데이터가 많이 필요해집니다. 이는 결국 정답 데이터 제작의 어려움 문제가 발생할 여지가 크다는 것을 의미합니다.

9. 마치며

Chain of Thought 논문 리뷰를 통해 우리는 대규모 언어 모델을 활용한 복잡한 추론 문제 해결에 있어서의 새로운 접근 방식을 탐구해보았습니다. 이 방식은 모델이 문제를 해결하는 과정에서 중간 단계의 추론을 명시적으로 생성하도록 함으로써, 복잡한 산수 추론, 상식 추론, 기호 추론 등의 문제에 대해 놀라운 성능 향상을 보여주었습니다. 더욱이, 이러한 접근법은 모델 사이즈가 클수록 그 효과가 더욱 증대되는 것으로 나타났으며, 다양한 Annotator들의 prompting에 대해서도 강건함을 입증했습니다.

이 논문의 탐구는 단순히 언어 모델의 성능 향상에 그치지 않습니다. Chain of Thought 방식은 모델의 추론 과정을 투명하게 만들어, 인공지능 시스템의 결정 과정을 사용자가 이해하기 쉽게 합니다. 이는 인공지능의 신뢰성과 책임성을 높이는 데 중요한 기여를 합니다. 그러나 올바른 추론 경로를 항상 보장할 수 없으며, fine-tuning에 어려움이 있다는 한계도 함께 지적되었습니다.

이러한 한계에도 불구하고, Chain of Thought 방식은 인공지능 연구와 응용 분야에 새로운 가능성을 열어주었습니다. 이는 향후 언어 모델의 발전 방향과 인공지능 기술의 미래 응용 가능성에 대한 중요한 통찰을 제공합니다. 앞으로 이 방법론이 어떻게 발전하고, 인공지능 분야에 어떤 새로운 기회를 제공할지 기대가 됩니다. Chain of Thought 논문이 제시하는 새로운 접근 방식은 앞으로의 인공지능 연구와 응용에 있어 중요한 영감을 제공할 것입니다.

10. 참고자료

  1. Chain of Thought 논문
  2. GPT3 논문 리뷰
Series Navigation<< [21′ IJCNLP] Prefix-Tuning: Optimizing Continuous Prompts for Generation[20′ NeurIPS] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks >>
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top