
摘要
数学推理对大型语言模型(LLMs)构成了重大挑战,原因在于其要求高度连贯且精确的推理链条以确保准确性。确保每一步推理的正确性至关重要。为提升LLMs的鲁棒性与事实准确性,我们致力于通过学习人类反馈来优化模型表现。然而,直接偏好优化(Direct Preference Optimization, DPO)在长链数学推理任务中表现出有限的提升效果,因为采用DPO的模型难以识别错误答案中的细节性错误。这一局限性源于缺乏细粒度的过程监督。为此,我们提出一种简单、高效且数据利用率高的方法——Step-DPO,该方法将推理过程中的每一个步骤视为偏好优化的基本单元,而非对最终答案进行整体评估。此外,我们构建了一套完整的数据构造流水线,用于生成Step-DPO所需的数据,成功创建了一个包含10,000组逐步偏好对的高质量数据集。我们还发现,在DPO框架下,由模型自生成的数据比由人类或GPT-4生成的数据更具有效性,后者因分布外(out-of-distribution)特性而表现不佳。实验结果表明,仅需10,000组偏好数据对以及不足500次Step-DPO训练步骤,即可在超过700亿参数的模型上实现MATH数据集上接近3%的准确率提升。尤为突出的是,将Step-DPO应用于Qwen2-72B-Instruct模型时,在MATH和GSM8K测试集上分别取得了70.8%和94.0%的得分,超越了包括GPT-4-1106、Claude-3-Opus和Gemini-1.5-Pro在内的一系列闭源模型。相关代码、数据与模型已开源,访问地址为:https://github.com/dvlab-research/Step-DPO。