Chain-of-Thought(사고의 연쇄)
한 줄 정의
Chain-of-Thought(CoT)는 AI에게 답을 바로 내놓지 말고 중간 추론 단계를 명시적으로 나열하게 유도하는 프롬프팅 기법이다.
왜 중요한가(실무)
복잡한 업무를 AI에 맡기면 "결론은 맞는데 근거를 모르겠다"거나, "그럴듯한 오답"이 나오는 경우가 잦다. CoT는 이 두 가지 문제를 동시에 줄인다.
첫째, 정확도 향상이다. 단순한 분류나 요약이 아니라, 여러 조건을 비교·계산·추론해야 하는 업무(비용 산정, 규정 적용, 진단 보조 등)에서 CoT를 적용하면 정답률이 눈에 띄게 올라간다. Google의 연구(Wei et al., 2022)에서 산술·상식·기호 추론 벤치마크 정확도가 크게 개선된 것이 대표 사례다.
둘째, 검증 가능성이다. AI가 중간 단계를 보여주면, 사람이 "어디서 틀렸는지"를 특정할 수 있다. 이는 HITL 검토, 감사, 디버깅에 직접적으로 도움이 된다. 결론만 나오는 블랙박스보다 중간 과정이 보이는 시스템이 실무에서 신뢰받는다.
셋째, 프롬프트 품질 관리다. CoT를 적용하면 프롬프트 자체가 더 구조적으로 바뀐다. "이 문서를 분석해줘" 대신 "1단계: 핵심 조건 추출 → 2단계: 조건 간 충돌 확인 → 3단계: 결론 도출"처럼 작성하게 되므로, 프롬프트의 재현성과 유지보수성이 높아진다.
핵심 이론(직관)
1) 작동 원리: 왜 단계를 나누면 더 잘 맞는가
LLM은 다음 토큰을 예측하는 모델이다. 복잡한 문제의 답을 한 번에 예측하면 중간 논리가 생략되어 틀릴 확률이 높다. 반면, "먼저 A를 확인하고, 그 결과를 바탕으로 B를 판단하라"고 하면, 각 단계의 출력이 다음 단계의 입력(컨텍스트)이 되어 논리 체인이 유지된다. 사람이 복잡한 수학 문제를 풀 때 중간 과정을 적는 것과 같은 원리다.
2) 주요 변형
- Zero-shot CoT: 프롬프트 끝에 "단계별로 생각해보세요(Let's think step by step)"만 추가한다. 가장 간단하다.
- Few-shot CoT: 예시 문제와 함께 중간 추론 과정까지 포함된 예시를 제공한다. 정확도가 더 높다.
- Self-Consistency: 같은 질문에 대해 여러 번 CoT를 실행한 뒤, 가장 많이 나온 결론을 채택한다. 비용이 들지만 안정적이다.
3) 한계
CoT는 만능이 아니다. 단순 분류, 번역, 요약처럼 추론 깊이가 얕은 작업에서는 효과가 미미하거나 오히려 토큰만 낭비한다. 또한, 중간 단계가 "그럴듯하지만 틀린" 논리를 전개할 수도 있으므로, CoT 출력 자체를 맹신하면 안 된다.
실무 포인트
1) 어떤 업무에 적용할 것인가
CoT가 효과적인 업무 유형:
- 다단계 판단: 여러 조건을 순서대로 확인해야 하는 업무 (예: 보험 심사, 규정 적용, 견적 산정)
- 비교·분석: 복수의 옵션을 비교하여 추천하는 업무 (예: 제품 비교표, 정책 영향 분석)
- 오류 비용이 높은 업무: 결론의 근거를 남겨야 하는 업무 (예: 의료·법률·재무 보조)
2) 프롬프트 작성 패턴
[역할 지정]
당신은 {도메인} 전문가입니다.
[단계 지시]
아래 순서로 분석하세요:
1단계: {입력 데이터}에서 핵심 조건을 추출하세요.
2단계: 각 조건이 {기준}에 부합하는지 판단하세요.
3단계: 부합하지 않는 조건이 있으면 이유를 설명하세요.
4단계: 최종 결론을 내리세요.
[출력 형식]
각 단계의 결과를 명시적으로 적어주세요.
체크리스트
- 대상 업무가 다단계 추론이 필요한 유형인지 확인했는가
- 프롬프트에 추론 단계를 명시적으로 지정했는가
- 중간 단계 출력을 사람이 검토할 수 있는 구조인가
- 단순 작업에 CoT를 과도하게 적용하여 토큰/비용을 낭비하고 있지 않은가
- Few-shot 예시를 제공할 경우, 예시의 추론 과정이 정확한지 검증했는가
- CoT 결과의 중간 논리가 틀릴 수 있음을 감안한 검증 단계가 있는가