论文

MergeSE:无需重新训练即可进行软件工程任务的事后模型合并

MergeSE: Post-Hoc Model Merging for Software Engineering Tasks Without Retraining

AI 基础设施AI 开发与运维平台

摘要

经过微调的代码模型通常表现得像领域专家,并且在分布转移下可能会急剧退化:在我们的克隆检测设置中,在同语言克隆上训练的模型在跨语言克隆上下降了 71% F1,而多任务训练在看不见的 AI 生成的克隆上下降到 0.151 F1。我们的配套研究表明,事后模型合并可以解决这种碎片问题,在没有训练数据的情况下实现 93% 的多任务性能,同时对未见过的克隆类型的泛化能力提高了 4 倍。然而,不存在实用的工具可以让 SE 研究人员诊断检查点兼容性、合并专家、验证 SE 基准的结果以及导出模型以进行部署。我们推出了 \textbf{MergeSE},这是一个开源 CLI 和 Web 工具,用于 HuggingFace 编码器检查点的 无需训练 模型合并。虽然受到克隆检测中 OOD 泛化的推动,MergeSE 通过九种任务类型的内置注册表更广泛地支持 SE 分类工作流程,包括漏洞检测、缺陷预测和代码气味检测。 MergeSE 提供五种操作:\textit{tasks}、\textit{inspect}、\textit{merge}、\textit{evaluate} 和 \textit{export}。支持TIES、DARE-TIES、Wudi、PCB、averaging等五种合并算法;检测跨任务分类头不匹配;产生可播种的确定性输出;并包括用于烟雾测试再现的捆绑基准样本。两个 124M 参数检查点的完全合并在 CPU 上可在 5 秒内完成。端到端验证确认 MergeSE 生成的检查点与参考实现匹配,并从特定领域的专家那里恢复跨域性能。该工具可在 https://mergese.usask.ca 在线获取,开发存储库位于 https://github.com/srlabUsask/MergeSE。