지난 논문 리뷰에 이어서 LLM 관련 포스팅을 계속해보겠습니다. 이번에 소개해드릴 내용은 Chain-of-Thought (CoT)라고 불려지는 전략입니다.
간단히 요약하면 중간 단계에 일련의 intermediate reasoning step (중간 추론 단계)를 포함한 사고 과정을 생성하면 대규모 언어 모델의 복잡한 추론 능력이 향상된다는 점입니다.
Introduction
언어 모델 (Language Models) 은 NLP (자연어 처리) 분야에 큰 혁신을 가져왔습니다. 그런데 이 모델 크기를 확장하면 성능 향상 및 샘플 효율성 증가와 같은 이점이 있습니다. 그러나 모델 크기 확장 만으로는 산술, 상식, 기호적 추론 같은 어려운 작업에서 높은 성능을 달성하지 않습니다.
해당 논문에서는 두 가지 주요 아이디어를 제안했습니다.
첫 번째는 산술적 추론을 위한 자연어 논리를 생성하는 것입니다. 이는 최종 답에 도달하기 전에 자연어로부터 근거를 찾아서 최종 답변을 해서 산술적 추론에 도움을 주는 것입니다. 두 번째는 프롬프트를 통해 in-context few-shot 학습을 하는 것입니다. 이는 fine-tuning을 하거나 training을 하지 않고, 몇 가지 예제만 제공하여 모델이 작업을 이해하고 실행할 수 있도록 하는 것입니다.
따라서 프롬프트에 < input - chain of thought - output > 형식을 사용하면서 기존의 한계인 고품질의 논리를 대량으로 생성할 때 cost 가 높은 점과, 이전의 few-shot prompting 만으로 개선되지 않던 것을 해결하려고 합니다.
이를 통해서 GSM8K라는 수학 문제를 푸는 과제에서 PaLM 540B 모델을 사용했을 때 더 높은 결과를 보여줌을 증명했습니다.
Chain of Thought prompting
다시 한번 CoT의 개념을 설명하면 복잡한 추론 작업에서 문제를 해결할 때 중간 단계로 나눠서 하나씩 해결을 한 뒤에 최종답을 도출하는 사고 과정입니다.
예를 들면 Jane 이 엄마에게 꽃 2송이를 주고 10송이가 남음 → 아빠에게 3송이를 주고 7 송이가 남음 → 정답은 7 이런 식입니다.
CoT prompting’s attractive properties
복잡한 문제를 중간 단계로 나눌 수 있어, 더 많은 계산 자원을 할당할 수 있습니다. 모델이 특정 답에 도달한 과정을 이해할 수 있게 하며, 추론 경로를 디버깅할 기회를 제공해 줍니다. 수학 문제, 상식 추론, 기호 조작 등 언어를 통해 해결 가능한 모든 작업에 원칙적으로 적용 가능합니다. Few-shot 프롬프팅 예제에 CoT 시퀀스를 포함시키는 것만으로 유도 가능하여 기존의 LLM 모델에서도 사용 가능합니다.
산술적 추론(Arithmetic Reasoning)
Benchmarks
수학 단어 문제를 평가하기 위해 아래의 5가지의 데이터셋을 사용했습니다. 여기서 benchmarks는 데이터셋을 의미합니다.
GSM8K: 도전적인 수학 단어 문제 벤치마크 (Cobbe et al., 2021).
SVAMP: 구조가 다양한 수학 문제 데이터셋 (Patel et al., 2021).
ASDiv: 다양한 유형의 수학 문제 데이터셋 (Miao et al., 2020).
AQuA: 대수학 단어 문제 데이터셋 (다지선다형).
MAWPS: 간단한 수학 문제 벤치마크 (Koncel-Kedziorski et al., 2016).
위 방법을 평가하기 위해서 3가지 방법으로 실험을 진행했습니다.
표준 프롬프팅(Standard Prompting)
Brown et al. (2020)에서 알려진 Few-shot prompting을 사용했습니다. 이는 입력-출력 쌍을 포함한 예제를 프롬프트로 제공하고 모델은 테스트 예제에 대해 직접 답을 생성해 줍니다.
CoT 프롬프팅(Chain-of-Thought Prompting)
제안된 방법으로 각 예제에 CoT를 추가했습니다. 예제는 수작업으로 작성된 8개의 few-shot 예제를 기반으로 만들어졌습니다.
Language models
- GPT-3
일단 GPT-3 모델을 사용했습니다. 구체적인 모델은 text-ada-001, text-babbage-001, text-curie-001, text-davinci-002이며 각각의 파라미터 크기는 350M, 1.3B, 6.7B, 175B입니다. - LaMDA
422M, 2B, 8B, 68B, 137B 매개변수 크기를 가지는 모델을 사용했습니다. - PaLM
8B, 62B, 540B 매개변수 크기를 가지는 모델을 사용했습니다. - UL2 (Tay et al., 2022)
20B 매개변수 크기를 가지는 모델을 사용했습니다. - Codex (Chen et al., 2021):
사용 버전은 code-davinci-002입니다.
또한 CoT 프롬프팅의 샘플링은 기본적으로 Greedy Decoding을 사용했습니다. 참고로 Greedy Decoing 은 언어 모델에서 각 단계의 출력에서 가장 높은 확률을 가지는 토큰을 선택하는 방식입니다. LaMDA에서는 Random seeds 평균화를 통해 결과 신뢰성을 확인했습니다. 또한 대부분의 모델은 단일 예제 순서로 결과를 보고했습니다.
Results
Emergent Ability(출현 능력)
Figure. 4. 를 확인해 본 결과 CoT 프롬프팅은 모델 크기가 약 100B 이상의 매개변수를 가진 경우에만 성능 개선 효과를 나타냅니다 (Wei et al., 2022b). 소규모 모델에서의 CoT는 긍정적인 영향을 주지 않았습니다.
문제 복잡도에 따른 성능 향상
다음은 복잡한 문제일 때 더 큰 성능을 향상된다는 것을 보입니다. 간단한 문제에서는 성능 개선이 미미하거나 오히려 감소하는 경향을 보였습니다.
또한 Figure 4를 보게 되면 LaMDA 137B 모델을 사용했을 때 거의 대부분은 논리적 및 수학적으로 정확했습니다. 그리고 PaLM 모델을 보면 62B 모델을 사용했을 때 calculator error, one reasoning step missing과 같이 minor mistakes 가 있고, 의미 이해나 일관성에 관한 54% 의 major error 가 있었습니다. 이를 해결하기 위해서 PaLM 540B 모델로 확장했을 때 대부분의 오류들이 개선 됐습니다.
이를 통해서 CoT prompting 도 모델 크기와 밀접한 관계가 있다는 것을 알 수 있습니다.
Ablation study
해당 연구진은 CoT prompting 성능을 향상하는 이유를 명확하게 알기 위해서 CoT의 핵심 구성 요소가 제거되었을 때의 성능 평가를 실시하게 됩니다.
Equation only
연구진은 Equation only 방법을 사용했는데 이는 수학 문제를 푸는데 자연어 기반 추론 과정이 반드시 필요한가? 에 대한 궁금증으로 시작되었습니다. 위 실험에서는 자연어 추론 단계 없이 수학 방정식만 출력하고 최종 답을 생성하도록 prompt를 구성했습니다.
Figure 5를 보시면 알 수 있지만 Equation only를 사용했을 경우에 CoT 방법에 비해서 성능이 떨어진다는 것을 알 수 있습니다. 이는 GSM8K 의 문제의 의미론적 복잡성이 높아, 자연어 처리 능력이 없다면 수학적 방정식으로 변환이 어렵다는 것을 의미합니다. 그러나 단순 데이터 셋에서는 Equation only 방법이 성능 개선에 영향을 주기도 한다고 합니다.
Variable compute only
위 실험은 CoT의 성능향상이 문제를 풀기 위해서 더 많은 Token을 사용하기 때문인지, 아니면 자연어 기반 중간 추론 과정 자체의 효과 인지를 알아보고자 진행됐습니다.
중간 추론 단계에서, Token을 의도적으로 소모를 했습니다. 예를 들면 “x - 2 = 5” 가 출력되는 자리에 (…..) 5개의 점만 생성해서 문제를 풀게 했더니. CoT prompting과 비교했을 때 성능향상을 보이지 않았습니다.
따라서 단순히 Token을 더 많이 사용한다고 해서 성능이 좋아지는 것은 아니라는 것이고, 자연어 추론이 실질적으로 중요하다는 의미입니다.
Chain of thought after answer
CoT prompting 효과가 pre-training 중에 얻은 지식에서 오는 건지 그게 아니라면 실질적으로 단계적으로 추론 과정이 최종 답에 중요한 영향을 미치는 알아보고자 했습니다.
즉 모델이 답을 먼저 출력한 후 CoT를 출력하게 했을 때 CoT를 답 이후에 제공했을 경우, 모델 성능이 baseline과 거의 동일했습니다.
Robustness of Chain of Thought
이번 실험에서는 CoT prompting 이 promt의 예제의 변화나 작성자의 스타일에 대해 얼마나 robust 한지를 보려고 합니다. GPT-3의 경우 예제의 순서만 바꿔도 성능이 크게 향상되는 실험 결과가 있기 때문에 이는 필요한 절차라고 생각됩니다.
다양한 작성자에 따른 성능을 실험했습니다. 작성자 A는 간결하게 작성하고, B와 C는 작성자의 스타일에 맞게 작성했습니다. 모든 경우에 Standard prompting 보다 훨씬 좋은 결과를 보여줍니다.
Commonsense Reasoning
CoT는 수학문제를 잘 뿐만 아니라 다른 광범위한 상식적 추론도 가능하게 합니다. 따라서 해당 연구진은 그것을 추론하기 위해서 총 5가지의 데이터 셋에서 실험을 했습니다.
5가지의 데이 셋을 예시와 함께 설명을 하면
- CSQA : Sammy wanted to go to where the people were. Where might he go? Options: (a) race track (b) populated areas (c) desert (d) apartment (e) roadblock | 세상에 대한 상식적인 질문을 하는 데이터셋입니다.
- StrategyQA : Yes or no: Would a pear sink in water? | 다중 단계(multi-hop)의 전략적 추론을 요구하는 질문
- Date Understanding: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY? | 주어진 문맥에서 날짜를 추론하는 질문
- Sports Understanding: Is the following sentence plausible? "Joao Moutinho caught the screen pass in the NFC championship. | 스포츠와 관련된 문장의 타당성 여부를 질문
- SayCan (Instructing a robot): Human: How would you bring me something that isn’t a fruit? | 자연어 명령을 받아 로봇이 수행할 동작의 순서를 추론하는 질문으로 구성되어 있습니다.
프롬프트는 각 데이터셋의 특성에 따라 few-shot 예제를 수동으로 작성하거나 평가 세트에서 선택하여 CoT 방식의 성능을 평가했습니다.
결과로는 모든 데이터셋에서 model size 가 클수록 성능은 향상되었습니다.
Symbolic Reasoning
마지막 실험은 Symbolic Reasoning입니다. 기존의 Prompting에서는 어려운 기호적 추론 작업을 할 수 있음을 보여주는 실험입니다. 이는 학습 예제보다 긴 입력에 대해서도 일반화를 할 수 있다는 것을 보여줍니다.
여기서는 두 가지 실험을 진행했는데 첫 번째는 Last letter concatenation입니다. 단어의 마지막 단어를 합치는 테스트인데 예를 들면 Amy Brown → yn으로 처리하는 것입니다. 이것은 단어의 첫 번째를 합치는 것보다 어려운 일입니다. 두 번째 Task는 Coin flip입니다. 동전의 앞면 또는 뒷면을 추론하는 문제입니다.
“A coin is heads up. Phoebe flips the coin. Osvaldo does not flip the coin. Is the coin still heads up?” → “no” 이런 식으로
각 작업에 대해서 두 가지 testset을 만들어 냅니다. 하나는 training 또는 few-shot 예제와 단계수가 동일한 in-domain testset과 평가 예제보다 더 많은 단계를 포함하는 out-of-domain(OOD)로 설정합니다.
즉 Last letter concatenation에서는 두 단어로 이루어진 이름을 가지고 학습을 했지만 세, 네 단어로 이루어진 단어도 추론할 수 있게 합니다. Coin flip 작업에서는 역시 동전 뒤집는 횟수가 예제보다 더 많은 상황에서 테스트를 하게 됩니다.
Figure 8을 보게 되면 Letter Concat 데이터셋에서 여전히 model size가 작게 되면 성능이 좋지 않지만 standard prompting과 비교했을 때는 더 높은 성능을 보입니다.
Coin flip task에서도 Standard prompting은 더 안 좋은 결과를 보였습니다. 이로써 CoT는 OOD 환경에서도 더 잘 작동한 다는 것을 보여줍니다.
Discussion
결론적으로 CoT는 산술추론 문제, 또는 Commonsense reasoning을 어떻게 일반적으로 적용이 가능한지 강조했고, Symbolic reasoning 도 잘한다는 것을 알 수 있습니다.
CoT 방법이 standard prompting 방법에 비해서 모델 크기가 커짐에 따라서 극단적으로 성능이 향상되는 구간이 있다는 것도 알 수 있었습니다.
또한 한계도 분명했는데 CoT가 인간의 사고 과정을 모방하긴 했으나 실제로 추론하는지는 입증하지 못했습니다. 또한 Fine-tuning 할 때 많은 cost 가 필요로 해서 해결해야 한다. 세 번째는 항상 맞는 추론을 한다고 보장할 수 없다는 점입니다. 또한 CoT는 model size가 큰 모델에서만 작동한다는 한계가 있었습니다.
'기술' 카테고리의 다른 글
파이썬으로 구글 시트 연동하기!! (2) | 2024.12.04 |
---|---|
[논문리뷰] LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS (1) | 2024.12.01 |
E-mail 보내기 보다 쉽다!! Discord 메시지 보내기 (0) | 2024.11.24 |