Deep Dive: Plan-and-Solve / Least-to-Most
Tổng quan Planning
Đây là kỹ thuật chuyển trọng tâm từ “nghĩ ra đáp án” sang “thiết kế một chuỗi subproblem có thể giải được”. Với bài khó, việc chia nhỏ thường quan trọng hơn việc làm cho câu trả lời nghe giống suy luận.
Least-to-Most Prompting giải bài toán bằng cách chia thành những câu hỏi dễ hơn theo thứ tự tăng dần độ khó. Plan-and-Solve thêm một bước lập kế hoạch rõ ràng trước khi giải từng subproblem.
Điểm mạnh của nhóm này là nó giảm missing-step errors. Thay vì kỳ vọng model tự giữ toàn bộ dependency trong một chuỗi CoT, ta bắt nó tạo một kế hoạch sơ bộ rồi thực thi kế hoạch đó.
| Signal | Ý nghĩa | Giá trị |
|---|---|---|
| Plan first | Tách bài toán thành các bước nhỏ | Giảm rơi rụng bước quan trọng |
| Subproblem sequence | Giải từ dễ đến khó | Tăng khả năng generalize sang bài khó hơn exemplar |
| Explicit merge | Ghép kết quả trung gian ở cuối | Dễ debug pipeline |
Cơ chế Mechanics
Mẫu cơ bản là: 1) viết plan, 2) giải từng subtask, 3) ghép lại. Với Least-to-Most, subtask của bước sau được hỗ trợ bởi output của bước trước. Với Plan-and-Solve, phần “plan” có thể tồn tại như một artifact riêng.
Vì phần planning được tách ra, model ít có xu hướng “điền vào chỗ trống” bằng suy đoán ở giữa chừng. Đây là khác biệt đáng kể so với CoT tự do.
Plan-and-Solve prompt skeleton
Task: solve the problem.
Step 1: write a short plan with 3-5 substeps.
Step 2: solve each substep in order.
Step 3: merge the subanswers into the final answer.Plan-and-Solve đặt kế hoạch ra trước để giảm missing-step errors.
flowchart LR Q[Question] --> P[Plan] P --> S1[Subproblem 1] S1 --> S2[Subproblem 2] S2 --> M[Merge] M --> A[Final answer]
Khi dùng Fit
Kỹ thuật này hữu ích khi task có dependency rõ: chuyển đổi format nhiều bước, reasoning có thứ tự, synthesis từ nhiều nguồn, hay các bài toán có easy-to-hard progression tự nhiên.
Nếu chỉ là Q&A ngắn hoặc classification đơn giản, plan-first thường thêm overhead mà không thêm giá trị.
Ưu điểm
- Giảm missing-step errors
- Dễ chia trách nhiệm giữa planner và solver
- Hợp với task có dependency rõ ràng
Nhược điểm
- Cần plan tốt, nếu không sai từ đầu
- Tăng số bước và token
- Có thể over-decompose những task vốn đơn giản
Failure modes Risk
Rủi ro cần để ý
- Plan nhìn có vẻ hợp lý nhưng bỏ sót constraint ngầm.
- Subproblem đầu ra phụ thuộc nhau quá chặt nhưng prompt không nói rõ.
- Task bị chia quá nhỏ làm mất global objective.
- Kế hoạch tốt nhưng solver tệ, hoặc ngược lại.
So sánh Compare
| Technique | So với plan-first | Khi nào nên chọn |
|---|---|---|
| CoT | Tự do hơn, ít cấu trúc hơn | Khi task nhỏ và ổn định |
| Prompt chaining | Mỗi bước là call riêng | Khi muốn inspect intermediate outputs |
| ReAct | Có action/observation | Khi cần tool use thực sự |