中文

神经元修补:面向代码生成的基于语义的神经元级语言模型修复

软件工程 2024-11-21 v5 计算与语言 机器学习

摘要

语言模型(LMs)在软件工程中得到了广泛应用,特别是在代码生成等任务中,被称为代码 LM。这些模型已被证明在生成代码方面非常有效,使开发者更容易实现编码活动的自动化。然而,研究凸显了一个显著的局限性:尽管 LM 很有效,但它们生成的代码往往是不正确、有缺陷或功能不全的。用有限的数据更新这些模型可能极具挑战性,但这对于最大化其效用至关重要。这可能需要热修复技术(用有限数据更新模型)来解决。在本文中,我们提出了通过神经元靶向进行模型改进(MINT),一种修复代码 LM 的新方法。MINT 利用语言模型的语义特性,以一种新颖的方式执行神经元级修复。此外,通过分析模型的潜在表示、错误输出和期望输出之间的关系,MINT 确定哪些神经元值得更新。这种方法确保仅针对对模型失败至关重要的神经元,避免了不必要的更改,从而实现更高效、更精确的修复过程。MINT 有效、高效且可靠,能够通过修补最少数量的神经元(通常一或两个神经元)来纠正神经模型。我们的方法在三个编码任务上进行了评估:行级代码生成、shellcode 生成和意图到 bash 的翻译。实验结果表明,所提出的方法在有效性和效率指标上均显著优于现有技术。此外,我们分析并讨论了模型修复技术的副作用,包括泛化与特异性之间的平衡,以及连续多次修复后的性能表现。

关键词

引用

@article{arxiv.2312.05356,
  title  = {Neuron Patching: Semantic-based Neuron-level Language Model Repair for Code Generation},
  author = {Jian Gu and Aldeida Aleti and Chunyang Chen and Hongyu Zhang},
  journal= {arXiv preprint arXiv:2312.05356},
  year   = {2024}
}

备注

13 pages, 7 figures, 7 tables, under peer-review