[논문 리뷰] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

Seoyen·2025년 8월 8일

paper_review

목록 보기
7/10

Abstract

본 논문은 Chain of Thought (중간 단계에서 추론한 series)를 생성함으로써 여러 large language 모델의 추론 성능을 높일 수 있다는 것을 밝혀냈다.
구체적으로 CoT prompting, 즉 prompting에 몇 가지 예시 CoT를 추가하는 방식을 사용함으로써 모델의 추론 성능이 높아지는 것을 보여주었다.

본 논문은 총 3가지 large language model에 CoT를 적용해 arithmetic(수식), commonsense(상식), symbolic(상징)적인 추론 task의 성능이 높아졌다는 것을 실험했다.

1. Introduction

NLP task에서 language model의 size를 키우면 성능이 좋아지고 샘플 효율성이 높아진다는 것은 잘 알려져 있다. 다만, arithmetic, commonsense, 그리고 symbolic reasoning과 같은 챌린징한 테스크에서 모델의 사이즈만 키운다고 높은 성능을 낼 수 있다는 것은 증명되지 않았다.

본 논문에서는 두 가지 심플한 아이디어로부터 영감을 받아 LLM의 추론 능력을 높이는 방법을 탐구했다.

  1. 단순히 답만 내는 것보다 사람처럼 추론 과정을 자연어로 설명해주는 방식이 산술 추론을 향상시키는 데 도움이 된다.
    관련 선행 연구:
  • 모델이 scratch부터 학습하면서 중간단계의 자연어를 생성할 수 있는 능력을 갖추게 했다.(Ling et al., 2017)
  • 사전 학습한 모델을 fine tuning 시켰다. (Cobbe et al., 2021)
  • 자연어 대신 기계어를 사용하는 neuro-symbolic method를 사용한다.(Roy and Roth, 2015,...)

근거를 표시한 (rationale-augmented) training과 finetuning 방식의 문제점

  • 퀄리티 높은 큰 근거 set을 만드는 것이 굉장히 cost가 높다. 일반적인 input-output pair set을 만드는 것보다 훨씬 복잡한 과정으로 만들어야 하기 때문이다.
  1. 프롬프트에 몇 개의 예시만 제공해도 LLM이 문맥을 파악해 새로운 문제를 잘 푸는 방식이 가능하다.
  • 모델이 각 task마다 별도의 언어 모델을 fine tuning하는 것 대신에, task와 관련된 몇 개의 input-output 예시로 모델을 프롬프트할 수 있다.
  • 이는 간단한 question-answering tasks에서 성공적으로 작동한다.

이와 같은 전통적인 few-shot learning의 문제점

  • 추론 능력을 요하는 task들에서 안좋은 성능을 낸다.
  • 언어 모델의 사이즈가 커져도 그만큼 성능이 좋아지지는 않는다.

→ 본 논문은 위의 문제점을 피하면서 두 가지 방식을 합친다!

특히 추론 task에 대해 <input, chain of thought, output> 형태의 few-shot prompting를 진행해 언어 모델의 능력을 높이고자 한다.
Chain of thought는 최종 출력에 도달하기까지의 중간 자연어 추론 단계들의 연속이며, 우리는 이러한 접근 방식을 chain-of-thought prompting이라고 부른다.

Experiment 요약
Arithmetic, commonsense, 그리고 symbolic 추론 밴치마크에서 chain-of-thought prompting을 적용했을 때 표준 prompting보다 월등히 좋은 성능을 했다.
특히 GSM8K benchamk와 PaLM 540B with chain-of-thought prompting과 비교했을 때 후자가 훨씬 더 높은 SOTA 성능을 했다.

CoT prompting의 장점
1. 큰 학습 훈련 데이터셋을 요구하지 않음
2. 하나의 모델 체크포인트가 일반화 성능을 잃지 않은 채 여러 task에 적용될 수 있음

몇 개의 예시 자연어 데이터만으로 LLM이 큰 데이터셋으로 input-output을 학습하는 것을 자동적으로 학습할 수 있게 한다!

2. Chain-of-Thought Prompting

핵심 아이디어!
여러 단계로 구성된 추론 테스크를 여러 중간 단계들로 분해하고 각각을 해결한 다음 최종 결론을 도출하자

목표!
본 논문의 목표는 언어 모델이 유사한 Chain-of-Thought(a coherent series of intermediate reasoning steps that lead to the final answer for a problem)을 생성할 수 있는 능력을 가지도록 학습하자!

→ 본 논문에서는 충분히 큰 LLM에 몇 개의 CoT 예시들이 few-shot prompting으로 주어졌을 때, 모델이 CoT를 생성해낼 수 있는 것을 보여주었다.

