챗GPT 답변 정확도 높이는 Plan-and-Solve 전략 (단계별 생각의 한계)
단계별로 생각해도 틀리는 AI, 이제 계획을 세우고 실행하게 만드세요
LLM의 두 얼굴: 똑똑하지만 왜 자꾸 틀릴까?
ChatGPT나 Claude 같은 대규모 언어모델(LLM)은 지식으로는 전문가 수준입니다. 그런데도 복잡한 수학 문제나 논리가 꼬인 질문 앞에서는 어처구니없는 실수를 저지르곤 합니다.
우리는 그동안 이 문제를 해결하겠다며 ‘단계별로 생각해 봐(Let’s think step by step)’라는 주문을 외쳐왔습니다. 이를 ‘Zero-shot Chain-of-Thought(CoT)’ 기법이라고 부르죠. 성과도 있었습니다. 정답률이 몇 퍼센트포인트 올라갔거든요.
하지만 진짜 문제는 실제로 그 기법을 써본 사람들이 알고 있습니다. 단계별 사고 유도도 만능은 아니라는 거죠. 오히려 더 복잡한 질문일수록 AI는 초반 분석은 맞아도 중간에 길을 잃거나, 계산을 틀리거나, 아예 문제 자체를 잘못 이해하곤 합니다.
연구 결과, 기존 방식의 한계는 명확합니다.
- 계산 실수: 기본 산술(더하기, 빼기)을 틀림 (약 7%)
- 단계 누락: 중간 과정을 제멋대로 건너뜀 (약 12%)
- 의미 오해: 문제 자체를 잘못 해석함 (약 27%)
특히 의미 오해는 전체 실패의 4분의 1을 차지합니다. AI가 아무리 똑똑해도 문제를 제대로 이해하지 못하면 나머지는 모두 소용없다는 뜻이죠.
왜 AI는 자꾸 단계를 빼먹을까?
이를 설명하기 위해 쉬운 비유를 들어보겠습니다.
아주 복잡한 요리를 하는데, 레시피도 미리 안 보고 일단 프라이팬부터 달구는 것과 같습니다. 기존의 CoT 방식은 AI에게 즉흥적인 추론을 강요하기 때문에, 단계가 길어질수록 재료(정보)를 빠뜨리거나 순서를 건너뛸 확률이 높아집니다.
논문 저자들은 GPT-3 실험을 통해 단순한 단계별 사고 유도로는 추론 누락과 계산 실수를 완벽히 막을 수 없다는 점을 확인했습니다. 그래서 나온 해결책이 바로 ‘선 계획, 후 실행‘입니다.
해결책: 계획하고 해결하라 (Plan-and-Solve)
Plan-and-Solve 전략의 핵심은 작업을 ‘계획(Planning)’과 ‘실행(Execution)’으로 명쾌하게 분리하는 것입니다.
기존 방식 vs. 개선 방식
“Let’s think step by step.” (단계별로 생각해 봐.)
→ AI: (생각나는 대로 즉흥적으로 풀이 시작)
“Let’s first understand the problem and devise a plan to solve the problem. Then, let’s carry out the plan and solve the problem step by step.”
(먼저 문제를 이해하고 해결 계획을 세워. 그 다음에 계획을 실행해서 단계별로 풀어.)
→ AI: 1. 문제 분석 → 2. 하위 작업 계획 수립 → 3. 순차적 실행
이 작은 변화만으로도 AI는 훨씬 체계적으로 변합니다. 마치 요리사에게 ‘일단 요리해봐’라고 하는 것과 ‘먼저 레시피를 읽고 재료를 준비한 뒤 요리해’라고 하는 것의 차이죠.
하지만 여기서 끝이 아닙니다. 성능을 극한으로 끌어올리는 ‘치트키’가 하나 더 있습니다.
성능의 정점: 변수 추출의 마법 (PS+)
단순히 계획만 세우는 것보다 더 강력한 건, ‘관련 변수(Variable)’를 먼저 뽑아내라고 시키는 겁니다. 이를 PS+ 프롬프팅이라고 합니다.
숫자나 조건을 미리 명시적으로 적어두게 하면, 나중에 계산할 때 엉뚱한 숫자를 가져오거나 조건을 빠뜨리는 실수가 획기적으로 줄어듭니다.
즉시 사용 가능한 PS+ 프롬프트
“Let’s first understand the problem, extract relevant variables and their corresponding numerals, and devise a plan. Then, let’s carry out the plan, calculate intermediate results (pay attention to calculation and common sense), solve the problem step by step, and show the answer.”
한국어 해석
“먼저 문제를 이해하고, 관련 변수와 숫자를 추출한 뒤 계획을 세우세요. 그 다음 계획을 실행하여 중간 결과를 계산하고(정확도와 상식에 주의), 단계별로 해결하여 답을 주세요.”
이 프롬프트 한 줄이 전부입니다. 복잡하지 않죠? 하지만 효과는 극적입니다.
실제 사례: Grace와 Alex의 몸무게 문제
이론만으로는 와닿지 않으니 구체적인 예시를 보겠습니다.
문제: Grace는 125파운드, Alex는 Grace의 4배보다 2파운드 적게 나감. 둘의 합은?
PS (기본) 적용 시
결과: 오답 (497파운드)
- 계획 단계: “Alex의 무게를 먼저 계산하고 두 사람의 무게를 더한다” ✓
- 실행 단계: 계산은 정확했지만…
- 최종 답변 단계: 마지막 더하기에서 엉뚱한 숫자를 가져옴 ✗
문제는 계획 단계에 변수 추출이 명시적으로 없었기 때문입니다.
PS+ (심화) 적용 시
결과: 정답 (623파운드)
- 변수 추출: Grace = 125파운드, Alex = x (미지수)
- 계획: Alex 무게 계산 (4 × 125 – 2) → 합산
- 실행: 4 × 125 = 500, 500 – 2 = 498 (Alex의 무게)
- 합산: 125 + 498 = 623
- 최종 답변: 623파운드 ✓
변수를 명시적으로 추출했기 때문에, 계산의 각 단계에서 해당 값을 정확히 참조할 수 있었습니다.
같은 AI, 같은 모델인데 프롬프트 하나의 차이로 결과가 달라집니다. 이게 바로 프롬프트 엔지니어링의 가치입니다.
데이터가 증명합니다: 가성비 최고의 프롬프트
이게 정말 효과가 있을까요? 연구팀은 10개의 데이터셋으로 실험했습니다. 결과는 꽤 놀랍습니다.
| 추론 능력 | 기존 방식 (Zero-shot-CoT) |
PS+ (변수 추출) |
성능 향상 |
|---|---|---|---|
| 수학 추론 | 72.9% | 76.7% | +3.8%p |
| 상식 추론 | 65.2% | 71.9% | +6.7%p |
특히 주목할 점은 상식 추론에서의 성능 향상입니다. 6.7%포인트 올라간 것만 봐서는 크지 않아 보일 수 있지만, 이는 기존 방식이 틀리던 문제의 절반 이상을 새로운 방식으로 풀 수 있다는 의미입니다.
가성비: 프롬프트 한 줄만 바꿔도 충분
더 흥미로운 점은 이것입니다:
PS+는 예시를 하나도 안 줘도(Zero-shot) 예시를 8개나 줘야 하는 few-shot 방식과 대등하거나 더 뛰어난 성능을 보였습니다.
이게 왜 중요할까요? 예시를 만드는 데는 시간과 비용이 들어갑니다. 하지만 PS+는 프롬프트 한 줄만 고쳐도 됩니다. 복잡하게 예시 데이터를 만드느라 고생할 필요가 없다는 뜻입니다.
5가지 핵심 포인트 정리
Plan-and-Solve 전략을 성공적으로 활용하려면 다섯 가지를 기억하세요.
- 문제 이해 우선: AI가 문제를 제대로 이해했는지 확인하게 합니다.
- 변수 명시화: 주어진 숫자와 조건을 명확히 나열하도록 지시합니다.
- 계획 수립: 어떤 순서로 풀 것인지 미리 정하게 합니다.
- 단계별 실행: 계획에 따라 한 단계씩 실행하고 중간 결과를 보여줍니다.
- 검증 단계: “정확도와 상식에 주의”라는 명시적 경고를 포함합니다.
언제 PS+를 써야 할까?
Plan-and-Solve가 모든 상황에 필요한 건 아닙니다. 효과적으로 쓸 수 있는 상황을 정리했습니다.
PS+가 효과적인 경우:
- 수학 문제나 논리 퍼즐 풀이
- 여러 조건을 종합해야 하는 분석
- 데이터를 정리하고 계산하는 작업
- 복잡한 비즈니스 의사결정
반대로 창의적인 글쓰기나 자유로운 아이디어 브레인스토밍에서는 이렇게 구조화된 지시가 오히려 방해가 될 수 있습니다. 문맥에 맞는 판단이 필요합니다.
마지막 조언: 지금 바로 프롬프트를 교체하세요
LLM 기술은 계속 발전하고 있습니다. GPT-4, Claude 3, Gemini 같은 새로운 모델들이 나타나고 있죠. 하지만 그 성능을 100% 끌어내는 건 여전히 우리의 몫입니다.
특히 정확도가 생명인 데이터 분석이나 에이전트 시스템을 구축하고 계신다면, ‘Plan-and-Solve’는 선택이 아니라 필수입니다.
지금 바로 해보세요:
- 현재 사용 중인 System Prompt를 엽니다.
- 거기에 적힌 “Let’s think step by step”을 찾습니다.
- 그것을 지우고, PS+ 템플릿으로 바꿉니다:
“Let’s first understand the problem, extract relevant variables and their corresponding numerals, and devise a plan. Then, let’s carry out the plan, calculate intermediate results (pay attention to calculation and common sense), solve the problem step by step, and show the answer.”
AI가 훨씬 똑똑해진 느낌을 받으실 겁니다. 이게 바로 작은 변화가 만드는 큰 효과입니다.
