Cot연구동향
chatgpt. 20250301.
좋아요! 최근 연구를 중심으로 Chain of Thought (CoT)와 관련된 논문, 이론, 그리고 실습 자료 및 공개된 코드를 조사하여 정리해드리겠습니다.
결과는 보고서 형태로 제공하며, 주요 내용은 다음과 같습니다:
- 최신 논문 목록 및 요약
- Chain of Thought 개념과 이론적 배경
- 인공지능 분야에서의 CoT 연구와 응용 사례
- 실습 가능한 오픈소스 코드 및 리소스 정리
- 실전 적용을 위한 가이드 및 예제 코드 설명
연구가 완료되면 공유해드리겠습니다!
Chain of Thought (CoT) 최신 연구 조사 보고서
개요 및 이론적 배경
Chain of Thought (CoT)은 복잡한 문제를 풀 때 사고의 연쇄, 즉 중간 추론 단계를 언어 형태로 생성하도록 유도하는 기법입니다 (Language Models Perform Reasoning via Chain of Thought). 기존의 표준 프롬프트에서는 모델이 바로 정답만 출력하지만, CoT 프롬프트를 사용하면 문제를 단계별로 분해하여 해결 과정을 서술한 뒤 최종 답을 도출합니다 (Language Models Perform Reasoning via Chain of Thought). 이러한 “생각의 연쇄”를 통해 모델이 인간처럼 단계적으로 사고하도록 유도하며, 특히 산술, 상식 추론 등의 다단계 추론 문제에서 성능을 크게 향상시킬 수 있음이 나타났습니다 (Language Models Perform Reasoning via Chain of Thought) (Language Models Perform Reasoning via Chain of Thought). 예를 들어, 단순 질문에 바로 답하게 하면 틀렸던 산술 문제도 프롬프트에 “차근차근 생각해보자”라는 문장을 추가하여 단계별 풀이를 유도하면 정답을 도출할 수 있습니다 (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ). 이러한 효과는 충분히 대규모(약 100억~1000억 이상) 파라미터를 가진 언어 모델에서 두드러지며, CoT로 유도한 추론 과정 자체는 사람이 언어로 풀 수 있는 어떤 문제에도 적용 가능하다고 보고되었습니다 (Language Models Perform Reasoning via Chain of Thought).
(Language Models Perform Reasoning via Chain of Thought) (Language Models Perform Reasoning via Chain of Thought) 표준 프롬프트(좌) vs Chain-of-Thought 프롬프트(우) 비교 예시. CoT 프롬프트에서는 모델이 중간 추론 단계를 거쳐 최종 답을 산출한다.
CoT 개념의 이론적 배경에는 스크래치패드(scratchpad) 학습과 정당화(rationale) 연구가 있습니다. 과거에는 모델이 중간 계산 과정을 출력하도록 하려면 대량의 추론 과정을 담은 데이터로 파인튜닝해야 했습니다 (Language Models Perform Reasoning via Chain of Thought). 예를 들어 Nye 등(2021)은 스크래치패드를 통해 모델이 계산 과정을 메모리에 적으며 복잡한 문제를 풀도록 훈련했고, Rajani 등(2019)이나 Shwartz 등(2020)은 상식 추론 질문에 대한 인간의 설명(reasoning)을 데이터로 수집하여 모델이 정답 근거를 생성하도록 시도했습니다. 이러한 선행 연구들은 모델이 중간 단계를 거쳐 답하도록 하면 성능이 좋아짐을 보였지만, 일일이 많은 추론 데이터를 마련해야 하는 한계가 있었습니다. CoT 프롬프트의 등장은 이러한 중간 추론을 몇 가지 예시만으로도 유도할 수 있음을 보인 것으로, 추가 학습 없이 프롬프트 설계만으로도 효과를 얻을 수 있다는 점에서 큰 의의가 있습니다 (Language Models Perform Reasoning via Chain of Thought). 또한 최근 Merrill & Sabharwal(2023) 등의 이론 연구에서는, 언어 모델에 CoT 방식의 추가적인 출력 단계를 허용하면 변환기의 표현력이 높아져 단순 출력만으로는 풀지 못하는 더 복잡한 계산도 수행 가능함을 보이는 등, CoT의 잠재력에 대한 이론적 분석도 진행되고 있습니다.
최근 5년간 CoT 관련 주요 연구 동향
최근 5년 이내 CoT와 관련하여 많은 의미있는 연구들이 발표되었습니다. 주요 논문과 그 기여를 정리하면 다음과 같습니다:
-
Wei et al. (2022), “Chain-of-Thought Prompting Elicits Reasoning in LLMs” – 최초로 CoT 프롬πτ 기법을 제안한 연구로, 간단한 Few-shot 프롬프트만으로도 언어 모델에게 단계적 사고를 유도할 수 있음을 보여주었습니다. 이 방법을 통해 1000억 규모 이상의 대형 모델에서 산술, 상식, 논리 추론 문제 성능이 크게 향상되었으며 (Language Models Perform Reasoning via Chain of Thought), 특히 5400억 규모 PaLM 모델에 CoT를 적용하여 GSM8K 수학 문제에서 기존 SOTA를 능가하는 58% 정확도를 달성했습니다 (Language Models Perform Reasoning via Chain of Thought) (Language Models Perform Reasoning via Chain of Thought). 또한 CoT의 효과가 모델 크기에 따라 발생하는 emergent behavior임을 관찰하여, 약 100억~백억 단위 이상의 모델에서 비로소 CoT가 유의미한 성능 향상을 가져온다는 사실을 보고했습니다 (Language Models Perform Reasoning via Chain of Thought).
-
Kojima et al. (2022), “Large Language Models are Zero-Shot Reasoners” – CoT 프롬프트를 Zero-shot으로도 활용할 수 있음을 보여준 연구입니다. 예시를 전혀 주지 않고도 질문 뒤에 “Let’s think step by step.”(차근차근 생각해보자)라는 한 문장만 덧붙이는 간단한 방법으로, 모델이 스스로 단계별 풀이를 생성하도록 유도할 수 있음을 발견했습니다 ([2205.11916] Large Language Models are Zero-Shot Reasoners) ([2205.11916] Large Language Models are Zero-Shot Reasoners). 이렇게 생성된 Zero-shot CoT는 기존에 예시 없이 바로 답변하던 경우 대비 다양한 추론 벤치마크에서 성능을 크게 향상시켰습니다. 예를 들어 MultiArith 산술 문제는 정확도가 17.7%에서 78.7%로, GSM8K는 10.4%에서 40.7%로 크게 상승했습니다 ([2205.11916] Large Language Models are Zero-Shot Reasoners). 이는 단 하나의 보편적인 프롬프트로 다양한 과제에서 큰 개선을 이뤄낸 사례로, LLM에 내재된 잠재적 추론 능력을 간단한 문구로 끌어낸 점이 주목받았습니다.
-
Wang et al. (2022), “Self-Consistency Improves CoT Reasoning in LMs” – CoT의 디코딩 전략을 개선한 연구로, 정답의 신뢰도를 높이는 Self-Consistency(자가 일관성) 기법을 제안했습니다. 기존에는 CoT 프롬프트로 하나의 추론 경로만 생성했다면, Self-Consistency에서는 같은 질문에 대해 여러 가지 서로 다른 추론 과정을 샘플링하여 얻은 뒤, 그 중 가장 일관된 최종 답을 다수결 등으로 선택합니다 ([2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models). 직관적으로, 복잡한 문제는 생각하는 경로는 다를 수 있어도 정답은 동일하다는 점을 활용한 것입니다 ([2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models). 실험 결과 Self-Consistency를 적용하면 GSM8K에서 +17.9%, SVAMP에서 +11.0%, AQuA에서 +12.2% 등 CoT 성능이 크게 향상되었고 ([2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models), Greedy decoding보다 안정적인 정답률을 확보할 수 있음을 보여주었습니다.
-
Zhou et al. (2022), “Least-to-Most Prompting” – CoT의 한계를 보완하기 위해 문제 분할(decomposition) 아이디어를 접목한 프롬프트 전략입니다. CoT는 프롬프트에 제시한 예시보다 더 어려운 문제가 주어지면 일반화에 실패하는 경향이 있는데 ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models), Least-to-Most Prompting (LtM)은 어려운 문제를 더 쉬운 하위 문제들로 나누어 순차적으로 해결하도록 프롬프트를 구성함으로써 이 문제를 해결합니다 ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models). 먼저 간단한 부분문제부터 풀고 그 해답을 이용해 점진적으로 복잡한 전체 문제를 풀어나가는 방식으로, 쉬운 것에서 어려운 것으로 일반화하는 능력을 향상시켰습니다 ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models). 그 결과 GPT-3 모델을 활용한 SCAN 벤치마크 실험에서, LtM 프롬프트는 불과 14개의 예시만으로도 99% 이상의 정확도를 달성하여, CoT의 16% 대비 월등한 성능을 보였습니다 ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models). 이처럼 LtM은 단계별 문제 분할을 통해 CoT의 일반화 범위를 넓힌 사례입니다.
-
Zelikman et al. (2022), “STaR: Self-Taught Reasoner” – 모델 스스로 추론 데이터를 생성하여 학습하도록 하는 새로운 방법론입니다. Few-shot CoT 예시 몇 개로 시작하여 모델이 많은 질문들에 대한 추론 과정(rationale)을 생성하게 한 뒤, 정답을 맞춘 사례들의 추론만 모아 다시 모델을 파인튜닝하는 부트스트랩 루프를 제안했습니다 ([2203.14465] STaR: Bootstrapping Reasoning With Reasoning). 모델이 틀린 답을 낸 경우 정답을 알려주고 다시 reasoning을 생성하게 하는 식으로 반복하여, 점차 더 복잡한 문제도 풀 수 있도록 모델을 향상시킵니다 ([2203.14465] STaR: Bootstrapping Reasoning With Reasoning). 이렇게 모델이 생성한 데이터로 다시 모델을 학습시키는 자훈련(self-training) 방식으로, STaR 기법은 별도 정답만 있는 큰 데이터셋으로부터 합리적인 추론 과정을 부트스트랩하는 데 성공했습니다. 그 결과 CommonsenseQA 등에서 30배 큰 최첨단 모델과 비슷한 성능을 달성하여, 자기 추론 학습의 가능성을 보여주었습니다 ([2203.14465] STaR: Bootstrapping Reasoning With Reasoning).
-
Zhang et al. (2022), “Automatic Chain-of-Thought (Auto-CoT)” – CoT 데모 예시를 자동으로 생성해주는 프롬프트 구성 기법입니다. 앞서 Wei 등의 Manual-CoT는 사람이 직접 시연 예제를 만들었는데, Auto-CoT는 LLM 자체에 “Let’s think step by step”를 사용한 Zero-shot CoT로 여러 문제의 풀이는 만들어내고, 그중 다양하고 대표적인 예시들을 선별하여 데모로 사용하는 방식을 취합니다 ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models) ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models). 구체적으로, 질문 클러스터링을 통해 유형을 다양화하고 각 군집 대표 질문에 대한 CoT 풀이를 생성한 후, 길이 등의 단순 기준으로 품질이 괜찮은 추론을 뽑아 예시 세트로 삼습니다 (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ). 이러한 자동 구성한 Few-shot 프롬프트를 GPT-3 등에 적용한 결과, 사람 손으로 만든 CoT 프롬프트에 필적하거나 이를 능가하는 성능을 10개 벤치마크에서 달성했습니다 ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models). Auto-CoT는 향후 프롬프트 엔지니어링의 수작업을 줄이는 방향의 연구로 주목받았습니다.
-
Yao et al. (2023), “Tree-of-Thoughts (ToT)” – CoT 개념을 확장하여 브랜치 탐색을 가능케 한 추론 기법입니다. 일반 CoT는 하나의 연쇄적 생각 경로만 따라가지만, ToT는 마치 나무를 가지치기하듯이 여러 가능한 생각의 경로를 분기 탐색하면서 최선의 해결책을 찾습니다 ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models). 언어 모델의 출력 단위를 “생각(thought)” 단위로 일반화하고, 각 단계에서 다음 진행을 여러 대안으로 펼쳐본 뒤 평가/백트래킹을 통해 최적 경로를 추린다는 점에서, ToT는 탐색적 사고(exploration)를 도입한 체계적인 프롬프트 프레임워크입니다 ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models) ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models). 실험적으로도 ToT는 전략적 탐색이 필요한 문제들에서 큰 성공을 거두었는데, 예를 들어 숫자 24 만들기 게임(Game of 24)에서 GPT-4가 CoT로는 4% 정답률에 그친 반면, ToT 방법을 적용하자 74%의 높은 성공률을 보였습니다 ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models). 이 연구는 CoT의 한계를 뛰어넘어 탐색적 Chain-of-Thought이라는 새로운 방향을 제시한 것으로 평가됩니다.
이 외에도 CoT의 효과를 이끌어내기 위한 다양한 변형 연구들이 진행되고 있습니다. 예를 들어, CoT와 외부 도구 사용을 결합한 ReAct 방식(Yao 등, 2022)은 모델이 “생각(추론)”과 “행동(도구 사용)” 단계를 번갈아 수행함으로써 복잡한 문제를 해결하도록 했습니다. 또 다른 방향으로, Reasoning distillation 연구들은 거대 모델이 생성한 CoT를 smaller 모델이 학습하여 추론 능력을 전이받도록 시도합니다. 전반적으로, Chain-of-Thought은 2022년 이후 급속히 발전하는 거대언어모델 분야에서 복잡한 추론 문제를 해결하는 핵심 기법으로 자리잡았으며, 다양한 응용 및 변형이 지속적으로 나오고 있습니다.
CoT의 활용 사례 및 응용 분야
CoT의 도입 이후 언어 모델의 추론 능력에 큰 진전이 나타나면서, 여러 분야의 문제 해결에 CoT가 활용되고 있습니다. 대표적으로 수학 단어 문제 풀이에서 CoT는 필수적인 기술로 자리잡았습니다. 모델이 여러 단계의 계산이나 논리를 거쳐야 하는 GSM8K 같은 산수 문제에서, CoT 프롬프트를 사용하면 단계별로 풀어서 정답률을 크게 높일 수 있습니다 ([2205.11916] Large Language Models are Zero-Shot Reasoners). 상식 추론(commonsense reasoning) 분야에서도 CoT가 활용되어, 사람의 사고 과정을 흉내내 설명을 만들어가며 질문에 답하도록 합니다. 예컨대 StrategyQA나 CommonsenseQA 같은 지식+추론 문제가 이에 해당하며, CoT를 쓰면 모델이 바로 답을 떠올리지 못하는 경우에도 관련 상식을 끌어모아 논리적 결론을 도출할 수 있습니다. 논리 퍼즐이나 언어 추론(logical reasoning)에도 CoT가 쓰입니다. Kojima 등의 연구에서 보여준 동전 뒤집기, 날짜 계산, 개체 추적 등 문제들은 한두 번의 토큰 예측으로 풀기 어려웠지만, CoT로 일련의 추론 단계를 거치자 성능이 크게 향상되었습니다 ([2205.11916] Large Language Models are Zero-Shot Reasoners). 이처럼 CoT는 복합적인 추론 시나리오 전반에 적용되어, 모델의 문제 해결 과정을 사람이 이해할 수 있는 형태로 만들어준다는 장점도 있습니다 (출력된 체인-of-thought 자체가 일종의 설명이 되므로, 투명성과 설명가능성이 향상됨).
또한 CoT는 복잡한 질문에 대한 AI 어시스턴트의 응답 품질을 높이기 위해 실무적으로도 활용됩니다. 일례로 거대 챗봇 모델(예: ChatGPT, GPT-4 등)은 겉으로 드러나진 않아도 내부적으로 복잡한 질문에 답변하기 전에 단계별로 사고하는 경향이 있는데 (Introducing the Open Chain of Thought Leaderboard), 이는 CoT 스타일의 추론이 모델에 내재화되어있음을 시사합니다. CoT 방식은 다양한 LLM 기반 에이전트에게도 도입되어, 예를 들어 LangChain 같은 프레임워크를 통해 프롬프트에 체인-of-thought를 추가함으로써 모델이 더 신뢰도 높은 답을 찾도록 돕습니다 (Introducing the Open Chain of Thought Leaderboard). 실제 응용 면에서, CoT는 코드 디버깅이나 복잡한 글 구성 같은 창의적 작업에도 활용됩니다. 모델이 버그 원인을 단계적으로 추론하고 수정 방향을 제시하게 하거나 (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks) (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks), 긴 문장을 요약하거나 아이디어를 구조화할 때도 CoT로 단계적인 출력을 유도하면 보다 일관된 결과를 얻을 수 있다는 보고가 있습니다 (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks) (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks). 나아가, 계획 및 실행(planning & acting) 영역에서는 CoT와 외부 도구 사용이 결합된 퍼렉션(ReAct), 체인오브헌(Plan-and-Solve) 등의 에이전트가 복잡한 과제를 해결하는 데에 CoT를 필수 구성요소로 활용하고 있습니다.
정리하면, CoT는 수학/논리 문제 해결, 상식 질의응답, 복잡한 추론 대화, 코드 분석 등 다양한 AI 응용 분야에서 성능을 높이는 데 활용되고 있습니다. CoT 사용 시 출력되는 추론 경로(trace)는 사람에게 결과에 이르는 논리를 제공하여 신뢰성을 높이고, 모델에게는 한층 난도 높은 작업을 풀 수 있는 사고의 도구를 제공한다고 볼 수 있습니다. 이러한 이유로 CoT는 현재 LLM 응용의 디폴트 전략으로 자리잡고 있으며, 모델의 추론력을 끌어올리기 위한 연구가 활발히 계속되는 추세입니다.
CoT 실습 자료 및 오픈소스 활용 가이드
CoT 개념과 기법은 공개된 여러 자료와 코드를 통해 직접 실습해볼 수 있습니다. 아래에는 CoT를 구현하거나 실험하기 위한 주요 오픈소스 리소스와 활용 방법을 소개합니다.
-
공개 구현 코드 및 프로젝트: 많은 CoT 관련 연구들이 공식 구현을 깃허브에 공개하고 있습니다. 예를 들어, Kojima 등(2022)의 Zero-shot CoT 공식 구현이 GitHub에 공개되어 있어 해당 코드를 통해 “Let’s think step by step” 프롬프트 실험을 해볼 수 있습니다 ([2205.11916] Large Language Models are Zero-Shot Reasoners). 또한 Amazon 연구팀이 공개한 Auto-CoT 구현코드 ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models)를 사용하면, 주어진 문제세트에 대해 자동으로 CoT 예시 프롬프트를 생성하고 평가해볼 수 있습니다. Yao 등(2023)의 Tree-of-Thoughts 역시 공식 저장소에서 코드와 프롬프트 예시를 제공하고 있어, 이를 참고하여 모델의 단계별 분기 탐색을 구현해볼 수 있습니다 ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models). 이처럼 주요 CoT 기법들의 오픈소스 코드를 활용하면 논문 수준의 실험을 재현하거나 자신의 데이터에 적용하여 재현 실험을 할 수 있습니다.
-
체인 오브 쏘트 허브 및 리더보드: 최근 Hugging Face에서는 Open Chain-of-Thought Leaderboard를 운영하여 여러 공개 LLM들의 CoT 능력을 비교 평가하고 있습니다 (Introducing the Open Chain of Thought Leaderboard). 이 leaderboard는 모델이 CoT 프롬프트를 활용했을 때와 안 했을 때의 성능 차이(accuracy gain)를 측정함으로써, CoT의 효과를 정량화합니다 (Introducing the Open Chain of Thought Leaderboard). 이를 통해 사용자는 다양한 모델 (예: GPT-3, Llama2, PaLM 등)의 CoT 향상 정도를 확인하고 자신의 응용에 적합한 모델을 선택하는 데 참고할 수 있습니다. 또한 chain-of-thought-hub (GitHub - FranxYao/chain-of-thought-hub: Benchmarking large language models' complex reasoning ability with chain-of-thought prompting) 같은 오픈소스 프로젝트에서는 여러 복잡한 추론 벤치마크에 대해 LLM들의 CoT 성능을 벤치마킹할 수 있는 주피터 노트북과 평가 스크립트를 제공합니다. 이를 활용하면 코랩(Colab) 등에서 손쉽게 CoT 프롬프트 실험을 수행해보고 결과를 확인할 수 있습니다.
-
프롬프트 설계와 실행 가이드: CoT를 실습하려면 우선 프롬프트 엔지니어링이 중요합니다. Few-shot CoT의 경우, 먼저 풀고자 하는 문제 유형에 맞는 예제 몇 개를 만들고 각 예제에 대해 질문과 단계별 해설, 그리고 최종 답 형식으로 프롬프트를 구성합니다 (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ). 그런 다음 새로운 질문을 제시하면 모델이 예시들을 따라 유사한 사고 과정을 출력합니다. Zero-shot CoT를 시도할 때는 질문 뒤에 「차근차근 생각해보자」와 같이 모델에게 사고를 요구하는 문장을 추가하면 됩니다 (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ). 실제 GPT-3나 GPT-4 API를 사용할 경우 프롬프트에 이러한 문구를 넣어 호출하면 되며, OpenAI 챗GPT 인터페이스에서도 사용자 질문에 이어 “단계적으로 풀이해줘”와 같은 지시를 덧붙여 CoT 유도를 실험해볼 수 있습니다. 모델이 산출한 CoT 답변은 일반적으로 여러 줄에 걸쳐 논리를 전개하다 마지막에 답을 제시하는 형태가 되는데, 이때 Self-Consistency를 적용하려면 동일 질문에 대해 온샘플링(temperature를 높여 생성)으로 여러 답변을 얻은 후, 그중 가장 많이 나온 최종 답을 선택하면 됩니다. 이러한 다중 샘플링은 OpenAI API의
n
매개변수를 활용하거나 HuggingFacetransformers
의num_return_sequences
등을 활용해 구현할 수 있습니다. -
오픈소스 LLM을 활용한 실습: 거대 언어 모델 API를 사용하지 않더라도, 공개된 오픈소스 LLM으로 CoT를 실습할 수 있습니다 (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks). 예를 들어 Hugging Face Transformers 라이브러리를 통해 EleutherAI의 GPT-Neo나 GPT-J 모델을 불러와 사용할 수 있습니다. 파이썬 코드에서
pipeline("text-generation", model="EleutherAI/gpt-neo-1.3B")
와 같이 생성 모델 파이프라인을 만들고, 여기에prompt = "Explain step by step how X...?"
형태로 단계적 설명을 요구하는 프롬프트를 주어 생성하면 모델이 CoT 스타일로 응답하도록 시도해볼 수 있습니다 (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks) (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks). 작은 모델일수록 복잡한 추론에서는 성능이 떨어질 수 있지만, 간단한 문제에 대해서는 CoT의 형식을 흉내내어 구조화된 출력을 내는 것을 관찰할 수 있습니다. 예컨대 13억 규모 GPT-Neo 모델에게 “태양광 패널이 어떻게 전기를 생산하는지 단계별로 설명하라”고 요청하면, 1) 태양빛이 패널에 닿아 전자를 들뜨게 만들고, 2) 발생한 전류가 어떻게 변환되고, 3) 최종적으로 전력이 공급되는지를 번호付き 단계로 나열하는 답을 생성하는 식입니다 (Mastering Chain of Thought (CoT) Prompting for Practical AI Tasks). 이처럼 공개 모델로 작은 CoT 실습을 해본 뒤, 더 성능이 필요한 경우 공개 API나 대형 모델로 전환하여 같은 프롬프트를 시도해볼 수 있습니다. -
실습 예제 및 튜토리얼: CoT 활용을 위한 튜토리얼 자료도 다수 공개되어 있습니다. Hugging Face의 prompt engineering 가이드에는 CoT 프롬프트의 작성 예시와 응답 사례들이 포함되어 있어 참고할 수 있으며 (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ), Learn Prompting 같은 사이트에도 CoT 기법을 설명하는 섹션이 있습니다. 예제로, 앞서 언급한 사과 계산 문제(“사과를 10개 샀는데 2개를 주고 5개를 더 사고 1개를 먹으면 남은 개수는?”)를 들 수 있는데, CoT 없이 직접 묻는다면 모델이 오답을 내기 쉽지만, “차근차근 계산해보자.”라는 문장을 추가하면 모델이
10 - 2 = 8, 8 + 5 = 13, 13 - 1 = 12
같은 과정을 거쳐 최종 답12개
를 정확히 도출해냅니다. 이 과정을 직접 실습해보면 CoT의 효과를 체감할 수 있습니다. 더 나아가 자신만의 질문 세트를 가지고 CoT 프롬프트를 설계해보는 것도 추천됩니다. 예를 들어 과학 질문에 대해 단계적 설명을 유도하거나, 프로그래밍 문제에 대해 오류 원인을 찾아 고치는 생각의 흐름을 작성하게 하는 등, 다양한 도메인에 CoT를 응용해볼 수 있습니다. 이를 통해 CoT 프롬프트의 작성 요령(예시 제시 방법, 문구 선택 등)과 모델의 반응 패턴을 경험적으로 익힐 수 있을 것입니다.
以上의 자료와 가이드를 활용하면, 최신 CoT 연구 아이디어를 직접 실험하고 응용해볼 수 있습니다. 작은 예제로 시작하여 점차 복잡한 문제에 적용하면서, CoT의 강력함과 한계도 파악할 수 있을 것입니다. CoT는 여전히 발전중인 영역이므로, 실습을 통해 얻은 통찰을 바탕으로 프롬프트를 개선하거나 새로운 변형 기법을 고안해보는 것도 의미있는 실험이 될 것입니다.
참고 문헌 및 소스
- Chain-of-Thought 프롬πτ 기법 최초 제안: Wei et al., 2022 (Language Models Perform Reasoning via Chain of Thought) (Language Models Perform Reasoning via Chain of Thought)
- Zero-Shot CoT (“Let’s think step by step”): Kojima et al., 2022 ([2205.11916] Large Language Models are Zero-Shot Reasoners) ([2205.11916] Large Language Models are Zero-Shot Reasoners)
- Self-Consistency 디코딩 전략: Wang et al., 2022 ([2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models) ([2203.11171] Self-Consistency Improves Chain of Thought Reasoning in Language Models)
- Least-to-Most 문제 분할 프롬πτ: Zhou et al., 2022 ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models) ([2205.10625] Least-to-Most Prompting Enables Complex Reasoning in Large Language Models)
- Self-Taught Reasoner (STaR) 알고리즘: Zelikman et al., 2022 ([2203.14465] STaR: Bootstrapping Reasoning With Reasoning)
- Automatic CoT (Auto-CoT) 생성 기법: Zhang et al., 2022 ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models) ([2210.03493] Automatic Chain of Thought Prompting in Large Language Models)
- Tree-of-Thoughts 탐색 프레임워크: Yao et al., 2023 ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models) ([2305.10601] Tree of Thoughts: Deliberate Problem Solving with Large Language Models)
- 그 외 실습 자료: Prompt Engineering Guide (DAIR.AI) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ) (Chain-of-Thought Prompting | Prompt Engineering Guide<!-- --> ), HuggingFace CoT Leaderboard 블로그 (Introducing the Open Chain of Thought Leaderboard) (Introducing the Open Chain of Thought Leaderboard), CoT-Hub 벤치마크 (GitHub - FranxYao/chain-of-thought-hub: Benchmarking large language models' complex reasoning ability with chain-of-thought prompting) 등.