Integrating Symbolic Execution into the Fine-Tuning of Code-Generating LLMs

📄 arXiv: 2504.15210v2 📥 PDF

作者: Marina Sakharova, Abhinav Anand, Mira Mezini

分类: cs.SE, cs.AI

发布日期: 2025-04-21 (更新: 2025-05-05)


💡 一句话要点

利用符号执行增强奖励模型,提升代码生成LLM微调效果

🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture) 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 代码生成 大型语言模型 符号执行 强化学习 奖励模型 微调 代码质量评估

📋 核心要点

  1. 代码生成LLM在软件开发中至关重要,但其性能受限于训练数据质量,尤其是在代码评估的细微差别方面。
  2. 论文提出利用符号执行技术生成更全面、客观的训练数据,用于微调奖励模型,从而提升代码生成LLM的性能。
  3. 实验结果表明,使用符号执行增强的奖励模型在代码质量评估方面优于基线CodeRL,代码生成LLM也取得了可比的结果。

📝 摘要(中文)

本文旨在研究如何利用强化学习和直接偏好优化(Direct Preference Optimization)来微调代码生成大型语言模型(LLM),以进一步提高其性能。为了实现这一目标,我们借助符号执行技术增强了奖励模型的训练数据,确保数据的全面性和客观性。通过符号执行,我们创建了一个自定义数据集,更好地捕捉了代码评估中的细微差别。基于此数据集微调的奖励模型在评估生成代码的质量方面,相较于基线模型CodeRL表现出显著的改进。借助奖励模型反馈训练的代码生成LLM,取得了与CodeRL基准相似的结果。

🔬 方法详解

问题定义:现有代码生成LLM的微调依赖于奖励模型,而奖励模型的训练数据往往不够全面,难以捕捉代码评估的细微差别,导致微调效果受限。因此,需要更有效的方法来生成高质量的奖励模型训练数据。

核心思路:利用符号执行技术自动生成更全面、更客观的代码测试用例,从而构建更具代表性的奖励模型训练数据集。通过增强训练数据,提高奖励模型评估代码质量的准确性,进而提升代码生成LLM的微调效果。

技术框架:该方法的核心在于利用符号执行生成增强的训练数据,用于训练奖励模型。整体流程包括:1) 使用符号执行技术分析代码,生成测试用例;2) 利用生成的测试用例评估代码,构建奖励模型的训练数据集;3) 使用该数据集微调奖励模型;4) 使用微调后的奖励模型指导代码生成LLM的训练。

关键创新:关键创新在于将符号执行技术引入到代码生成LLM的微调过程中,用于生成更全面、更客观的奖励模型训练数据。与传统方法相比,该方法能够自动生成测试用例,覆盖更多的代码执行路径,从而提高奖励模型的准确性和泛化能力。

关键设计:论文中符号执行的具体实现细节、测试用例生成策略、奖励模型的网络结构和损失函数等关键设计细节未知。此外,如何将符号执行生成的测试用例转化为奖励模型的训练数据,以及如何平衡符号执行的计算成本和数据质量,也是需要考虑的关键设计。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,使用符号执行增强的奖励模型在评估生成代码的质量方面,相较于基线模型CodeRL表现出显著的改进。同时,借助该奖励模型反馈训练的代码生成LLM,取得了与CodeRL基准相似的结果,验证了该方法的有效性。具体的性能提升数据未知。

🎯 应用场景

该研究成果可应用于各种软件开发场景,例如自动化代码生成、代码补全、代码修复等。通过提升代码生成LLM的性能,可以显著提高软件开发的效率和质量,降低开发成本。未来,该方法还可以扩展到其他编程语言和领域,例如安全漏洞检测、程序验证等。

📄 摘要(原文)

Code-generating Large Language Models (LLMs) have become essential tools in modern software development, enhancing productivity and accelerating development. This paper aims to investigate the fine-tuning of code-generating LLMs using Reinforcement Learning and Direct Preference Optimization, further improving their performance. To achieve this, we enhance the training data for the reward model with the help of symbolic execution techniques, ensuring more comprehensive and objective data. With symbolic execution, we create a custom dataset that better captures the nuances in code evaluation. Our reward models, fine-tuned on this dataset, demonstrate significant improvements over the baseline, CodeRL, in estimating the quality of generated code. Our code-generating LLMs, trained with the help of reward model feedback, achieve similar results compared to the CodeRL benchmark.