在各个域中应用机器学习(ML)的快速升级导致更多关注ML组件的质量。然后,旨在提高ML组件质量并安全地将其集成到基于ML的系统中的技术和工具的增长。尽管这些工具中的大多数都使用Bugs的生命周期,但没有标准的错误来评估其性能,比较它们并讨论其优势和弱点。在这项研究中,我们首先研究了基于ML的系统中错误的可重复性和可验证性,并显示了每个错误的最重要因素。然后,我们探索在基于ML的软件系统中生成错误基准的挑战,并提供一个错误基准缺陷4ML,该缺陷4ML满足标准基准的所有标准,即相关性,可重复性,公平性,可验证性和可用性。该故障负载基准测试包含ML开发人员在GitHub和堆栈溢出上报告的113个错误,使用两个最受欢迎的ML框架:TensorFlow和Keras。缺陷4ML还解决了基于ML的软件系统软件可靠性工程的重要挑战,例如:1)框架的快速变化,通过为不同版本的框架提供各种错误,2)代码便携性,通过在不同的ML框架中提供相似的错误,3 )错误可重复性,通过提供有关所需依赖关系和数据的完整信息,以及4)通过介绍指向错误的起源的链接来提供有关所需依赖性和数据的完整信息。基于ML的系统从业人员和研究人员可以评估其测试工具和技术的缺陷4ML。
translated by 谷歌翻译
深度学习(DL)框架现在被广泛使用,简化了复杂模型的创建以及它们对各种应用的集成甚至到非DL专家。但是,就像任何其他程序一样,他们容易发生错误。本文与命名静默错误的错误分类:它们会导致错误的行为,但它们不会导致系统崩溃或挂起,也不会向用户显示错误消息。这种错误在DL应用程序和框架中更危险,因为系统的“黑匣子”和系统的随机性质(最终用户无法理解模型如何做出决定)。本文介绍了Keras和Tensorflow Silent错误的第一个实证研究,以及它们对用户节目的影响。从Tensorflow Github存储库中提取与KERA相关的封闭问题。在我们收集的1,168个问题中,77个影响了影响用户程序的可重复静音错误。我们根据“用户程序的影响”和“发生问题”的“发生问题的组件”归类错误。然后,我们根据用户程序的影响,我们为每个问题派生威胁级别。为了评估所确定的类别和影响规模的相关性,我们使用103个DL开发人员进行了在线调查。参与者普遍同意DL库中静音错误的重大影响,并承认了我们的研究结果(即,沉默错误的类别和拟议的影响量表)。最后,利用我们的分析,我们提供了一套指导方针,以促进对DL框架中的这些错误的保护。
translated by 谷歌翻译
在各个领域采用深度学习(DL)的行业和学术界都有日益增长的需求,以解决现实世界的问题。深度加强学习(DRL)是DL在加固学习领域(RL)的应用。与任何软件系统一样,由于其程序中的故障,DRL应用程序可能会失败。在本文中,我们介绍了第一次尝试在DRL程序中分类故障。我们手动分析了使用众所周知的DRL框架(Openai健身房,多巴胺,Keras-RL,TensoRForce)和开发人员/用户报告的错误开发的DRL程序的761个文物(来自Stack Overflow帖子和GitHub问题)。我们通过几轮讨论标记和分类为已识别的故障。使用与19名开发人员/研究人员的在线调查验证了产生的分类法。为了允许在DRL程序中自动检测故障,我们已经确定了DRL程序的元模型,并开发了DRLINTER,一种利用静态分析和图形转换的基于模型的故障检测方法。 DRLINTINT的执行流程在于解析DRL程序,以生成符合我们元模型的模型,并在模型上应用检测规则以识别故障出现。使用15种合成DRLPRAGIONS评估DRLINTER的有效性,其中我们在分析的分析伪影中观察到的故障。结果表明,Drlinter可以在所有合成错误程序中成功检测故障。
translated by 谷歌翻译
如今,由于最近在人工智能(AI)和机器学习(ML)中的近期突破,因此,智能系统和服务越来越受欢迎。然而,机器学习不仅满足软件工程,不仅具有有希望的潜力,而且还具有一些固有的挑战。尽管最近的一些研究努力,但我们仍然没有明确了解开发基于ML的申请和当前行业实践的挑战。此外,目前尚不清楚软件工程研究人员应将其努力集中起来,以更好地支持ML应用程序开发人员。在本文中,我们报告了一个旨在了解ML应用程序开发的挑战和最佳实践的调查。我们合成从80名从业者(以不同的技能,经验和应用领域)获得的结果为17个调查结果;概述ML应用程序开发的挑战和最佳实践。参与基于ML的软件系统发展的从业者可以利用总结最佳实践来提高其系统的质量。我们希望报告的挑战将通知研究界有关需要调查的主题,以改善工程过程和基于ML的申请的质量。
translated by 谷歌翻译
深度学习(DL)越来越多地应用于各种域。从传统系统到DL系统的编程范式转移在工程DL系统中造成独特的挑战。性能是DL系统中的挑战之一,性能错误(PBS)可能导致严重后果,例如资源消耗过多和财务损失。虽然DL系统中的错误已被广泛调查,但DL系统中的PBS几乎没有探讨。为了弥合这一差距,我们展示了第一个综合研究,以表征症状,根本原因和引入和引入PBS在Tensorflow和Cheras中的DL系统中的阶段,共收集来自225个Sackoverflow Post的238个PBS。我们的调查结果阐明了对开发高性能DL系统的影响,以及DL系统中的PBS检测和定位PBS。我们还在DL系统中建立了56个PBS的第一个基准,并评估了解决它们的现有方法的能力。此外,我们开发了一个静态检查器DeadPerf来检测三种类型的PBS,并在130个GitHub项目中识别488个新PBS.62和18分别被开发人员确认和修复。
translated by 谷歌翻译
Recent advances in deep learning (dl) have led to the release of several dl software libraries such as pytorch, Caffe, and TensorFlow, in order to assist machine learning (ml) practitioners in developing and deploying state-of-the-art deep neural networks (DNN), but they are not able to properly cope with limitations in the dl libraries such as testing or data processing. In this paper, we present a qualitative and quantitative analysis of the most frequent dl libraries combination, the distribution of dl library dependencies across the ml workflow, and formulate a set of recommendations to (i) hardware builders for more optimized accelerators and (ii) library builder for more refined future releases. Our study is based on 1,484 open-source dl projects with 46,110 contributors selected based on their reputation. First, we found an increasing trend in the usage of deep learning libraries. Second, we highlight several usage patterns of deep learning libraries. In addition, we identify dependencies between dl libraries and the most frequent combination where we discover that pytorch and Scikit-learn and, Keras and TensorFlow are the most frequent combination in 18% and 14% of the projects. The developer uses two or three dl libraries in the same projects and tends to use different multiple dl libraries in both the same function and the same files. The developer shows patterns in using various deep-learning libraries and prefers simple functions with fewer arguments and straightforward goals. Finally, we present the implications of our findings for researchers, library maintainers, and hardware vendors.
translated by 谷歌翻译
背景:机器学习(ML)系统依靠数据来做出预测,与传统软件系统(例如数据处理管道,服务管道和模型培训)相比,该系统具有许多添加的组件。现有关于软件维护的研究研究了针对不同类型的问题(例如绩效和安全问题)的问题报告需求和解决过程。但是,ML系统具有特定的故障类别,报告ML问题需要特定于域的信息。由于ML和传统软件工程系统之间的特征不同,我们不知道报告需求在多大程度上不同,并且这些差异在多大程度上影响了问题解决过程。目的:我们的目标是调查ML和非ML问题之间分辨率时间的分布以及某些ML问题的分配时间是否存在差异。我们进一步研究了ML问题和非ML问题的修复大小。方法:我们在GitHub的最新活动应用ML项目中提取问题报告,提取请求和代码文件,并使用自动方法过滤ML和非ML问题。我们使用已知的深度学习错误分类法手动标记这些问题。我们测量了受控样本上ML和非ML问题的解决方案的分辨率时间和大小,并比较每个类别的分布。
translated by 谷歌翻译
机器学习(ML)研究出版物通常在GitHub上提供开源实现,使他们的受众可以复制,验证甚至扩展机器学习算法,数据集和元数据。但是,到目前为止,关于此类ML研究存储库的协作活动程度知之甚少,特别是(1)此类存储库从叉子获得贡献的程度,(2)此类贡献的性质(即类型,变化),以及(3)变更的性质,这些变化未归还给叉子,这可能代表了错过的机会。在本文中,我们对1,346毫升研究存储库及其67,369叉进行了验证,无论是定量还是定性(通过Hindle等人的构建代码更改的开创性分类法)。我们发现,尽管ML研究存储库是大量分叉的,但只有9%的叉子对叉子存储库进行了修改。后者的42%发送给家长存储库的更改,其中一半(52%)被父家存储库接受。我们对539个贡献的定性分析和378个本地(仅叉)变化,扩展了Hindle等人的分类法,其中一个与ML(数据)相关的新顶级变更类别和15个新的子类别,包括9个ML--特定的(输入数据,输出数据,程序数据,共享,变更评估,参数调整,性能,预处理,模型培训)。虽然没有由叉子造成的更改主要是涉及域特定于域的定制和本地实验(例如,参数调整),但原点ML存储库确实错过了不可忽视的15.4%文档更改的13.6%的功能更改,而功能更改的13.6%和11.4%的错误修复更改。本文中的发现将对从业者,研究人员,工具匠和教育者有用。
translated by 谷歌翻译
背景:机器学习(ML)可以实现有效的自动测试生成。目的:我们表征了新兴研究,检查测试实践,研究人员目标,应用的ML技术,评估和挑战。方法:我们对97个出版物的样本进行系统文献综述。结果:ML生成系统,GUI,单位,性能和组合测试的输入或改善现有生成方法的性能。 ML还用于生成测试判决,基于属性的和预期的输出序列。经常基于神经网络和强化学习的监督学习通常是基于Q学习的 - 很普遍,并且某些出版物还采用了无监督或半监督的学习。使用传统的测试指标和与ML相关的指标(例如准确性)评估(半/非 - )监督方法,而经常使用与奖励功能相关的测试指标来评估强化学习。结论:工作到尽头表现出巨大的希望,但是在培训数据,再探术,可伸缩性,评估复杂性,所采用的ML算法以及如何应用 - 基准和可复制性方面存在公开挑战。我们的发现可以作为该领域研究人员的路线图和灵感。
translated by 谷歌翻译
背景信息:在过去几年中,机器学习(ML)一直是许多创新的核心。然而,包括在所谓的“安全关键”系统中,例如汽车或航空的系统已经被证明是非常具有挑战性的,因为ML的范式转变为ML带来完全改变传统认证方法。目的:本文旨在阐明与ML为基础的安全关键系统认证有关的挑战,以及文献中提出的解决方案,以解决它们,回答问题的问题如何证明基于机器学习的安全关键系统?'方法:我们开展2015年至2020年至2020年之间发布的研究论文的系统文献综述(SLR),涵盖了与ML系统认证有关的主题。总共确定了217篇论文涵盖了主题,被认为是ML认证的主要支柱:鲁棒性,不确定性,解释性,验证,安全强化学习和直接认证。我们分析了每个子场的主要趋势和问题,并提取了提取的论文的总结。结果:单反结果突出了社区对该主题的热情,以及在数据集和模型类型方面缺乏多样性。它还强调需要进一步发展学术界和行业之间的联系,以加深域名研究。最后,它还说明了必须在上面提到的主要支柱之间建立连接的必要性,这些主要柱主要主要研究。结论:我们强调了目前部署的努力,以实现ML基于ML的软件系统,并讨论了一些未来的研究方向。
translated by 谷歌翻译
在过去几年中,自动化机器学习(AUTOML)工具的普及有所增加。机器学习(ML)从业人员使用自动工具来自动化和优化功能工程,模型培训和超参数优化的过程。最近的工作对从业人员使用汽车工具的经验进行了定性研究,并根据其性能和提供的功能比较了不同的汽车工具,但是现有的工作都没有研究在大规模实际项目中使用Automl工具的实践。因此,我们进行了一项实证研究,以了解ML从业者如何在其项目中使用汽车工具。为此,我们在GitHub上托管的大量开源项目存储库中研究了最常用的十大汽车工具及其各自的用法。我们研究的结果表明1)ML从业人员主要使用哪种汽车工具,以及2)使用这些汽车工具的存储库的特征。此外,我们确定了使用Automl工具的目的(例如,模型参数采样,搜索空间管理,模型评估/错误分析,数据/功能转换和数据标记)以及ML管道的阶段(例如功能工程)使用工具。最后,我们报告在同一源代码文件中使用Automl工具的频率。我们希望我们的结果可以帮助ML从业人员了解不同的汽车工具及其使用情况,以便他们可以为其目的选择正确的工具。此外,Automl工具开发人员可以从我们的发现中受益,以深入了解其工具的用法并改善其工具以更好地适合用户的用法和需求。
translated by 谷歌翻译
通过分析大量数据来提供决策支持,大数据正在改革许多工业域。大数据测试旨在确保大数据系统在维护数据的性能和质量时运行平稳且无错误。但是,由于数据的多样性和复杂性,测试大数据具有挑战性。虽然众多研究对大数据测试进行了综合审查,但解决了测试技术和挑战的综合性尚未混淆。因此,我们对大数据测试技术(2010年 - 2021年)进行了系统审查。本文通过突出显示每个处理阶段的技术来讨论测试数据的处理。此外,我们讨论了挑战和未来的方向。我们的发现表明,已经使用不同的功能,非功能性和组合(功能和非功能性)测试技术来解决与大数据相关的特定问题。同时,在MapReduce验证阶段,大多数测试挑战都面临。此外,组合测试技术是与其他技术相结合的应用技术之一(即随机测试,突变测试,输入空间分区和等价测试),以解决在大数据测试期间面临的各种功能故障挑战。
translated by 谷歌翻译
物联网是一个快速新兴的范式,现在几乎涵盖了我们现代生活的各个方面。因此,确保物联网设备的安全至关重要。物联网设备与传统计算可能有所不同,从而在物联网设备中设计和实施适当的安全措施可能具有挑战性。我们观察到,物联网开发人员在堆栈溢出(SO)等开发人员论坛中讨论了与安全相关的挑战。但是,我们发现,在SO中,物联网安全讨论也可以埋葬在非安全性讨论中。在本文中,我们旨在了解物联网开发人员在将安全实践和技术应用于IoT设备时面临的挑战。我们有两个目标:(1)开发一个模型,该模型可以自动在SO中找到与安全有关的物联网讨论,并且(2)研究模型输出以了解与IoT开发人员安全相关的挑战。首先,我们从中下载了53k帖子,因此包含有关物联网的讨论。其次,我们手动将53K帖子的5,919个句子标记为1或0。第三,我们使用此基准测试来研究一套深度学习变压器模型。最佳性能模型称为SECBOT。第四,我们将SECBOT应用于整个帖子,并找到大约30K安全性的句子。第五,我们将主题建模应用于与安全有关的句子。然后,我们标记并分类主题。第六,我们分析了主题的演变。我们发现(1)SECBOT是基于深度学习模型Roberta的重建。 SECBOT提供的最佳F1分数为0.935,(2)SECBOT错误分类的样本中有六个错误类别。当关键字/上下文是模棱两可的(例如,网关可以是安全网关或简单网关)时,SECBOT主要是错误的,(3)有9个安全主题分为三个类别:软件,硬件和网络,以及(4)最多的主题属于软件安全性,然后是网络安全。
translated by 谷歌翻译
负责任的AI被广泛认为是我们时代最大的科学挑战之一,也是释放AI市场并增加采用率的关键。为了应对负责任的AI挑战,最近已经发布了许多AI伦理原则框架,AI系统应该符合这些框架。但是,没有进一步的最佳实践指导,从业者除了真实性之外没有什么。同样,在算法级别而不是系统级的算法上进行了重大努力,主要集中于数学无关的道德原则(例如隐私和公平)的一部分。然而,道德问题在开发生命周期的任何步骤中都可能发生,从而超过AI算法和模型以外的系统的许多AI,非AI和数据组件。为了从系统的角度操作负责任的AI,在本文中,我们采用了一种面向模式的方法,并根据系统的多媒体文献综述(MLR)的结果提出了负责任的AI模式目录。与其呆在道德原则层面或算法层面上,我们专注于AI系统利益相关者可以在实践中采取的模式,以确保开发的AI系统在整个治理和工程生命周期中负责。负责的AI模式编目将模式分为三组:多层次治理模式,可信赖的过程模式和负责任的逐设计产品模式。这些模式为利益相关者实施负责任的AI提供了系统性和可行的指导。
translated by 谷歌翻译
社交媒体有可能提供有关紧急情况和突然事件的及时信息。但是,在每天发布的数百万帖子中找到相关信息可能很困难,并且开发数据分析项目通常需要时间和技术技能。这项研究提出了一种为分析社交媒体的灵活支持的方法,尤其是在紧急情况下。引入了可以采用社交媒体分析的不同用例,并讨论了从大量帖子中检索信息的挑战。重点是分析社交媒体帖子中包含的图像和文本,以及一组自动数据处理工具,用于过滤,分类和使用人类的方法来支持数据分析师的内容。这种支持包括配置自动化工具的反馈和建议,以及众包收集公民的投入。通过讨论Crowd4SDG H2020欧洲项目中开发的三个案例研究来验证结果。
translated by 谷歌翻译
深度神经网络(DNN)用于各种应用中。但是,与任何软件应用程序一样,基于DNN的应用程序受到错误的影响。以前的工作观察到DNN错误修复模式与传统错误修复模式不同。此外,由于具有多种选项来修复它们,因此由于具有多种选项的错误错误,那些错误模型是非微不足道的。为了支持开发人员在定位和修复错误中,我们提出DeepDiagnosis,一种定位故障的新型调试方法,报告错误症状,并提出了DNN程序的修复。在第一阶段,我们的技术监视培训模型,定期检查八种类型的错误条件。然后,在问题的情况下,它报告包含足够信息的消息来对模型执行可操作的维修。在评估中,我们通过GitHub和Stack Overflow彻底检查444型号-53现实世界,并由Autotrainer策划391。与UMLUAT和Deeplocalize相比,DeepDiagnosis提供卓越的准确性。我们的技术比Autotrainer更快,用于故障定位。结果表明,我们的方法可以支持其他类型的模型,而最先进的人才能够处理分类。我们的技术能够在培训期间报告在训练期间不明显作为数值错误的错误。此外,它可以提供用于修复的可操作的见解,而Deeplocalize只能在训练期间报告导致数值误差的故障。与其他方法相比,DeepDiagnosis表现出故障检测,错误本地化和症状的最佳能力。
translated by 谷歌翻译
源代码存储库由大型代码库组成,通常包含容易发生的程序。软件的复杂性日益增加导致时间和识别这些缺陷的时间和成本急剧上升。存在各种方法可以自动生成错误代码的修复程序。但是,由于特定错误的可能解决方案的组合空间很大,因此没有很多工具和数据集可以有效地评估生成的代码。在这项工作中,我们介绍了FixeVal,这是一个基准,其中包括竞争性编程问题及其各自修复程序的基准。我们引入了丰富的测试套件,以评估和评估模型生成程序修复的正确性。我们将两种在编程语言上鉴定的变压器语言模型视为我们的基准,并使用基于匹配和基于执行的评估指标对其进行比较。我们的实验表明,基于匹配的指标不能准确反映模型生成的程序修复,而基于执行的方法通过专门为该解决方案设计的所有情况和场景评估程序。因此,我们认为FixeVal提供了朝着实际自动错误修复和模型生成的代码评估的步骤。
translated by 谷歌翻译
Machine Learning for Source Code (ML4Code) is an active research field in which extensive experimentation is needed to discover how to best use source code's richly structured information. With this in mind, we introduce JEMMA, an Extensible Java Dataset for ML4Code Applications, which is a large-scale, diverse, and high-quality dataset targeted at ML4Code. Our goal with JEMMA is to lower the barrier to entry in ML4Code by providing the building blocks to experiment with source code models and tasks. JEMMA comes with a considerable amount of pre-processed information such as metadata, representations (e.g., code tokens, ASTs, graphs), and several properties (e.g., metrics, static analysis results) for 50,000 Java projects from the 50KC dataset, with over 1.2 million classes and over 8 million methods. JEMMA is also extensible allowing users to add new properties and representations to the dataset, and evaluate tasks on them. Thus, JEMMA becomes a workbench that researchers can use to experiment with novel representations and tasks operating on source code. To demonstrate the utility of the dataset, we also report results from two empirical studies on our data, ultimately showing that significant work lies ahead in the design of context-aware source code models that can reason over a broader network of source code entities in a software project, the very task that JEMMA is designed to help with.
translated by 谷歌翻译
GitHub是Internet上最大的开源软件主机。这个大型,可自由访问的数据库吸引了从业人员和研究人员的注意。但是,随着Github的增长的继续,越来越难以导航遍布广泛领域的大量存储库。过去的工作表明,考虑到应用程序域对于预测存储库的普及以及有关项目质量的推理的任务至关重要。在这项工作中,我们建立在先前注释的5,000个GitHub存储库的数据集上,以设计自动分类器,以通过其应用程序域对存储库进行分类。分类器使用最先进的自然语言处理技术和机器学习,根据五个应用程序域从多个数据源和目录存储库中学习。我们用(1)自动分类器贡献,该分类器可以将流行的存储库分配给每个应用程序域,至少具有70%的精度,(2)对该方法在不流行的存储库中的性能进行调查,以及(3)这种方法对这种方法的实际应用程序,用于回答软件工程实践的采用如何在应用程序域之间有何不同。我们的工作旨在帮助GitHub社区确定感兴趣的存储库,并为未来的工作开放有希望的途径,以调查来自不同应用领域的存储库之间的差异。
translated by 谷歌翻译
过去十年已经看到人工智能(AI)的显着进展,这导致了用于解决各种问题的算法。然而,通过增加模型复杂性并采用缺乏透明度的黑匣子AI模型来满足这种成功。为了响应这种需求,已经提出了说明的AI(Xai)以使AI更透明,从而提高关键结构域中的AI。虽然有几个关于Xai主题的Xai主题的评论,但在Xai中发现了挑战和潜在的研究方向,这些挑战和研究方向被分散。因此,本研究为Xai组织的挑战和未来的研究方向提出了系统的挑战和未来研究方向:(1)基于机器学习生命周期的Xai挑战和研究方向,基于机器的挑战和研究方向阶段:设计,开发和部署。我们认为,我们的META调查通过为XAI地区的未来探索指导提供了XAI文学。
translated by 谷歌翻译