OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  论文  ›  abs/2406.01006

SemCoder:通过全面语义推理训练代码大模型

 
  cobaltix ·  2025-10-13 13:43:54 · 17 次点击  · 0 条评论  

作者: Yangruibo Ding, Jinjun Peng, Marcus J. Min, Gail Kaiser, Junfeng Yang, Baishakhi Ray

提交/修订日期: 2024年6月3日提交,2024年10月31日修订 (v2)

主题/分类: 计算与语言 (cs.CL); 人工智能 (cs.AI); 软件工程 (cs.SE)

会议: NeurIPS 2024 Camera-ready

摘要:
代码大语言模型 (Code LLMs) 在代码补全等任务上表现出色,但常常忽略了更深层次的语义,如执行效果和动态状态。本文旨在弥合 Code LLMs 对静态文本数据的依赖与复杂任务(如调试和程序修复)所需的语义理解之间的差距。我们引入了一种新颖的策略——独白推理,以训练 Code LLMs 进行全面的语义推理,涵盖高级功能描述、单个语句的局部执行效果以及整体的输入/输出行为,从而将静态代码文本与动态执行状态联系起来。

我们首先收集了 PyX,这是一个包含完整可执行代码样本、功能描述和测试用例的干净 Python 语料库。我们提出不仅训练 Code LLMs 编写代码,还通过使用自然语言推理关键属性、约束和执行行为来理解代码语义,模仿人类的言语调试(即“小黄鸭调试法”)。这种方法促成了 SemCoder 的开发,这是一个仅有 67 亿参数的 Code LLM,在代码生成和执行推理任务上显示出与 GPT-3.5-turbo 相竞争的性能。SemCoder 在 HumanEval 上达到 79.3% (GPT-3.5-turbo: 76.8%),在 CRUXEval-I 上达到 63.6% (GPT-3.5-turbo: 50.3%),在 CRUXEval-O 上达到 63.9% (GPT-3.5-turbo: 59.0%)。

我们还研究了 SemCoder 的独白式执行推理与具体的草稿纸推理相比的有效性,表明我们的方法能更平滑地整合来自多个维度的语义。最后,我们展示了应用学习到的语义来提升 Code LLMs 的调试和自我优化能力的潜力。

资源链接: 数据、代码和模型可在以下网址获取: https://github.com/ARiSE-Lab/SemCoder

17 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 12 ms
Developed with Cursor