CoT가 언어 모델의 추론에 도움이 되는 이유 세 가지!

  1. 여러 step으로 구성된 문제를 중간 단계들로 분해할 수 있어 더 많은 추론력이 필요한 단계에 더 많은 연산량을 할당할 수 있음
  2. CoT가 interpretable window로 작용, 즉 모델의 해석력이 올라감. (비록 답을 도출하는 데 기여하는 모델의 연산을 완전히 특성화하는 것은 여전히 미해결 문제)
  3. Math word problems, commonsense reasoning, 그리고 symbolic manipulation과 같은 task에 CoT를 적용할 수 있음. 더 나아가 인간이 언어를 통해 해결할 수 있는 모든 task에 적용할 수 있는 포텐을 가짐.
  4. few-shot prompting에 CoT sequence 예시를 추가함으로써 바로 large off-the-shelf(별도의 수정이나 학습없이 바로 쓸 수 있는 언어 모델)을 끌어낼 수 있다.

3. Arithmetic Reasoning

3.1 Experiment Setup

총 5개의 수학 단어 문제 benchmark (데이터셋 자체 + 정해진 평가 방법이 세트로 존재)

  1. GSM8k - 약 8,500개의 초등학교 수준 수학 단어 문제
  2. SVAMP - 약 1,000개의 변형된 수학 단어 문제, 원래 문제 구조를 변형해 피상적인 패턴 매칭만으로 풀 수 없게 함
  3. ASDiv - 약 2,300개의 수학 단어 문제, 다양한 주제를 포함
  4. AQuA - 약 100,000개의 객관식 수학 문제, 고등학교/대학 수준의 대수(algebra) 중심 문제
  5. MAWPS - 약 3,300개의 문제, 여러 기존 MWP 데이터셋을 통합한 메타 데이터셋

Standard prompting

Baseline - standard few-shot prompting (Brown et al. (2020))
이 방식은,
LLM에 몇 개의 QnA로 구성된 input-output쌍을 프롬프트에 주고 test-time example을 예측하는 것

Chain-of-thought prompting
우리 방식!! few-shot prompting에 CoT를 추가하는 것.

대부분의 데이터셋은 검증 데이터셋만 가지고 있으므로 각 데이터셋마다 CoT를 추가한 few-shot 예시 8개로 구성된 셋을 직접 만들었다.

few-shot prompting에 CoT를 추가하면 (aka CoT exemplar) 다양한 수학 문제에서 성공적인 추론을 이끌어낼 수 있음을 실험하고자 했다!
객관식 데이터셋인 AQuA를 제외하고 나머지 4개의 데이터셋에서 8개의 CoT exemplar로 이루어진 예시 set을 만들어 실험했다.
(AQuA는 훈련 데이터셋으로부터 4개의 CoT exemplar를 뽑았다)

Language Model
5가지 LLM을 사용했는데

  1. GPT-3
  2. LaMDA
  3. PaLM
    $. UL2 20B
  4. Codex

3.2 Results

실험 결과 크게 세 가지를 얻을 수 있었다.

  1. CoT prompting은 모델의 scale에 직접적인 영향을 받는다.
    • 모델의 크기가 클 때만 CoT prompting을 했을 때 standard prompting에 비해 성능이 좋아진다. (모델의 파라미터가 약 100B 이상일 때부터)
    • 모델의 크기가 작을 땐 생성된 CoT가 fluent하지만 논리적이진 않아 standard prompting보다 성능이 좋지 않다고 판단했다.
  2. 더 복잡한 문제일수록 CoT prompting이 더 도움된다.
    • GSM8K는 셋 중에 제일 복잡한 문제를 위한 데이터셋인데 baseline(standard few-shot prompting)의 성능은 셋 중에 가장 낮지만 CoT prompting을 추가하니 성능이 월등히 높아졌다.
    • 반면, SVAMP는 단일 스텝으로 해결할 수 있는 비교적 쉬운 문제의 데이터셋으로 baseline에 비해 CoT prompting의 성능은 아주 살짝 높아지거나 오히려 낮아졌다.
  3. CoT+GPT-3 173B와 CoT+PaLM 540B에서 각각 SOTA 성능을 냈다.
    • 이전 SOTA 성능 모델은 특정 task에 대해 라벨링된 데이터로 finetuning한 모델이다.

왜 CoT Prompting을 추가하면 성능이 더 좋아지는지에 대해 이해하기 위해
LLM = LaMDA 137B, benchmark = GSM8K이 생성한 CoT를 분석해보았다.

정답을 맞춘 예시들 중 50개를 랜덤하게 sampling 했을 때, 2개 빼고 생성된 CoT가 모두 논리적이고 수학적으로 정확했다.

잘못 예측한 것들 중 50개를 랜덤하게 뽑았더니 46%의 CoT는 나름 논리적이었지만 minor한 실수로 잘못 예측했고 나머지 54%는 CoT가 완전히 잘못 짚은 major한 실수로 인한 것이었다.

또한, scaling하는 것이 왜 CoT의 추론 능력을 향상시키는지에 대한 작은 인사이트를 주기 위해, PaLM 62B의 error들이 PaLM 540B에서 해결되는지 분석하고자 했다.
실험 결과, scale up하면 많은 비율의 minor한 error와 major한 error가 해결된 것을 확인했다.

