Chain-of-Thought Prompting(사고의 사슬 프롬프팅) 설명 (그 뒤에 숨겨진 연구 포함)
요약
Chain-of-Thought(CoT) 프롬프팅의 개념과 작동 원리를 설명합니다. 모델이 최종 답변 전 단계별 추론 과정을 생성하도록 유도하여 복잡한 문제 해결 능력을 높이는 기술을 다룹니다.
핵심 포인트
- CoT는 모델이 중간 추론 단계를 생성하여 복합 오류를 줄이는 기술임
- Zero-shot CoT는 트리거 문구만 사용하며, Few-shot CoT는 예시를 포함함
- 인지적 요구가 높은 문제일수록 CoT를 통한 성능 향상 효과가 큼
- 모델이 자신의 출력을 작업 기억(working memory)으로 활용하게 함
만약 당신이 ChatGPT에 "차근차근 생각해 보자(let's think step by step)"라고 입력하여 답변의 품질이 급격히 향상되는 것을 본 적이 있다면, 당신은 이미 자신도 모르게 Chain-of-Thought (CoT, 사고의 사슬) 프롬프팅을 사용한 것입니다. 그 문구는 마법이 아닙니다. 그것은 동료 검토(peer-reviewed)를 거친 연구에 의해 뒷받침되는 의도적인 기술입니다.
그것은 무엇인가
Chain-of-thought (CoT) 프롬프팅은 AI 모델이 최종 답변을 내놓기 전에 문제에 대해 단계별로(step by step) 추론하도록 지시합니다. 한 번의 도약으로 응답을 예측하는 대신, 모델은 해결책으로 이어지는 일련의 중간 추론 단계, 즉 "사고의 사슬(chain of thought)"을 생성합니다.
이것이 작동하는 이유는 언어 모델(Language Models)이 작동하는 방식, 즉 다음 토큰(token)을 예측하는 방식에 달려 있습니다. CoT가 없다면 복잡한 문제에 답하는 모델은 모든 추론을 단 한 번의 예측으로 압축해야 합니다. 즉, 인간이 연습장을 사용하는 것처럼 "머릿속에서 작업"할 수 없습니다. CoT는 이를 변화시킵니다. 각 중간 단계는 다음 단계를 지탱하는 비계(scaffold)가 되어, AI를 다단계 작업에서 신뢰할 수 없게 만드는 복합적인 오류(compounding error)를 줄여줍니다.
모델이 대수학 문제를 풀기 전에 "1단계: 변수 식별"이라고 작성할 때, 컨텍스트 윈도우(context window)에는 이제 유용한 중간 상태가 포함됩니다. 그리고 다음 토큰은 가공되지 않은 질문보다 훨씬 더 제약된 정보를 바탕으로 예측됩니다. 결과적으로 모델은 자신의 출력을 작업 기억(working memory)으로 사용하고 있는 것입니다.
Zero-Shot vs Few-Shot CoT
- Zero-shot CoT는 예시 없이 "차근차근 생각해 보자(Let's think step by step)"와 같은 트리거 문구만 필요합니다. 모델은 아무런 정보 없이 처음부터 추론합니다.
- Few-shot CoT는 실제 질문을 하기 전에 추론 과정을 보여주는 2~5개의 풀이 예시를 제공하여, 패턴을 더욱 엄격하게 제약합니다.
Zero-shot은 구현하기 더 쉽고, Few-shot은 추론 형식이 중요한 전문적이거나 중대한 작업에서 더 신뢰할 수 있습니다.
| 차원 (Dimension) | Zero-Shot CoT | Few-Shot CoT |
|---|---|---|
| 제공하는 것 | 트리거 문구 (Trigger phrase)만 제공 | 2~5개의 풀이 예시 + 트리거 제공 |
| ... |
구체적인 전/후 사례: 다단계 사과 문장제 문제를 직접 질문하면 모델이 "사과 22개"라고 답할 수 있습니다. 여기에 "단계별로 생각해 봅시다 (Let's think step by step)"를 추가하면, 모델은 각 연산 과정(1/3 판매, 배달 받음, 절반 판매)을 나열하며 정확한 정답인 17에 도달합니다. 동일한 모델, 동일한 질문임에도 불구하고 트리거 하나만으로 모델이 단계별 모드로 전환됩니다.
그 뒤에 숨겨진 연구
CoT는 **Wei et al. (2022)**의 논문
일반적인 경험칙(rule of thumb)은 다음과 같습니다: 만약 해결해야 할 과제가 종이에 직접 풀 수 있는 유형이라면, CoT가 도움이 될 것입니다. 하지만 머릿속으로 즉시 답할 수 있는 유형의 문제라면, CoT는 정확도를 개선하지 못하고 응답만 길게 만들 뿐입니다. 기술을 인지적 요구(cognitive demand)에 맞추어 사용하세요.
몇 단계까지? (How Many Steps?)
일반적으로 단계를 지정할 필요는 없습니다. '이것을 단계별로 추론해 보세요(Reason through this step by step)'라고 지시하면 모델이 스스로 깊이를 결정하게 합니다. 더 구조화된 출력을 원한다면, '번호를 매겨 단계별로 추론하세요(reason in numbered steps)'라고 추가할 수 있습니다. 매우 복잡한 문제의 경우, '만약 어떤 단계에서 상당한 불확실성이 발견되면 명시적으로 표시하세요(If any step involves significant uncertainty, flag it explicitly)'라는 문구를 추가하여 모델의 불확실성을 숨기는 대신 드러낼 수 있습니다.
전체 가이드—여섯 가지 복사 준비가 된 CoT 패턴(범용 제로샷, 수학/논리 퓨샷, 의사결정, 디버깅, 논증 분석, 연구 종합), 실제 적용 사례, 그리고 출처가 포함된 완전한 FAQ—는 여기에서 작성했습니다:
https://my-blog.org/tangents/post/chain-of-thought-prompting-explained
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기