처음 이걸 배웠을 때 정말 놀라웠어요.
AI의 추론을 더 좋은 모델 없이도, 더 많은 돈 없이도, 프롬프트에 단 5개 단어만 추가해서 훨씬 개선할 수 있어요.
그 5개 단어가 뭐냐고요? “단계별로 생각해 봅시다.”
이 기법을 Chain of Thought 프롬프팅이라고 하는데, AI와 일하면서 배운 가장 꿀팁 중 하나예요.
문제: AI가 급하게 답으로 달려간다
기본적으로 AI는 질문에서 바로 답으로 점프하려고 해요. 수학 문제를 주면 숫자를 뱉고, 분석을 요청하면 결론을 줘요.
가끔은 괜찮지만, 실제 추론이 필요한 것들—논리 퀴즈, 다단계 수학, 복잡한 분석, 디버깅—이런 것들은 이 지름길이 에러를 만들어요.
AI는 자기 일을 보여줘야 한다는 걸 알아요. 그냥… 안 해요. 물어보지 않으면 말이에요.
Chain of Thought가 하는 역할
Chain of Thought (CoT) 프롬프팅은 AI에게 답을 주기 전에 추론 과정을 보여달라고 요청해요.
이런 대신:
질문 → 답
이렇게 돼요:
질문 → 1단계 → 2단계 → 3단계 → 답
이 간단한 변화가 엄청난 효과를 가져와요.
AI가 각 단계를 말해야 할 때, 자기 실수를 잡아내요. 건너뛸 수 있었던 요소들도 고려해요. 답을 추측하는 대신 답으로 나아가요.
Google Brain 연구자들은 2022년 이에 대한 획기적인 논문을 발표했어요. CoT 프롬프팅이 산술, 상식 추론, 기호 논리 문제의 성능을 엄청 개선했다는 걸 발견했어요—추가 학습 없이도요.
같은 AI. 같은 지식. 훨씬 더 좋은 결과. 그냥 큰 목소리로 생각하라고 했기 때문에요.
가장 간단한 버전: Zero-Shot CoT
Chain of Thought를 쓰는 가장 쉬운 방법은 정말 간단해요.
프롬프트에 “단계별로 생각해 봅시다"라고 추가하면 돼요.
CoT 없이:
배트와 공은 함께 1.10달러예요. 배트는 공보다 1달러 더 비싸요. 공은 얼마일까요?
AI는 보통 “$0.10"이라고 말해요—이건 틀렸어요.
CoT와 함께:
배트와 공은 함께 1.10달러예요. 배트는 공보다 1달러 더 비싸요. 공은 얼마일까요? 단계별로 생각해 봅시다.
이제 AI가 추론해요:
- 공의 가격을 “x"라고 하자
- 배트는 1달러 더 비싸니까 배트는 “x + $1”
- 함께는 $1.10이니까: x + (x + 1) = 1.10
- 즉 2x + 1 = 1.10
- 그러므로 2x = 0.10
- 따라서 x = $0.05
공은 0.05달러고 (배트는 1.05달러예요).
같은 질문. 이번에는 정답이에요. AI에게 일을 보여달라고 했기 때문이에요.
Few-Shot CoT: 먼저 예제를 보여주기
더 좋은 결과를 원하면, 질문하기 전에 AI에게 원하는 추론의 예를 보여줘요.
이것을 “few-shot” CoT라고 부르는데—한 개 이상의 완성된 예를 제공한 다음, 실제 질문을 해요.
예제 프롬프트:
Q: 로저는 테니스공 5개를 가지고 있어요. 테니스공 2캔을 더 사요.
각 캔마다 테니스공 3개가 있어요. 이제 테니스공이 몇 개일까요?
A: 단계별로 진행해 봅시다.
- 로저는 테니스공 5개로 시작해요
- 그가 2캔을 사요, 각각 3개씩
- 그럼 2 × 3 = 6개의 새로운 공
- 합계: 5 + 6 = 11개의 테니스공
Q: 구내식당에는 사과가 23개 있었어요. 점심을 만드는 데 20개를 썼고
6개를 더 샀어요. 이제 사과가 몇 개일까요?
A:
AI는 이제 새로운 질문에도 같은 단계별 형식을 따를 거예요.
Few-shot CoT는 설정에 더 많은 노력이 필요하지만 더 신뢰할 만해요—특히 “단계별로 생각해 봅시다"가 올바른 접근을 트리거하지 않을 수 있는 복잡하거나 이상한 문제들을 위해서요.
Chain of Thought가 가장 잘 작동할 때
CoT는 만능 해결책이 아니에요. 정말 빛나는 곳은 여기예요:
수학과 논리
여러 단계가 있는 것들. 단어 문제, 계산, 논리 연역.
시도해 봐: “3년 동안 5%의 복리이자를 10,000달러에서 계산해요. 매년 단계별로 생각해 봐.”
코드 디버깅
코드가 뭘 잘못했는지 이해하려면 실행을 추적해야 해요.
시도해 봐: “내 코드예요 [코드 붙여넣기]. 잘못된 결과를 주고 있어요. 이 함수를 부를 때 뭐가 일어나는지 단계별로 설명해 봐.”
분석과 의사결정
복잡한 결정은 여러 요소가 있어요. CoT가 체계적으로 고려하는 데 도움이 돼요.
시도해 봐: “이 3개의 직업 제안 중에 결정하고 있어요 [상세정보]. 각각의 장단점을 단계별로 생각한 다음 하나를 추천해 봐.”
읽기 이해
암시된 정보가 있는 긴 문서는 신중한 추론이 필요해요.
시도해 봐: “이 계약 기반으로 [텍스트 붙여넣기], 배송이 늦으면 누가 책임인지 결정해 봐. 관련 조항을 단계별로 검토해.”
CoT를 건너뛸 때
모든 게 단계별 사고로 이득을 보는 건 아니에요:
- 단순한 사실 질문: “프랑스의 수도가 뭐예요?“는 추론이 필요 없어요.
- 창의적인 글쓰기: 이야기와 콘텐츠는 논리 단계보다 예제와 톤 가이드에서 이득을 봐요.
- 빠른 작업: 그냥 리스트나 간단한 리라이트가 필요하면, CoT는 불필요한 길이를 더해요.
- 더 작은 모델: CoT는 능력 있는 모델에서 가장 잘 작동해요. 작은 AI 모델은 일관성 없는 추론 체인을 만들 수 있어요.
추론이 필요한 문제에 CoT를 써요. 나머지는 건너뛰세요.
5가지 바로 쓸 수 있는 CoT 프롬프트
직접 복사해서 써도 돼요:
1. 수학 문제
[여기에 당신의 문제]
이걸 단계별로 풀어봐. 최종 답을 주기 전에
각 계산 과정을 보여줘.
2. 디버깅 도움말
여기가 내 코드예요:
[코드 붙여넣기]
여기가 에러예요:
[에러 붙여넣기]
코드가 뭘 하는지 단계별로 진행하고, 어디서 잘못되는지 찾고,
그 다음 해결책을 설명해 봐.
3. 의사결정 분석
이 둘 중에 결정해야 해: [선택지 A]와 [선택지 B]
상황: [당신의 상황]
이걸 단계별로 분석해:
1. 각 선택지의 장단점을 나열해
2. 내 상황을 고려해
3. 주요 트레이드오프를 찾아내
4. 이유를 붙여서 추천해 줘
4. 문서 분석
이 문서를 기반으로:
[문서 붙여넣기]
이 질문에 답해: [당신의 질문]
최종 답을 주기 전에 관련 섹션을 단계별로 진행해.
당신의 결론을 뒷받침하는 특정 구절을 인용해 줘.
5. 복잡한 설명
[복잡한 주제]를 [그들의 배경]을 이해하는 누군가에게 설명해.
단계별로 분해해:
1. 그들이 이미 아는 것으로 시작해
2. 새로운 개념까지 만들어가
3. 도움이 될 때 비유를 써
4. 이 모든 게 어떻게 연결되는지로 마무리해
고급: 자기일관성
높은 위험의 문제들을 위해서는 더 정교한 기법이 있어요: 자기일관성.
추론 체인 하나를 생성하는 대신, AI에게 문제를 여러 번 풀도록 하고 (약간의 무작위성으로) 가장 흔한 답을 가져와요.
5명의 전문가가 독립적으로 문제를 풀도록 요청하는 것 같아요. 4명이 같은 결론에 도달하면, 아마 맞을 거예요.
수동으로 하기는 더 어렵지만 중요한 결정에는 알 만한 가치가 있어요.
결론
Chain of Thought 프롬프팅은 간단하면서도 강력한 드문 기법 중 하나예요.
추론 작업—수학, 논리, 디버깅, 분석—에서는 종종 틀린 답과 맞는 답의 차이를 만들어요. 그리고 이게 비용이 드는 건 프롬프트의 몇 가지 추가 단어뿐이에요.
AI의 추론에 답답할 때는 이 마법의 말을 시도해 봐요:
“단계별로 생각해 봅시다.”
뭐가 일어날지 놀랄 거예요.