在这项研究中,苹果的研究人员提出了一种新的AI模型,该模型克服了当今大语言模型在分析大规模代码库以检测和预测Bug时的局限性(如"幻觉、缺乏上下文的生成以及检索过程中关键业务关系的丢失")。
这个名为ADE-QVAET的模型旨在通过结合四种AI技术来提高Bug预测的准确性:自适应差分进化(ADE)、量子变分自编码器(QVAE)、Transformer层和自适应噪声减少与增强(ANRA)。
简而言之,ADE调整模型的学习方式,QVAE帮助其理解数据中的深层模式。同时,Transformer层确保模型跟踪这些模式之间的关系,ANRA清理和平衡数据以保持一致的结果。
有趣的是,这不是一个直接分析代码的大语言模型。相反,它查看代码的指标和数据,如复杂性、大小和结构,并寻找可能表明Bug可能出现位置的模式。
根据研究人员的说法,当他们在专门用于软件Bug预测的Kaggle数据集上测量模型性能时,得到了以下结果:
这意味着该模型在总体上高度可靠,在正确识别真实Bug方面非常有效,同时避免了误报。
在Apple机器学习研究博客上阅读完整研究
这项研究由四名苹果研究人员完成,其中三人参与了ADE-QVAET模型的工作。在这里,他们解决了质量工程师面临的第二个耗时任务,即为大型软件项目创建和维护详细的测试计划和用例。
在这项研究中,他们开发了一个利用大语言模型和自主AI智能体的系统,可以自动生成和管理测试工件,从测试计划到验证报告,同时保持需求、业务逻辑和结果之间的完整可追溯性。
换句话说,他们构建了一个能够自主规划、编写和组织软件测试的AI系统,这可能有助于简化质量工程师的工作流程,因为他们"花费30-40%的时间创建基础测试工件,如测试计划、用例和自动化脚本"。
与ADE-QVAET模型一样,这里的结果也很有前景:
另一方面,研究人员也注意到该框架存在局限性,包括他们的工作仅专注于"员工系统、财务和SAP环境",限制了其泛化能力。
在Apple机器学习研究博客上阅读完整研究
这可能是三项研究中最有趣和最雄心勃勃的一项。
虽然前两项研究专注于预测Bug可能出现的位置以及如何测试和验证它们,但SWE-Gym背后的想法是训练实际上能够通过学习读取、编辑和验证真实代码来修复Bug的AI智能体。
SWE-Gym使用来自11个开源仓库的2,438个真实Python任务构建,每个任务都有可执行环境和测试套件,以便智能体可以在现实条件下练习编写和调试代码。
研究人员还开发了SWE-Gym Lite,包含230个更简单、更独立的任务,旨在使训练和评估更快、计算成本更低。
根据研究,使用SWE-Gym训练的智能体正确解决了72.5%的任务,比之前的基准测试高出20多个百分点。
同时,SWE-Gym Lite与完整设置相比,训练时间减少了近一半,同时提供了类似的结果。另一方面,Lite版本包含的编码任务要少得多且简单得多,这使得它在测试更大、更复杂问题上的模型时效果较差。
在Apple机器学习研究博客上阅读完整研究
Q&A
Q1:ADE-QVAET模型是什么?它如何预测Bug?
A:ADE-QVAET是苹果研究人员开发的AI模型,它结合了自适应差分进化、量子变分自编码器、Transformer层和自适应噪声减少与增强四种技术。该模型不直接分析代码,而是查看代码的复杂性、大小和结构等指标,寻找可能表明Bug出现位置的模式。
Q2:SWE-Gym能够做什么?训练效果如何?
A:SWE-Gym是一个训练AI智能体修复Bug的系统,使用2,438个真实Python任务让智能体学习读取、编辑和验证代码。经过训练的智能体能够正确解决72.5%的任务,比之前的基准测试高出20多个百分点。
Q3:苹果的AI测试生成系统有什么优势?
A:该系统利用大语言模型和AI智能体自动生成和管理测试工件,从测试计划到验证报告,能够保持需求、业务逻辑和结果之间的完整可追溯性。这可以帮助质量工程师节省30-40%用于创建基础测试工件的时间。