3.3 Ablation Study

  • Ablation Study: 모델 성능에 영향을 주는 요소들을 하나씩 제거/반영하는 실험

CoT prompting을 사용했을 때 관찰된 이점들은, 다른 유형의 prompting으로도 동일한 성능 향상이 가능한지에 대한 의구심을 불러 일으켰다.

그래서 3가지 CoT 변형에 대한 ablation study를 보여주었다.

1. Equation Only

CoT가 도움이 될 수 있는 한 가지 가능성은 답을 계산하기 위한 수학식을 생성하기 때문이다.
그래서! 이 실험에서는 모델이 정답을 제시하기 전에 오직 수학식만 출력하도록 유도하는 변형을 실험해보았다. (자연어로 구성된 CoT 추론이 없다.)

위의 실험 결과를 정리한 그래프를 보면 GSM8K에 대해서는 Equation only와 baseline인 Standard prompting과 성능 차이가 거의 없다. 해석하면 GSM8K와 같이 질문 해석이 까다로울 때 자연어로 추론하는 중간 단계없이 바로 equation으로 변환하는 것은 무리다.

반면, 한두 단계로 문제로 구성된 간단한 dataset에서는 수학식만 prompting하는 것이 성능 향상에 도움이 된다는 사실을 알게 되었다. 왜냐하면 질문으로부터 수학식이 쉽게 도출될 수 있기 때문이다.

Variable compute only

CoT 추론에서 비롯한 효과와 연산량 자체의 영향을 분리하기 위해 우리는 모델이 문제를 풀기 위해 필요한 수식의 문자 수만큼 점들만 출력하도록 유도하는 실험을 설정했다.
즉, 실제 연산을 하는 대신 점들을 출력하도록 해 연산량이 늘어나는 것을 막았다. 그렇지만 CoT로 인해 token 수, aka variable 수는 증가하므로 variable compute only 환경이 되었다.

위의 실험 결과를 정리한 그래프를 보면 variable compute only 환경과 Standard prompting의 성능 차이가 거의 없다. 결론적으로 variable computation 자체만으로 CoT가 효과적이라 할 수 없다.

Chain of thought after answer

CoT의 또다른 잠재적인 이점은 이러한 프롬프트가 모델이 사전 학습 동안 습득한 관련 지식에 더 잘 접급하도록 도와준다는 점이 있다.
따라서, 정답을 먼저 주고 그 뒤에 CoT prompt를 주는 대안 실험 구성을 테스트해 모델이 실제로 정답을 도출할 때 CoT 출력에 의존하는지를 분리해본다.

위의 실험 결과를 정리한 그래프를 보면 Reasoning after answer와 Standard prompting의 성능 차이가 거의 없는 것으로 보아 CoT에 담긴 순차적 추론 과정이 단순히 지식을 활성화시키는 것 이상의 이유로 유용하다는 것을 시사한다.

3.4 Robustness of Chain of Thought

어떤 exemplars를 선택하는지도 accuracy에 영향을 주는데 그 예시로 SST-2의 GPT3에 어떤 few-shot exemplars를 넣는지에 따라 54.3%가 나올 수도 있고 93.4%가 나올 수도 있다.
즉 exemplars에 약간의 변화도 성능에 큰 영향을 끼칠 수 있다는 것이다.

그래서 서로 다른 annotator가 생성한 CoT에 따른 모델의 robustness를 측정하고자 한다.

  1. Annotator A
  2. Annotator B
  3. Annotator C

가 있을 때 같은 few-shot exemplars에 대해 각자만의 CoT를 생성했다.

위의 실험 결과를 정리한 그래프를 보면 CoT annotation에 따라 성능들이 약간의 차이는 있지만 standard annotation에 비하면 성능이 훨씬 좋은 것을 확인할 수 있다. 그래서 CoT는 linguistic style에 큰 영향을 받지 않는다고 할 수 있다.

또한, 성공적인 CoT prompting이 다른 예시 (exemplar set)에서도 효과적인지를 확인하기 위해, 저자들은 GSM8K 훈련 세트에서 무작위로 선택한 8개짜리 예시 세트 3개를 가지고 실험을 추가로 수행했다.
이 데이터셋은 독집적인 출처이며, 원래부터 CoT처럼 추론 단계를 포함한 예시들이 포함되어 있다. 실험결과, 3개의 예시 셋으로 프로프팅했을 때 모두 비슷한 성능을 표였고, standard prompting에 비하면 훨씬 뛰어난 성능을 내고 있는 것으로 보아 어떤 예시 세트이든 robust하다는 것을 보여주었다.

📕결론적으로, 본 논문에서 핵심 제안인 CoT prompting, prompting에 몇 가지 예시 CoT를 추가하는 방식은 자연어처리 모델의 추론 성능이 높아지도록 도와준다.

논문 출처: https://doi.org/10.48550/arXiv.2201.11903

profile
알잘딱깔센 논문리뷰

0개의 댓글