📖标题:SIAM: SELF-IMPROVING CODE-ASSISTED MATHEMAT-ICAL REASONING OF LARGE LANGUAGE MODELS
🌐来源:arXiv, 2408.15565
摘要
🔸通过编码来教授大型语言模型(LLM)以解决数学问题的趋势日益明显。现有的研究主要集中在促使强大的闭源模型生成种子训练数据,然后进行indomain数据增强,为LLM提供相当大的代码辅助数学推理能力。然而,在来自GSM8K等少数数据集的增强数据上持续训练这些模型可能会损害它们的泛化能力,并将其有效性限制在狭窄的问题类型范围内。相反,通过利用大规模、专家编写、多样化的数学问答对来改进此类LLM的潜力仍未得到探索。
🔸为了利用这些资源并应对代码响应评估等独特挑战,我们提出了一种新的范式,该范式使用基于代码的批评模型来指导包括问题代码数据构建、质量控制和补充评估在内的步骤。我们还探索了使用自生成指令/偏好数据的不同对齐算法,以促进持续改进。在英语和中文的领域内(高达+5.7%)和领域外(+4.4%)基准测试中的实验证明了所提出范式的有效性。模型和代码将发布在https://github.com/tencent-ailab/siam
🛎️文章简介
🔸研究问题:不断地在少量数据集的增强数据上训练,可能会损害大语言模型(LLM)的泛化能力,并将其有效性限制在狭窄 的问题类型范围内。
🔸主要贡献:论文提出了一种新的自改进范式,通过使用外部代码解释器和评估模型来提高LLM在数学问题上的表现,并在多种模型和语言的基准测试中验证了其有效性。
📝重点思路
🔺相关工作
🔸对于格式良好的基准的自动数学评估,以前的研究大多使用启发式方法和外部工具来比较答案和预测,但不适用格式和语法差异巨大的网络资源。
🔸使用LLM本身或使用单独的批评家模型用于对自然语言响应进行评分或过滤,但对大规模代码样本进行评级并不具有成本效益。
🔸基于域内CoT或基于代码的数据增强和对齐,将促进LLM在域内数学数据集上取得出色的性能。
🔺论文方案
🔸主要思想:使用微调模型为每个问题生成代码样本,如果执行结果与参考答案匹配,则代码解决方案更有可能是正确的,从而将CoT的逐步比较转换为将参考答案与代码执行结果进行比较。
🔸步骤1-训练初始模型:使用高质量的种子数据训练种子模型,使用种子模型生成代码样本训练初始模型。
🔸步骤2-训练评估模型:使用大规模网络问答数据来训练一个评估模型,用于评估代码响应的正确性。
🔸步骤3-模型自我改进:使用评估模型对生成的代码响应进行评分,并将评分结果用SFT/DPO改进语言模型。
🔎分析总结
🔸使用自我改进的语言模型,在同领域和跨领域(OOD)基准测试中,能够显著提高准确性。
🔸自我改进模型在多个教育水平和学科中持续表现优异,特别是在中学任务和英语理论任务中。
🔸处理理论知识问题,使用代码辅助的语言模型比使用纯代码解决问题的效果更好。
🔸评估模型与传统基于启发式的评估方法有很强的相关性,减少了设计新数学基准规则所需的人力。
💡个人观点
论文的核心是提出了一种新的自改进范式,将外部代码解释器和评估模型相结合,以获取数学推理的改进反馈。
附录