← 最新论文
🤖 AI

Effectiveness of LLM-based Software Diversity for Reliability Improvement -- an Empirical Study

这项实证研究表明,大语言模型可以作为一种可扩展、低成本的软件多样性来源,其中结合由大语言模型生成的程序——特别是通过在不同模型、设置和语言之间进行异构配置——能通过减少共模故障来有效提高系统的可靠性。

原作者: Gabriel Almeida, Ilir Gashi, Vladimir Stankovic, João R. Campos

发布于 2026-07-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Gabriel Almeida, Ilir Gashi, Vladimir Stankovic, João R. Campos

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在建造一座至关重要的桥梁。为了确保它不会坍塌,你不仅仅建造一个版本,而是使用不同的蓝图、不同的材料和不同的工程团队来建造三个或四个不同的版本。如果其中一个团队犯了一个导致裂缝的错误,其他的版本可能会因为构建方式不同而发现它。这就是**软件多样性(Software Diversity)**的核心理念:拥有多个不同的软件版本,这样如果其中一个失效,其他的仍能继续工作。

几十年来,这极其昂贵且缓慢。你需要雇佣不同的团队,付钱让他们从零开始编写代码,然后测试所有这些代码。这就像雇佣三位不同的厨师来做完全相同的汤,希望如果其中一位烧焦了,另外两位能做得正确。

“神奇复印机”的到来 (LLMs)
最近,大语言模型(LLMs)出现了。把它们想象成超快速、神奇的复印机,它们可以瞬间编写代码。你可以要求一台机器在几秒钟内写出 100 个程序,它会给你 100 个略有不同的版本。作者提出的核心问题是:“如果我们使用这个神奇的机器来创建我们的‘备份’桥梁,它们是否真的足够不同,能在出问题时拯救我们?”

以下是他们的研究发现,通过简单的分类进行了拆解:

1. “同样的错误”问题

研究人员使用三个不同的编程谜题(类似于数学题)测试了两组对象:

  • A 组: 多年前由真实人类编写的代码(在 AI 普及之前)。
  • B 组: 由各种 AI 模型生成的代码。

他们发现,AI 模型确实会犯错,但它们经常犯下相同的错误。 如果你要求两个不同的 AI 模型解决同一个谜题,它们可能会在同一个棘手的步骤上同时出错。这就像让两名学习了同一本教科书的学生参加考试;如果他们都答错了,很可能是因为教科书里的解释很令人困惑,而不是因为他们的思考方式不同。

2. “切换语言”的小技巧

然而,研究人员发现了一个聪明的办法,可以让 AI 生成的版本彼此之间更加不同。他们强制要求 AI 使用不同的编程语言来编写代码(例如,一个用 C++,一个用 Java,一个用 Python)。

  • 类比: 想象要求同一位厨师做汤,但首先是在法式厨房里做,然后在日式厨房里做,最后在意式厨房里做。即使他们在做同样的汤,他们使用的工具、食材和技巧也会如此不同,以至于不太可能犯下完全相同的错误。
  • 结果: 当 AI 用不同的语言编写代码时,这些“备份”版本变得更加可靠。它们不太可能同时失效。事实上,混合使用不同的 AI 语言的效果甚至比混合使用不同的语言(指人类语言)在某些情况下效果更好。

3. “人类 + AI”超级团队

最令人兴奋的发现是,当他们将人类编写的程序AI 编写的程序配对时发生了什么。

  • 类比: 把人类想象成一名依靠直觉和经验的老练侦探,而把 AI 想象成一个依靠模式和数据进行工作的超快速机器人。
  • 结果: 这两者的思维方式如此不同,以至于它们很少犯同样的错误。如果人类忽略了一个微妙的线索,AI 可能会捕捉到它。如果 AI 被一个奇怪的格式规则搞糊涂了,人类可能会解决它。
  • 结论: 将人类与 AI 配对,创造了一个“超可靠”的系统,其鲁棒性通常远高于单独使用两个人类或两个 AI。在某些情况下,它们的差异性如此之大,以至于能够完美地弥补彼此的弱点,成为一个比部分之和更强大的安全网。

4. “温度”调节旋钮

研究人员还尝试调高了 AI 的“创造力”旋钮(称为“温度”/ Temperature)。

  • 类比: 想象要求一位作家写故事。如果你告诉他要非常严谨(低温度),他每次都会写出同样的故事。如果你告诉他要狂野且富有创意(高温度),他会写出截然不同的故事。
  • 结果: 提高 AI 的创造力确实创造了更多的代码多样性,但也让代码更容易彻底崩溃(就像一个逻辑不通的故事)。虽然这起到了一点作用,但更换编程语言是确保备份版本既不同又可靠的更有效的方法。

核心结论

论文总结道,AI 是创建一个软件多样性的绝佳工具,但你必须聪明地使用它。

  • 不要只是要求 AI 用同一种语言写 10 次同样的东西。 它们很可能会以同样的方式失败。
  • 要要求 AI 用不同的语言编写同样的东西。 这会创造一个真正的“安全网”。
  • 要将人类与 AI 结合。 人类与机器思考方式之间的差异使它们成为实现可靠性的完美搭档。

简而言之,AI 可以帮助我们构建更安全的软件,不是通过取代人类,而是通过提供大量、廉价且“不同”的版本,让我们能够通过组合搭配,捕捉到单一版本可能会错过的错误。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →