论文
基于LLM的软件多样性提高可靠性的有效性——实证研究
Effectiveness of LLM-based Software Diversity for Reliability Improvement -- an Empirical Study
摘要
软件多样性作为降低共模故障风险的一种手段已得到广泛研究。经典研究表明,核心问题是不同冗余组件的故障是否以限制可靠性增益的方式重叠。传统软件多样性的获取成本很高,因为它需要多种实现以及相应的验证、维护和部署工作。 大语言模型 (LLM) 的最新进展可能会改变这一点。 LLM 支持廉价的代码生成:它们可以跨不同的模型、解码设置和编程语言快速生成相同规范的许多候选实现。这就提出了一个自然的问题:LLM 能否作为软件多样性的实用生成器,以及这种多样性实际上可以提供多少可靠性改进?在本文中,我们将人类编写的程序中软件多样性的经典实证研究扩展到 LLM 生成的代码。我们使用历史上人类编写的程序和大量 LLM 生成的程序来研究三个规范,并在通用编译、沙箱和详尽的测试套件下进行评估。我们沿着多个轴探索 LLM 的多样性,包括模型系列、生成温度和编程语言。可靠性改进是在同质和异构程序群体中以二选一的配置进行评估的,包括 LLM 内配对和跨编程语言以及跨 LLM 生成和人工编写的程序的配对。结果表明,结合 LLM 生成的程序,特别是在异构设置中,可以产生可靠性增益,尽管这部分取决于编程语言和生成设置。总而言之,这些发现表明 LLM 提供了成本相对较低的程序的可扩展来源,其多样性可用于提高可靠性。