Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks
Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks - 中文验证版
英文原始依据卡片:program_of_thoughts_2022.md
状态:已翻译。
元数据
- 阅读状态:read complete
- 年份:2022
- 计算范式:推理阶段计算与后训练 (
inference_time_compute_post_training) - PDF:2022-program_of_thoughts_2022.pdf
- 抽取文本:2022-program_of_thoughts_2022.txt
- OpenAlex:
- 引用计数来源/日期:
- 引用计数:
- 阅读卡创建日期:2026-06-15
计算设置
论文未列出 GPU、TPU、加速器数量或 wall-clock 运行时间。其主要实验使用 OpenAI Codex code-davinci-002 通过 API,还比较了 GPT-3 text-davinci-002、ChatGPT gpt-turbo-3.5、CodeGen 16B 变体、CodeT5+、XGen 以及报告的 PaLM/LaMDA 基线。根据项目规则,将 LLM 端视为 API 托管的加速器推理,但不归因具体设备。
论文确实说明了经典执行环境:生成的程序使用 Python 3.8 和 SymPy 库运行。这对计算结构很重要。算术和符号操作从 175B 参数模型内部的昂贵 token 生成中移出,进入廉价确定性的 CPU 执行。LLM 仍然支付 prompt 和解码成本,但一旦它发出代码,循环、高精度算术和方程求解就在解释器上运行,而非在 Transformer 前向传递上。
推理规模通过采样设置和数据集大小报告。Few-shot prompting 根据难度使用 4-8 个示例,示例选择从 10-20 个书面示例中调优。自洽性使用温度 0.4 和 K=40 个补全。数据集包括 GSM8K 1318 测试示例、AQuA 253、SVAMP 1000、TabMWP 7861、FinQA 1147、ConvFinQA 421 以及金融/表格 QA 任务中的 TATQA。
瓶颈
瓶颈是自然语言推理中的精确计算。思维链可以选择一个合理的解决路径,但仍然会犯算术错误、错误处理大数字、在高精度金融计算中失败,或难以处理符号方程。论文明确指出了 FinQA 和 ConvFinQA 中的大数字误算,这是 PoT 优于 CoT 的原因。为 CoT 添加计算器只有轻微帮助,因为方程提取是脆弱的且召回率低。
第二个瓶颈是采样可靠性。模型可能发出注释而非可执行代码、选择错误的变量、遗漏约束或生成无效程序。因此作者使用 prompt 设计、语义变量命名、多步骤分解、零样本 prompting 中针对 # token 的 logit 偏差,以及 40 个补全的自洽性。计算花费在候选程序上,而解释器廉价地评估每个程序。
这不仅是一个准确率对比,也是一个内存/带宽对比。一个 175B 参数的 API 模型每生成 token 和每次采样补全都很昂贵。Python 解释器对于这些基准测试中的数值操作很廉价。PoT 通过最小化必须在 Transformer token 推理中表示的算术量来利用这种不对称。
方法适配
Program-of-Thoughts 将目标表示从自然语言推导改为可执行 Python。模型发出变量赋值、循环、公式,有时还有 SymPy 调用,将结果存储在 ans 中,然后程序执行。这将推理拆分到两种设备:LLM 将语言映射到结构化计算,而 CPU 解释器执行精确计算。
该方法适配到代码训练 LM 的能力。主要模型是 Codex 175B,论文发现 code-davinci-002 在生成程序方面比 text-davinci-002 更强。语义绑定是适配的一部分:变量有意义地命名而非 a、b、c,这改善了性能,特别是在有许多量的问题上。多步骤程序也有帮助,因为它们将大型方程分解为可执行的中间绑定。
对于多项选择 AQuA,作者添加了第二个 prompting 步骤:PoT 计算一个中间答案,然后 LLM 将其映射到最接近的选项。对于零样本 PoT,他们用一个小的偏差抑制 # token 概率,报告在初步研究中 -2 效果最好,因为模型有时会退回编写推理注释。对于自洽性,他们在温度 0.4 下采样 40 个程序并聚合输出。这是一个直接的推理预算权衡:更多 LLM 调用提高了成本但允许程序多样性和多数选择,而执行仍然廉价。
证据
Few-shot 表格提供了清晰的证据。使用贪心解码,Codex Direct 在列出的数据集上平均 42.7,Codex CoT 平均 56.7,PoT-Codex 平均 68.9。数据集级别的收益在算术密集和表格/金融任务上特别大:FinQA 从 Codex CoT 40.4 改善到 PoT 64.5,ConvFinQA 从 45.6 到 64.6,TabMWP 从 65.2 到 73.2,GSM8K 从 63.1 到 71.6。
自洽性在花费更多推理的同时保持了这个模式。Codex CoT-SC 平均 63.9,而 PoT-SC-Codex 平均 73.6。PoT-SC 在 GSM8K 上达到 80.0,AQuA 58.6,SVAMP 89.1,TabMWP 81.8,FinQA 68.1,ConvFinQA 67.3,TATQA 70.2。论文指出自洽性对金融数据集的帮助小于对数学文字题,但 PoT 仍在 FinQA/ConvFinQA 上超越 CoT-SC 约 20 分,在 TATQA 上超越 7 分。
零样本结果显示表示本身具有价值。零样本 Direct GPT-3 平均 31.0,零样本 CoT GPT-3 平均 53.7,零样本 PoT 在 GSM8K、AQuA、SVAMP、TabMWP 和 MultiArith 上平均 66.1。消融实验支持计算解释:移除语义绑定使 GSM8K 从 71.6 下降到 60.2,移除多步骤编程使其下降到 45.8。在 AQuA 细分中,PoT 在线性/多项式方程、迭代、符号和组合类别中帮助最大,正是解释器支持的计算最有用之处。
历史影响
PoT 是在 agent 工具使用成为默认设计模式之前,工具增强推理的一个清晰历史示例。它表明,如果 prompt 可以将确定性工作路由到经典程序,更大的 LM 不需要内部化每一次计算。在计算术语中,它用短代码合成加廉价 CPU 执行取代了不可靠的 Transformer 算术。
本文帮助建立了一个持久的劳动分工:LM 将自然语言翻译为程序,而解释器处理精确算术、循环和符号代数。这一思想在编程辅助推理、工具使用、代码执行沙箱和现代数据分析 agent 中反复出现。
局限
硬件和 API serving 细节缺失,因此延迟、批处理和美元成本无法从本地来源重建。该方法需要一个执行沙箱和对生成代码的鲁棒解析。它也可能在危险代码、语法错误、缺失库、错误的程序语义,或答案不能归结为短确定性计算的问题上失败。
PoT 在任务具有精确数值或符号结构时最强。对常识、外部知识或模糊推理任务,它不太明显有用。K=40 的自洽性可能很昂贵,因为它倍增了 API 调用,而程序输出的多数投票仅在足够多的采样程序独立地接近正确时才有效。
链接
- 计算范式:
history/compute_regimes/inference_time_compute_post_training/README.md - 来源 PDF 和抽取文本见上述元数据。
- 队列状态:
read_complete。 - 方法索引:inference_time_reasoning、tool_use
- 对照更新:compute bottlenecks