摘要
本发明涉及一种基于扰动和冻结预训练模型的程序自动修复方法。首先通过开源代码仓库构建缺陷修复数据集,从包含缺陷修复的历史提交中提取缺陷代码、代码上下文、修复代码,并清洗数据集;通过基于矩阵的扰动方法为预训练模型增加噪声;通过冻结模型的编码器网络减少训练参数量;此外通过检查点集成策略,保存模型训练过程中的多个检查点;最后使用多个检查点推理生成候选补丁列表,对补丁列表重排序后,得到最终的候选补丁列表,最后对列表中的Top‑N的补丁运行测试套件,检查补丁是否能通过所有测试用例,输出正确的补丁。该方法既减少了训练成本,又能提升模型的修复效果。
技术关键词
预训练模型
自动修复方法
检查点
代码提交历史
列表
编码器
生成补丁
扰动方法
集成策略
数据
程序
网络
套件
矩阵
仓库
参数
噪声
阶段
强度