论文

当提示不符合规范时可以提高代码正确性:提示措辞和结构对基于 LLM 的代码生成的影响的探索性研究

When Prompt Under-Specification Improves Code Correctness: An Exploratory Study of Prompt Wording and Structure Effects on LLM-Based Code Generation

模型评测鲁棒性、公平性与可信度评测

摘要

大语言模型 越来越多地用于代码生成,但其输出的正确性不仅取决于模型能力,还取决于任务的指定方式。先前的研究表明,自然语言提示的微小变化,特别是规范不足,可能会大大降低代码的正确性;然而,这些发现很大程度上基于 HumanEval 和 MBPP 等最低规格基准,其中有限的结构冗余可能会夸大敏感性。在这项探索性研究中,我们研究了提示结构、任务复杂性和规范丰富性如何与 LLM 提示突变的鲁棒性相互作用。我们通过 HumanEval 和结构更丰富的 LiveCodeBench 评估 10 个不同的模型。我们的结果表明,稳健性不是 LLM 的固定属性,而是高度依赖于提示结构:由于描述、约束、示例和 I/O 约定之间的冗余,导致 HumanEval 性能下降的相同规范不足突变对 LiveCodeBench 的净影响几乎为零。令人惊讶的是,我们还发现即时突变可以提高正确性。在 LiveCodeBench 中,规范不足通常会破坏误导性的词汇或结构线索,从而触发错误的基于检索的解决方案策略,从而提高正确性,从而抵消退化。手动分析确定了这些改进背后的一致机制,包括破坏过度拟合的术语、消除误导性约束以及消除虚假标识符触发器。总的来说,我们的研究表明,结构丰富的任务描述可以大大减轻规格不足的负面影响,在某些情况下甚至可以提高正确性。我们概述了对 LLM 代码生成行为产生积极影响的提示修改类别,为编写强大的提示提供了实用的见解。