预训练语言模型能否用于解决文本与语义合并冲突?
软件工程
2021-11-24 v1
摘要
当开发者将各自对公共代码库的修改进行集成时,程序合并是标准做法。当合并算法失败时,这被称为合并冲突。该冲突要么表现为文本合并冲突(合并无法生成代码),要么表现为语义合并冲突(合并后的代码导致编译器或测试出错)。对于大型代码项目,解决这些冲突代价高昂,因为它需要开发者手动识别冲突来源并加以修正。在本文中,我们探讨了利用基于 k-shot 学习的大型神经语言模型(LM,如 GPT-3)自动修复合并冲突(包括文本与语义冲突)的可行性。利用此类语言模型的挑战之一是将示例与查询放入一个较小的提示(2048 tokens)内。我们针对两类广泛应用评估了 LM 与 k-shot 学习:(a) 分支版本 Microsoft Edge 的文本与语义合并冲突;(b) GitHub 上大量 JavaScript 项目的文本合并冲突。我们的结果喜忧参半:一方面,与早期符号方法相比,LM 在 Edge 的语义合并冲突解决上提供了最先进的(SOTA)性能;另一方面,LM 尚不能取代微调神经模型(在拥有充足数据时)或针对程序合成的受限模式设计专用领域特定语言(DSL)的优势。
引用
@article{arxiv.2111.11904,
title = {Can Pre-trained Language Models be Used to Resolve Textual and Semantic Merge Conflicts?},
author = {Jialu Zhang and Todd Mytkowicz and Mike Kaufman and Ruzica Piskac and Shuvendu K. Lahiri},
journal= {arXiv preprint arXiv:2111.11904},
year = {2021}
}