程序化思考是什么
程序化思考(Program-of-Thought,也常被称作 PAL)让模型把计算过程写成一段可执行的代码,把计算交给解释器而不是靠语言模型心算。Chen 等人 2023 年前后的这类工作都指向同一个结论:在算术、日期计算、数据变换这类任务上,代码执行比自然语言推理稳定得多,因为解释器不会算错,也不会在中途丢失精度。模型只负责把问题翻译成程序,这部分恰好是它擅长的。
要点
| 本质 | 思考载体从自然语言换成程序:计算交给解释器 |
|---|---|
| 适用 | 算术、数据变换、日期计算、单位换算、批量聚合 |
| 不适用 | 主观判断、开放写作、需要常识权衡的任务 |
| 工程配合 | 真实系统中由程序执行代码段,模型只负责写 |
| 关联 | PAL 让模型生成程序;PoT 系列工作用它替代自然语言计算步骤 |
典型使用场景
- 批量数值计算:多步算术与聚合,结果要求精确
- 日期与时长计算:跨月、时区、工作日等易错场景
- 数据变换:按规则清洗、映射、分组统计
- 报表核对:把核对规则写成代码,结果可复跑
- 公式推导落地:把业务口径固化成可审计的计算脚本
提示模板
提示模板
把解题过程写为可执行的 Python 代码,输出变量名为 result;
代码不读取任何外部输入、不做网络请求; # 限制能力范围,便于沙箱执行
先给代码,再给出执行结果(无法执行时给出代入数值的计算过程)。
# 代码与结果分区输出,程序只取结果段,代码段留档备查与自然语言推理对比
| 维度 | 自然语言推理 | 程序化思考 |
|---|---|---|
| 计算可靠性 | 多步容易错位、丢精度 | 解释器执行,结果可复现 |
| 可审计 | 过程难以自动校验 | 代码可复跑、可逐行检查 |
| 适用面 | 更广,含主观判断 | 限于可形式化的问题 |
| 执行风险 | 无 | 需沙箱、超时与资源限制 |
模型生成的代码必须在受限沙箱中执行:禁网络、限时间与内存、只读挂载,执行前检查危险调用。