
프롬프팅 방법에 대해 조사하던 중, 구글 리서치에서 발표한 논문을 찾게 되었다.
대규모 언어 모델(LLM)은 엄청난 양의 텍스트 데이터로 학습하여
다양한 자연어 처리(NLP) 과제에서 뛰어난 성능을 보였음.
하지만 복잡한 추론, 특히 여러 단계를 거쳐야 하는 문제(예: 수학 응용 문제, 상식 추론)에서는 한계를 보여옴
기존의 대표적인 프롬프팅 방식인 퓨샷 프롬프팅(Few-shot Prompting)은 몇 가지 예시(질문-답변 쌍)를 모델에 제공하여 문제 해결을 유도하는 방식임.
이 방식은 간단한 문제에는 효과적이지만, 복잡한 추론 문제에서는 모델이 정답을 바로 도출하기 어려워 성능이 잘 오르지 않는 '평탄한 스케일링 곡선(flat scaling curve)' 현상을 보였음.
→ 즉, 모델의 크기를 키워도 특정 유형의 문제에서는 성능 향상이 거의 없었음
연구팀은 이러한 한계를 극복하기 위해,
사람이 복잡한 문제를 풀 때
중간 과정을 단계별로 생각하며 해결하는 방식에 주목. 그리고 이러한 '생각의 과정'을 모델에게도 가르칠 수 있다면 추론 능력을 획기적으로 향상시킬 수 있을 것이라는 가설을 세웠고, → 이것이 바로 '생각의 사슬(Chain-of-Thought, CoT)' 연구
생각의 사슬 (Chain-of-Thought) 프롬프팅
CoT 프롬프팅의 핵심은 모델에게 '질문 → 생각의 과정 → 정답' 으로 구성된 예시를 제공하는 것임.
기존 프롬프팅 vs. CoT 프롬프팅
예시 문제: "테니스 공 23개가 담긴 캔이 있습니다. 5개의 캔을 더 샀고, 각 캔에는 3개의 테니스 공이 들어있습니다. 지금 총 몇 개의 테니스 공을 가지고 있나요?"
- 기존 퓨샷 프롬프팅
- Q: 주차장에 자동차 10대가 있었는데 3대가 떠나고 2대가 새로 들어왔습니다.
- A: 9
지금 주차장에는 몇 대의 차가 있나요?
- 생각의 사슬 (CoT) 프롬프팅
- Q: 주차장에 자동차 10대가 있었는데 3대가 떠나고 2대가 새로 들어왔습니다.
- A: 처음에는 10대가 있었습니다. 3대가 떠났으므로 10 - 3 = 7대가 남았습니다.
지금 주차장에는 몇 대의 차가 있나요?
2대가 새로 들어왔으므로 7 + 2 = 9대가 되었습니다. 따라서 정답은 9입니다.
CoT는 모델이 문제를 어떻게 분해하고, 각 단계를 어떻게 해결하며,
최종적으로 답을 어떻게 도출하는지에 대한 청사진을 제공함.
모델은 이 예시를 보고 새로운 문제에 대해서도 유사한 방식으로 생각의 사슬을 생성하여 문제를 해결하게 됨
연구팀은 CoT의 효과를 검증하기 위해 세 가지 유형의 추론 과제에서 실험을 진행
1. 산술 추론 (Arithmetic Reasoning)
- 과제: 수학 응용 문제 (Math Word Problems)
- 기존 프롬프팅 방식으로는 거의 해결하지 못했던 복잡한 수학 문제에서 CoT를 적용하자 정확도가 비약적으로 상승. 특히, 가장 큰 모델인 LaMDA 137B에서는 CoT를 사용했을 때 정답률이 18%에서 58%로 크게 향상되어, 최고 수준의 성능을 달성
2. 상식 추론 (Commonsense Reasoning)
- 과제: 인과 관계, 시간적 순서, 객체 간의 상호작용 등 일상적인 상식에 기반한 추론 문제 (CSQA, StrategyQA)
- 상식 추론 문제에서도 CoT는 모델이 상황을 더 깊이 이해하고 논리적인 결론을 내리도록 도왔음.
예를 들어 "A와 B 중 무엇이 더 오래 지속될까?"와 같은 질문에 대해, CoT는 각 대상의 특성을 나열하고 비교하는 과정을 거쳐 더 정확한 답을 내놓음
3. 기호 추론 (Symbolic Reasoning)
- 과제: 글자 조합, 마지막 글자 이어붙이기 등 추상적인 규칙을 따르는 기호 조작 문제
- 이 유형의 문제는 모델이 이전에 본 적 없는 새로운 규칙을 즉석에서 학습하고 적용해야 하므로 매우 어려움. CoT는 모델이 문제의 규칙을 명시적으로 풀어서 설명하고, 그 규칙을 단계별로 적용하도록 유도하여 성능을 크게 향상시켰음
이 연구의 가장 흥미로운 발견 중 하나는 CoT의 효과가 모델의 크기가 특정 임계점을 넘어설 때 폭발적으로 나타난다는 것. 약 100B (1000억) 파라미터 미만의 작은 모델에서는 CoT를 적용해도 성능 향상이 거의 없거나 미미했음. 하지만 그 이상의 대규모 모델에서는 CoT를 통해 이전에는 없던 복잡한 추론 능력이 발현되는 현상이 관찰되었음.
→ 모델이 충분한 규모와 용량을 갖추어야만 '생각하는 방법'을 배우고 적용할 수 있음
CoT가 효과적인 이유
- 문제 분해: 복잡한 문제를 여러 개의 간단한 중간 단계로 나눔으로써 모델이 각 단계에 집중하여 해결하도록 함
- 계산 자원 할당: 생각의 사슬을 생성하는 과정은 모델이 더 많은 계산 자원(attention 등)을 문제 해결에 집중적으로 할당하도록 유도하는 효과가 있음
- 해석 가능성 및 디버깅: 모델이 왜 그런 답을 내놓았는지 그 과정(생각의 사슬)을 통해 쉽게 이해할 수 있음. 만약 답이 틀렸다면, 어느 단계에서 논리적 오류가 발생했는지 추적하고 수정하기 용이
이 해석 가능 및 디버깅 부분이 매우 중요한 부분이라 생각됨.