大型语言模型在基于给定自然语言描述的代码生成方面取得了令人鼓舞的结果。它们已被集成到开源项目和商业产品中,以便于日常编码活动。提示中的自然语言描述对 LLM 理解用户需求至关重要。先前的研究发现,LLM 对提示中的变化非常敏感,包括看似微不足道的细微变化。然而,自然语言描述在现实场景中往往会有所不同(例如,格式、语法和措辞的不同)。以往对于 LLM 鲁棒性的研究往往基于随机扰动,而这种扰动可能并不会实际发生。本文对代码 LLM 如何对现实场景中自然语言描述的变化表现出鲁棒性进行了全面研究。基于文献回顾和与实践者的在线调查,我们总结了 18 种自然语言扰动的类别和 3 种共同出现的类别组合。我们提出了一个自动化框架 NLPerturbator,可以在给定一组提示的情况下执行每个类别的扰动。通过对七个代码 LLM 的一系列代码生成实验,我们发现扰动后的提示显著降低了代码生成的性能。我们的研究强调了增强 LLM 对现实场景中提示变化的鲁棒性的重要性,以及认真构建提示的必要性。
Chen 等 (周) 研究了这个问题。