大数跨境
0
0

The Batch: 869 | 编码助手的训练数据

The Batch: 869 | 编码助手的训练数据 DeeplearningAl
2025-08-22
3
导读:在针对软件工程对大型语言模型进行微调时,一个瓶颈是如何构建数据集。

Hi~新朋友,记得关注我们哟

在针对软件工程对大型语言模型进行微调时,一个瓶颈是如何构建数据集,以展示模型如何编辑代码、搜索子程序、编写测试脚本、控制终端、管理文件系统等。研究人员开发了一条能够自动生成此类数据的流程。

 最新消息来自斯坦福大学、普林斯顿大学和阿里巴巴的John Yang及其同事提出了 SWE-smith 方法,可以生成真实的漏洞修复及其他代码修改示例。相关代码、数据集以及基于该数据微调的模型已免费开放,可用于商业和非商业用途。

 关键见解:自动化单元测试能够判断代码是否按预期运行。若代码未通过单元测试,即表示存在缺陷。因此,一种生成漏洞修复样本的方法是从通过单元测试的代码开始,再对其修改,直到无法通过测试。另一种方法是从正常运行的代码回退到包含漏洞或缺少功能的早期版本。在引入问题后,我们可以提示大型语言模型修复这些问题,从而生成有效的“前后对比”样本,无需人工验证。

 工作原理研究人员从 128 个 Python 语言的 GitHub 仓库入手。

✴ 对于每个仓库,研究人员使用他们此前开发的开源软件工程智能体 SWE-agent,自动构建 Docker 执行环境。

✴ 他们通过四种方法合成漏洞:(i) 使用 OpenAI o3-mini 在函数或类别中注入错误;(ii) 编写自定义程序以程序化方式修改代码,例如删除循环或调整代码行顺序;(iii) 将不同漏洞组合起来,制造更复杂的问题;(iv) 回退合并请求,将漏洞重新引入并移除代码的后续功能。

✴ 他们通过运行单元测试来验证漏洞,仅保留那些未通过一项或多项测试的错误代码样本。

✴ 为了生成多步漏洞修复的样本,他们使用 Claude 3.5 Sonnet、Claude 3.7 Sonnet 或 GPT-4o 提示 SWE-agent 分步骤修复错误。

● 测试结果:研究人员基于 5,000 个样本对 Qwen 2.5 Coder-32B 进行了微调,重点使用方法 (i) 和 (iv) 生成的漏洞,因为这些方法效果最佳。为保持漏洞的多样性,他们对每个漏洞最多保留 3 个修复样本。与 SWE-agent 搭配时,他们的模型在 SWE-bench Verified 中首次尝试的成功率为 40.2%。相比之下,采用 OpenHands 智能体框架时,同规模的 R2E-Gym-32B(使用不同数据微调)和规模更大的 Qwen3-235B-A22B(未微调)在首次尝试中的成功率分别为 34.4%。

 重要原因此前用于微调 LLM 执行编码任务的数据集规模较小,通常仅包含几千个训练样本,并且来源少于十个仓库。而研究人员提出的方法能够实现大规模数据生成,有望使主要开发者进一步改进 AI 辅助编程模型,也能让更多人构建更强大的系统。

 我们在想AI 辅助编程正在颠覆软件开发,相关工具仍在不断演进。能够大规模生成高效训练数据的能力,极有可能加速这一领域的进展——而这一进展的速度已经快得惊人了!




点击下方阅读原文查看更多有趣内容哦~





【声明】内容源于网络
0
0
DeeplearningAl
吴恩达老师的人工智能教育传播平台.
内容 1212
粉丝 0
DeeplearningAl 吴恩达老师的人工智能教育传播平台.
总阅读7.0k
粉丝0
内容1.2k