论文

评估 LLM 生成代码中的故障独立性的系统方法

A Systematic Methodology for Evaluating Failure Independence in LLM-Generated Code

模型评测评测方法与指标

摘要

N 版本编程 (NVP) 通过执行多个独立实现和组合输出来提高软件可靠性,但其采用受到高成本和故障独立性假设的限制,而实证研究对此提出了挑战。 大语言模型 (LLM) 的最新进展降低了生成多个实现的成本,将焦点转移到它们的故障是否独立。我们提出了第一个系统方法来评估 LLM 生成的代码中的故障独立性,并将其应用于跨 12 个模型、5 种语言和 3 种提示策略的 224 个问题。我们分析结构和行为多样性(即,在相同的测试用例上实现是否失败),并在多数投票和生成代码的手动检查下进行 N 版本可靠性分析作为补充。结构多样性分析表明,同一模型的实现高度相似,而不同的模型会产生更不同的解决方案。行为多样性也出现了相同的趋势,不同模型的实现表现出更高的多样性,但在相同的测试中失败的几率仍然远高于独立条件下的预期。 N 版本可靠性分析强化了这一点:三版本和五版本集成仅实现了独立性下可实现的可靠性增益的 0.43 和 0.44,当从同一模型构建集成时,该值降至 0.3 以下。手动故障分析表明,即使是不同的故障模式也常常具有相同的根本原因。总体而言,这些结果表明 LLM 生成的解决方案不满足 NVP 的故障独立性假设,尽管异构模型有部分帮助。他们还验证了我们的方法作为随着模型的发展系统评估故障独立性的工具。