Plan-and-Solve 완전 정리, 프롬프트 한 줄로 단계 누락 줄이기
요약
- 예시 없이 쓰는 zero-shot 프롬프팅 기법입니다.
"Let's think step by step"을 한 단계 발전시켜, 먼저 계획을 세우고 그 계획대로 실행하게 시킵니다. - 문제의식이 구체적입니다. zero-shot CoT는 계산 오류, 단계 누락, 의미 오해 세 가지로 틀리는데, 그중 단계 누락을 정조준합니다.
- 기법은 둘로 나뉩니다. PS는 계획 후 실행으로 단계 누락을, PS+는 거기에 변수 추출과 중간 계산 기록을 더해 계산 오류까지 겨냥합니다.
- 가장 강한 결과는 이겁니다. 수학 추론에서 예시 8개를 준 8-shot CoT에 필적했습니다. 손으로 예시를 만들지 않고도 few-shot급에 근접했다는 뜻입니다.
- 실무적 매력은 비용이 거의 0이라는 점입니다. 파인튜닝도 예시 제작도 없이 프롬프트 문장만 바꿉니다.
- 한계도 분명합니다. 처음 계획이 틀리면 그 위 실행이 통째로 흔들립니다. 그래서 에이전트로 일반화될 때 재계획 루프가 사실상 필수가 됐습니다.
1장. 왜 나왔나
1.1 논문 정보
제목 Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought
Reasoning by Large Language Models
저자 Lei Wang, Wanyu Xu, Yihuai Lan, Zhiqiang Hu,
Yunshi Lan, Roy Ka-Wei Lee, Ee-Peng Lim
출처 ACL 2023 Long Paper (pp. 2609-2634), arXiv:2305.040911.2 few-shot CoT에서 zero-shot CoT로
few-shot CoT
사람이 "이렇게 단계적으로 푸는 거야" 하는 예시 몇 개를 손으로 만들어
프롬프트에 넣는다
└──► 잘 되지만 손이 많이 간다
zero-shot CoT
문제 뒤에 "Let's think step by step" 한 줄만 붙인다
└──► 예시 없이도 모델이 추론 과정을 풀어낸다수고를 없앤 게 zero-shot CoT의 기여입니다. 그런데 논문은 여기서 멈추지 않습니다.
1.3 zero-shot CoT가 틀리는 세 가지
논문이 진단한 세 유형입니다.
계산 오류 (calculation error)
중간 산수를 틀린다
단계 누락 오류 (missing-step error)
풀이에 꼭 필요한 단계를 건너뛴다
의미 오해 오류 (semantic misunderstanding)
문제 자체를 잘못 이해한다Plan-and-Solve는 이 중 단계 누락을 정조준합니다.
1.4 직관
사람도 어려운 문제 앞에서 곧장 계산에 뛰어들면 중간을 빼먹는다
먼저 풀이 개요를 적고 그 순서를 따라가면
빠뜨리는 단계가 줄어든다
이 습관을 프롬프트로 모델에게 강제하는 것요리 비유가 정확합니다. 재료를 보자마자 손이 먼저 나가는 대신, 먼저 레시피를 적고 그 순서대로 조리합니다. 레시피를 적는 단계에서 "아, 소금을 빼먹을 뻔했네"처럼 빠진 단계를 미리 잡습니다.
2장. 두 국면
2.1 구조
문제
│
▼
① Plan (계획) 전체 과제를 더 작은 하위 과제로 나누는 계획을 세운다
│
▼
② Solve (실행) 그 계획에 따라 하위 과제를 순서대로 푼다
│
▼
최종 답zero-shot CoT가 "생각하자"는 막연한 한 마디였다면, Plan-and-Solve는 "무엇을 어떤 순서로 할지 개요부터 적고 그대로 따라가자"로 추론의 뼈대를 먼저 만들게 합니다.
2.2 여기서 말하는 "계획"의 범위
혼동하기 쉬운 지점이라 명확히 해 둡니다.
Plan-and-Solve 의 계획은
모델이 텍스트로 적는 추론 계획이다
외부 도구를 호출하는 실행 계획이 아니다
프롬프트 한 번으로 계획과 풀이가 한 응답 안에서 이어진다이 구분이 5장의 ReAct 대비와 6장의 에이전트 일반화로 이어집니다.
3장. PS와 PS+
3.1 기법의 전부는 트리거 문장이다
문제 뒤에 붙이는 지시문만 바뀝니다. 그게 전부입니다.
3.2 PS, 기본형
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.먼저 문제를 이해하고 풀이 계획을 세우자.
그런 다음 그 계획대로 단계별로 풀자.겨냥하는 오류는 단계 누락입니다.
3.3 PS+, 강화형
PS에 더 자세한 지시를 얹어 계산 오류까지 겨냥합니다. 추가 지시는 둘입니다.
① 관련 변수와 수치를 먼저 추출하라
문제에 나온 값들을 명시적으로 뽑아 적게 한다
② 중간 계산 결과를 적으며 계산에 주의하라
산수를 건너뛰지 말고 한 줄씩 남기게 한다PS+는 "계획을 세워라"에 더해 "값을 빠짐없이 뽑고, 중간 계산을 눈에 보이게 적어라"를 추가해 풀이의 품질 자체를 끌어올립니다.
3.4 어느 걸 쓰나
PS 단계 누락이 주 문제일 때
PS+ 계산이 들어가는 문제. 수학류라면 거의 항상 PS+4장. 한 문제로 따라가기
4.1 문제
한 베이커리가 하루에 컵케이크 24개를 굽는다. 오전에 전체의 3/4을 팔았고, 오후에는 남은 것의 절반을 팔았다. 하루가 끝났을 때 남은 컵케이크는 몇 개인가?
4.2 계획 단계
PS+는 먼저 변수를 뽑고 개요를 적습니다.
변수 추출
하루 생산량 = 24
오전 판매 = 전체의 3/4
오후 판매 = (오전 후 남은 것)의 1/2
계획
1) 오전 판매량을 구한다
2) 오전이 끝난 뒤 남은 수를 구한다
3) 오후 판매량을 구한다
4) 최종 남은 수를 구한다4.3 실행 단계
1) 오전 판매량 = 24 x 3/4 = 18
2) 오전 후 남은 수 = 24 - 18 = 6
3) 오후 판매량 = 6 x 1/2 = 3
4) 최종 남은 수 = 6 - 3 = 3
답: 3개4.4 두 함정이 어떻게 막혔나
이 예시의 요점입니다.
단계 누락이 막힌 지점
계획의 2번("오전 후 남은 수")을 명시했기 때문에
오후 판매를 전체 24 가 아니라 남은 6 에 적용해야 한다는 걸 놓치지 않는다
계획 없이 곧장 가면
"24의 절반인 12" 같은 실수가 슬며시 끼어든다
계산 오류가 막힌 지점
각 줄의 산수를 눈에 보이게 적었기 때문에 검산이 쉽다설명용 예시이고, 실제 논문의 프롬프트와 수치는 원문을 따릅니다.
5장. 실험 결과
5.1 평가 규모
데이터셋 세 부류(산술, 상식, 기호 추론)에 걸친 10개
백본 GPT-35.2 논문이 보고한 것
① PS 와 PS+ 가 모든 데이터셋에서
zero-shot CoT 를 큰 차이로 일관되게 앞섰다
② Zero-shot Program-of-Thought 프롬프팅에 필적하거나 능가했다
③ 수학 추론에서 예시 8개를 준 8-shot CoT 에 필적했다③이 가장 강한 셀링포인트입니다. 손으로 만든 예시 없이도 few-shot급 성능에 근접했다는 뜻입니다.
5.3 오류 분석
저자들은 PS 가 단계 누락 오류를
PS+ 가 추가로 계산 오류를 줄인다고 보고한다
다만 "단계 누락 비율 몇 %에서 몇 %" 같은 구체 수치는
초록 수준에서 확인되지 않는다
본문 표를 인용할 때는 원문을 직접 대조하는 게 안전하다5.4 이 수치를 읽을 때
중요한 유보 조건입니다.
위 성능은 GPT-3 시점의 측정이다
요즘처럼 추론이 강한 모델은
프롬프트 없이도 내부적으로 계획을 세우는 경향이 있어
"계획을 명시하게 만드는" 이득이 그때만큼 크지 않을 수 있다
이건 원 논문 범위를 벗어난 해석이므로 검증되지 않은 추정이다2차 자료가 이 유보를 빼고 인용하는 경우가 많습니다. 최신 모델에서 그대로 재현되리라 단정하면 안 됩니다.
6장. 계획 계열 안에서의 위치
6.1 이웃 기법과 비교
Plan-and-Solve는 "계획을 세우는" 기법 중 가장 가벼운 축입니다.
| 기법 | 계획의 성격 | 특징 |
|---|---|---|
| zero-shot CoT | 계획 없음 | 한 줄로 추론만 유도 |
| Plan-and-Solve | 추론 계획, 프롬프트 1회 | 계획을 글로 적고 그대로 실행 |
| ReAct | 계획과 행동을 번갈아 | 관찰마다 LLM 재호출. 도구 사용에 강함 |
| Tree of Thoughts | 경로 탐색 | 여러 계획을 트리로 펼쳐 백트래킹 |
| ReWOO | 도구 호출 선계획 | 외부 도구 시퀀스를 미리 통째로 계획 |
6.2 핵심 대비는 ReAct와의 관계
ReAct
추론과 행동을 번갈아 섞어
매 관찰마다 큰 모델을 다시 부른다
호출 수가 단계에 비례한다
Plan-and-Solve
계획과 실행을 분리한다
순수 프롬프팅 형태에서는 계획과 풀이가 한 응답에 담겨
호출 1회로 끝난다교환 관계가 명확합니다.
Plan-and-Solve 가 유리한 것 호출 수, 지연, 비용
ReAct 가 유리한 것 실행 도중 환경이 바뀔 때의 적응력7장. 프롬프팅에서 에이전트로
7.1 plan-and-execute 패턴
Plan-and-Solve의 "계획 먼저" 사상은 이후 에이전트 아키텍처로 일반화됐습니다.
Planner 큰 모델이 전체 계획을 한 번 세운다
│
▼
Executor 각 단계는 가벼운 실행기가 처리한다
큰 모델을 계획하고 재계획할 때만 부른다
ReAct 의 단계 비례 재호출보다 호출 수와 지연과 비용이 준다LangChain은 이 패턴을 공식 제공하며 "Wang et al.의 Plan-and-Solve Prompting에 느슨히 기반"한다고 밝힙니다.
7.2 재계획 루프
첫 계획이 틀리면 그 위 실행이 다 흔들리므로, 실무 구현은 재계획 루프를 덧붙입니다.
Hugging Face smolagents
planning_interval N 스텝마다 계획을 갱신
Human-in-the-Loop 사람이 계획을 검토하고 수정하는 워크플로순수 프롬프팅 기법을 에이전트로 옮기면 반드시 이 보완이 붙는다는 게 이 계보의 특징입니다.
7.3 저비용 환경에서의 응용
매 관찰마다 큰 모델을 부르는 대신
한 번의 호출로 계획(또는 도구와 인자)을 한꺼번에 뽑고
값이 갖춰지면 즉시 실행한다
Plan-and-Solve 가 프롬프팅 층에서 보여 준
"계획과 실행 분리"의 실무 버전이다온디바이스나 저비용 환경 에이전트가 이 사상을 빌려 호출 수를 압축합니다.
8장. 한계와 정리
8.1 네 가지 한계
① 계획 오류의 전파
처음 계획이 틀리면 그 위 실행이 통째로 무너진다
그래서 실무에선 재계획 루프가 사실상 필수다
② PS 만으로는 계산 오류가 남는다
수학류에서 PS+ 의 "변수와 중간계산 적기"를 빼면
계산 실수가 그대로 남는다
③ 동적 과제와 도구 과제엔 부적합
외부 환경 상호작용이 필요한데 순수 PS 를 쓰면 변화에 대응하지 못한다
그땐 ReAct 나 plan-and-execute 로 간다
④ 강추론 모델에서의 이득은 열린 문제
GPT-3 시점의 이득이 최신 모델에서 얼마나 남는지는 재검증이 필요하다8.2 핵심 셋
① zero-shot CoT 의 단계 누락을
"계획을 먼저 적고 그대로 실행하라"는 프롬프트로 줄인다
② PS+ 는 "변수와 중간계산을 적어라"를 더해 계산 오류까지 겨냥하고
수학 추론에서 8-shot CoT 에 필적했다 (GPT-3 기준)
③ 파인튜닝도 예시 제작도 없이 프롬프트 문장만 바꿔 얻는 이득이다
이 비용 구조가 실무적 매력의 전부다8.3 남는 질문
- 계획을 내부적으로 이미 세우는 강추론 모델에서도 계획 명시의 이득이 남을까. 남는다면 어떤 과제 유형에서인지가 재검증 대상입니다.
- 계획의 품질을 실행 전에 검증할 수 있나. 지금은 실행해 봐야 계획이 틀렸는지 알 수 있습니다.
- 재계획 주기를 어떻게 정하나. 너무 잦으면 호출 절감 효과가 사라지고, 너무 드물면 어긋난 계획으로 오래 갑니다.
8.4 용어 정리
| 용어 | 한 줄 뜻 |
|---|---|
| Plan-and-Solve (PS) | "계획을 먼저 세우고 단계대로 실행"하라는 zero-shot 프롬프팅 기법 |
| PS+ | PS에 변수 추출과 중간 계산 기록 지시를 더해 계산 오류까지 겨냥한 강화판 |
| zero-shot CoT | 예시 없이 한 줄 지시로 단계적 추론을 유도하는 프롬프팅 |
| 단계 누락 오류 | 추론에서 필요한 단계를 빠뜨려 생기는 오답 |
| 계획-실행 분리 | 계획과 행동을 한 번에 나누는 방식. ReAct의 인터리빙과 대비 |
| Planner / Executor | 큰 모델이 계획하고 가벼운 실행기가 단계를 처리하는 분업 |
| 재계획 (replanning) | 실행 중 계획을 다시 세우거나 갱신하는 루프 |
| Human-in-the-Loop | 계획이나 행동을 사람이 검토하고 수정하도록 끼워 넣는 것 |
8.5 참고자료
- Wang et al., "Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models" (ACL 2023, arXiv:2305.04091)
- ACL Anthology 2023.acl-long.147, 학회 공식 페이지
- LangChain, Plan-and-Execute Agents
- Hugging Face smolagents, planning_interval과 Human-in-the-Loop 예제
- Huang et al., "Understanding the Planning of LLM Agents: A Survey" (arXiv:2402.02716)
- Wei et al., "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" (NeurIPS 2022, arXiv:2201.11903)
'AI Agent > Patterns' 카테고리의 다른 글
| DoT (Division of Thoughts) (0) | 2026.08.11 |
|---|---|
| Reflexion (0) | 2025.10.19 |
| ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models (0) | 2024.10.14 |
| ReAct (Reasoning + Acting) (0) | 2024.02.05 |
댓글