OpenAI 解决数学应用题与 GSM8K 数据集
OpenAI 开发了一套系统,能够解决小学数学应用题,其准确率几乎是经过微调的 GPT-3 模型的两倍。该系统在一个新的基准测试中实现了 55% 的成功率,达到了 9-12 岁儿童水平的约 90%,而该年龄段的儿童在同一测试中的得分为 60%。
克服多步推理失败
像 GPT-3 这样的大语言模型通常在需要准确多步推理的任务中表现挣扎。虽然这些模型可以模仿正确数学解题过程的风格和节奏,但它们经常犯下关键的逻辑错误。由于自回归模型是按顺序生成 token,它们缺乏一种原生的机制来纠正一旦发生的错误;一个单一的错误往往会导致后续的解题过程无法挽回。
为了解决这个问题,OpenAI 实施了一套验证系统,允许模型识别自己的错误并进行迭代,直到找到正确的解法。这种方法将重点从简单的生成转向了对多个提议解法的评估。
GSM8K 数据集
为了评估并促进数学推理方面的研究,OpenAI 发布了 GSM8K 数据集。
数据集特征
- Composition: 8.5K 高质量小学数学应用题。
- Complexity: 每个问题需要 2 到 8 个步骤才能解决。
- Operations: 解法依赖于基础算术运算,包括加法、减法、乘法和除法。
- Format: 解法是用自然语言编写的,而不是纯数学表达式,这使得它们对人类来说更具可解释性,也使该方法更具领域无关性。
OpenAI 指出,虽然 GSM8K 中的概念是基础的,但问题的高度多样性导致最先进的微调语言模型表现不佳。
训练验证器进行错误纠正
OpenAI 通过训练验证器来评估提议的解法是否正确,从而提高了性能。该系统不再依赖单一的输出,而是针对给定问题生成 100 个候选解法,并使用验证器来选择排名最高的候选解法。
关于验证的关键发现
- Efficiency: 验证通常比生成任务更简单,当数据集足够大时,能提供强大的性能提升。
- Scaling: 在完整的训练集上,一个使用验证机制的 6B 参数模型略微优于经过微调的 175B 参数模型。这表明验证机制提供的性能提升大约相当于模型规模扩大 30 倍。
- Risk of Overfitting: 如果数据集太小,验证器可能会通过记忆最终答案而不是学习数学推理的底层属性而产生过拟合。
对通用人工智能的启示
产生正确论证并识别错误论证的能力是通用人工智能的基本要求。小学数学可以作为一个理想的测试平台,因为这些问题在概念上很简单,但对细微错误非常敏感。通过训练模型将成功的解法与失败的尝试区分开来,OpenAI 旨在开发未来可应用于更逻辑复杂领域的技能。
Sources
- OriginalSolving math word problems