OpenAl又火了,这次是o1又带给大家惊艳。网上的博主已经有了真真假假的各种评测,我这篇来一点硬核的,解读OpenAl o1背后的论文:Let's Verify Step by Step
大模型在给定的上下文资料正确的情况下也有可能出现幻觉,这篇论文提出通过逐步验证的方式纠正大模型在处理复杂多步骤推理任务表现。论文的核心是比较过程监督(提供每个中间推理步骤的反馈)和结果监督(仅提供最终结果的反馈)在训练模型解决复杂数学问题中的效果。
- 结果监督:指仅使用模型链式推理的最终结果来训练奖励模型的方法。在这种监督方式中,奖励模型(ORMs)只根据模型生成的最终答案是否正确来进行反馈,而不考虑推理过程中的具体步骤。
- 过程监督:提供每一步中间推理步骤的反馈。这种监督方式可以更精确地指出错误发生的位置,并直接奖励模型沿着人类认可的推理路径进行推理。相比之下,结果监督只提供关于最终结果的反馈。
这篇论文的方法论主要包括以下几个步骤,每一步都有其独特的用途,以下是对论文方法论的快速解读:
-
生成器 (Generator) 的设置和训练:
为了使解析各个步骤更为简单,作者训练生成器以换行分隔的逐步格式生成解决方案。论文作者先用少量示例生成MATH训练问题的解决方案,然后从中筛选出能得出正确最终答案的解决方案,最后,用此数据集对基础模型进行单个周期的微调。此步骤的主要目的是教会生成模型以特定格式生成解答,而不是教模型新技能。
-
数据收集:
为了收集过程中监督数据,人工数据标记人员逐步对生成的问题解决方案进行标注。
-
数据收集方法:
• 研究人员让人类数据标注者针对生成的MATH问题(MATH问题是从各种来源收集和整理而来的。这些问题包括高质量的数学问题及其解决方案、涉及数学问题和概念的自由形式讨论文本,以及一些合成数据。这些问题在数据集MathMix中进行了预训练,增强了模型的数学推理能力,同时确保问题的答案是自动可检验的。)的逐步解决方案进行逐步反馈。
• 标注者任务是对每个步骤的正确性进行标注,这些步骤由模型生成。
-
标注过程:
• 解决方案的每个步骤可以被标注为三种标签之一:正面(positive)、负面(negative)或中立(neutral)。
• 正面标签表示步骤在上下文中是恰当的、合理的且正确的,并且包含的计算易于验证。此外,这一步应该推动问题的解决进展。
• 负面标签表示步骤是错误的或不合理的。
• 中立标签表示步骤在上下文中是恰当的、合理的且正确的,但可能有些模棱两可,或者尽管是有效的,但并不算是最好的建议。
• 为了评估给出标签的正确性,研究人员设定了一些质量控制问题,并标记这些问题的步骤哪些是合理标注为不正确的。标注人员需要在这些质量控制问题中表现出一致性,且与研究人员的金标准标签至少有75%的匹配度。此外,标注者的工作还会定期得到持续质量控制的评估,以确保标注质量。
-
目标数据集:
• 研究团队收集了一个大规模数据集------PRM800K,包括800,000个步骤级别的人工反馈标签,覆盖75,000个解决方案,涉及12,000个问题。
-
数据筛选和优化策略:
• 为了避免过拟合,在训练集内包含了4,500个MATH测试问题的数据,因此实际评估仅限于剩余的500个MATH测试问题。
• 筛选出具有代表性的错误解答以获取更有价值的反馈, 他们策略性地选择最有说服力的错误答案解决方案进行标注。
-
主动学习策略:
• 数据收集过程中的某些阶段,他们定期重新训练PRM,以利用最新的数据进行迭代优化。
• 通过生成多种解决方案并根据当前最好的PRM评分,优先显示那些评分较高但答案错误的解决方案给数据标注者。
-
过程监督奖励模型 (PRMs) 的训练:
现在论文团队有了大约80万个逐步标签,这些标签覆盖了75000个解决方案,涉及12000个问题。PRMs 的训练目的是预测每个步骤在每个步骤末尾的正确性,这个预测以单个标记的形式呈现。在训练过程中,最大化这些目标标记的对数似然。在测试时,为了比较多个解决方案,PRM会对每个解决方案的所有步骤进行前向传递,从而计算每一步为正面的概率。通过将这些概率相乘,可以得到整个方案的分数(解决方案的评分通过每一步为正的概率的乘积来实现)。
我的理解是使用GPT4做生成器生成解决MATH问题的逐步解答。然后,人类标注人员会对这些生成的每一步解答进行标签,然后再训练,差不多就是人类老师对GPT的步骤进行批卷,然后模型再次学习。总的来说,PRMs 的训练通过提供每一步详细的过程监督,进一步提高奖励模型的可靠性和准确性,能更好地定位错误并解决复杂任务。
-
大规模和小规模实验对比:
在大规模和小规模两个不同的训练模式中对比结果,以获得互补的视角。
-
大规模实验:
• 使用的基础模型是 GPT-4。
• 主要目的是通过训练最可靠的 ORM 和 PRM 来推进最先进的技术。
• 大规模实验的目标是提高模型的整体性能,但这种实验方式的训练集不直接可比,因此不适合用于小规模实验的对比。
-
小规模实验:
• 使用的基础模型在设计上类似于 GPT-4,但训练计算量大约是 GPT-4 的 1/200。
• 小规模实验的主要目的是进行更直接的对比,以消除抽样数据量和数据集成本的影响。
• 为了摆脱高昂的人类反馈成本,这种实验利用大规模模型对小规模模型进行监督,从而评估不同监督方法的效果。
-
有监督的数据收集方式:
通过主动学习策略改进数据收集效率。
-
结果监督(Outcome Supervision):
• 定义:仅基于最终结果对模型进行评估和反馈。
• 实现:模型生成解决方案后,通过检查最终答案是否正确来提供反馈。
• 优点:可以自动化,因为结果通常是可验证的(例如数学问题的答案)。
• 缺点:存在信用分配问题,即很难确定哪一步出的错误。特别是在复杂任务中,一个错误步骤会导致整个解决方案出错,单纯依靠最终结果很难改进模型的推理能力。
-
过程监督(Process Supervision):
• 定义:对每一步的中间推理过程进行评估和反馈。
• 实现:使用人类标注者逐步检查模型解决方案中的每一步,标注正确、错误或模糊的步骤。
• 优点:
o 精确的反馈:每一步都得到评估,可以指出具体的错误位置。
o 易于理解:对人类来说,过程监督更容易解释和理解模型是如何进行推理的。
o 奖励对齐:更直接地鼓励模型按照人类认可的思维过程推理。
• 缺点:需要依赖大量的人类标注,成本较高。
在比较这两种方法时,过程监督由于可以提供每一步的细致反馈,在解决复杂多步推理问题上显著优于结果监督。研究表明,使用过程监督训练的模型,对于解决数学问题展现了更高的成功率。例如,研究中提到的过程监督模型成功解决了78%的MATH数据集问题,远高于结果监督模型。同样,通过主动学习机制,过程监督的数据效率提高了2.6倍。
总结:尽管过程监督成本较高,但其精确反馈和高效的训练效果使其在需要复杂多步推理的任务中成为优于结果监督的方法。
-
评估方法:
-
评估奖励模型的效果,通过多解题搜索策略验证其能力。论文作者通过使用"最佳N搜寻"(best-of-N
search)来评估奖励模型的效果。具体步骤如下: 生成解决方案:使用生成模型(generator)生成一系列问题的解决方案。
评分解决方案:每个测试问题的解决方案会通过奖励模型打分,奖励模型会根据每个解决方案的最终答案来自动打分。
选择最佳解决方案:从每个测试问题的所有解决方案中选择奖励模型评分最高的那一个作为最终解。
计算成功率:统计模型选出的最终解中正确答案的比例,以此衡量奖励模型的效果。
通过这种方法,作者能够比较不同奖励模型在不同解决方案数量条件下的表现,评估它们在选择正确解决方案方面的准确性和可靠性。
论文作者也提到了一些验证局限性。具体包括:
- 测试集污染:作者指出,MATH数据集的测试集包含在多个在线平台上讨论的问题,这些问题可能出现在他们的预训练数据集中。他们尝试用字符串匹配启发法去除MathMix数据集中与MATH测试集重叠的问题,但无法保证完全没有重叠。
- 可能的记忆现象:作者在检查模型生成的解答时没有发现明显的记忆现象,但不能完全排除存在微妙记忆现象的可能性,这些现象可能会在人工检查中遗漏。
- 偏移的影响相似性:尽管可能存在测试集污染,作者认为各种方法在这种情况下表现出类似的测试污染影响,表明相对比较结果基本不受影响。
在数据收集的阶段,论文作者提到的MathMix是什么?MathMix 是一个大规模的高质量数学相关数据集,使用于轻量级预训练阶段,以提高模型在数学推理和问题解决方面的能力。与 Minerva 数据集相比,MathMix 较小且经过更严格的过滤以确保数据的高质量,并且未显式混入普通语言数据。
MathMix 的构建包括以下几部分数据:
- 数学问题及其解决方案:约 2.75 亿个 token。
- 自由形式的数学讨论文本(一):约 4.30 亿个 token。
- 自由形式的数学讨论文本(二):约 4.50 亿个 token(这些存在于预训练数据集中)。
- 合成数据(一):约 3000 万个 token。
- 合成数据(二):约 1 亿个 token(这些存在于预训练数据集中)。
- 批评性评分数据:约 5 亿个 token。
在预训练阶段,作者使用 MathMix 对所有模型进行微调,以提升模型的数学推理能力。此外,MathMix 包含海量的数学问题、讨论和合成数据,但不包含任何普通语言数据。
在训练较小模型时,作者使用 MathMix 的一个较小变体,只包含 10 亿个 token,排除了一些批评性评分数据。对于大型模型的实验,作者使用完整的 MathMix 进行大约 3 亿个 token 的训练(2 个 epoch),而对于小规模模型实验,作者训练了 6 个 epoch(大约 6.6 亿个 token)。作者应用了一套去污染检查,以确保 MathMix 数据集中没有与 MATH 数据集测试集重叠的问题。这些检查包括剥离 LaTeX 内容并搜索匹配的 n-gram。但由于人工发布的变体问题难以检测,作者无法对去污染结果做出强有力的保证。需要注意的是,尽管如此,如果存在数据集污染,作者认为不会显著影响相对比较结果,因为这种影响在所有方法中应表现一致。
看完这篇论文后我的两个感触:
Open AI公司从GPT1开始一直在突出工程的工作在AI落地中的重要性,这几年我们看了太多的论文,而Open AI公司真的是实实在在的投入资源在推动设想的落地,而不是仅仅把设想写在纸上。这次Open AI公司又花费了极大的精力构建了80万个逐步标签。
人工智能真的是有多少人工才有多少智能,Open AI公司都要勤勤恳恳脚踏实地的去构建高质量数据集,而我们很多人在梦想把文档随随便便丢给AI,AI就可以理解,是不是应该要多多少少的反思一下?
最后的最后,论文地址在:https://arxiv.org/abs/2305.20050。