第四部分 · 推理与测试时算力
「……生成思维链……能显著提升大型语言模型完成复杂推理任务的能力。」
Jason Wei 等,"Chain-of-Thought Prompting Elicits Reasoning in Large Language Models"
如果把推理看成网络内部新增的某个专门模块,就很容易误解现代模型。本部分采用一种更便于分析的定义:推理是在答案确定之前投入计算的一种方式。额外计算发生在模型作答期间,而不是训练期间,这就是标题中的「测试时算力」。这部分计算有时由提示引导,也可以组织为搜索,或交给程序、求解器或证明检查器。另一些系统则在训练中让模型习得推理;还有一些系统把工作留在推断阶段,在提交答案之前进行采样、核查和分支探索,或按问题难度选择处理路线。
第 24 章 从最小的改动开始:给模型留出展开推理的空间,同时不把单次采样当作可靠答案。第 25 章 接着把控制问题明确化:链只走一条路径,树保留多个备选分支,图则复用已经完成的局部工作。第 26 章 将推理拆成翻译和执行:模型负责写出程序、查询、符号推导或证明脚本,再由外部运行环境执行或核查。第 27 章 则研究验证器本身:从单元测试和答案检查器,到过程奖励模型与生成式验证器。
第 28 章 把这项成本前移到训练阶段,借助可核查奖励(奖励来自可以自动核查的答案)和强化学习,让有效的推理方式成为稳定习惯,而不必每次临时组织。第 29 章 接着让推理轨迹本身成为训练数据,其中包括自生成的推理过程、拒绝采样、小规模精选数据集、蒸馏,以及从长推理到短推理的迁移。第 30 章 最后把测试时计算作为一种需要分配的预算,讨论并行尝试、逐步修订、核查、按难度路由,以及生产系统中的过度推理问题。
因此,检验任何关于推理的主张,都要回答几个具体问题:额外工作的成本由哪一层承担,由谁核查,又由什么数据记录;增加计算究竟扩大了候选覆盖面、改善了选择,还是两者兼有。把这些问题分开之后,提示方法、经过推理训练的模型和测试时扩展系统之间的差异,就不再显得神秘,而成为可以比较和取舍的工程选择。
评论
登录后评论