深度学习(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 谷歌翻译
深度学习(DL)框架现在被广泛使用,简化了复杂模型的创建以及它们对各种应用的集成甚至到非DL专家。但是,就像任何其他程序一样,他们容易发生错误。本文与命名静默错误的错误分类:它们会导致错误的行为,但它们不会导致系统崩溃或挂起,也不会向用户显示错误消息。这种错误在DL应用程序和框架中更危险,因为系统的“黑匣子”和系统的随机性质(最终用户无法理解模型如何做出决定)。本文介绍了Keras和Tensorflow Silent错误的第一个实证研究,以及它们对用户节目的影响。从Tensorflow Github存储库中提取与KERA相关的封闭问题。在我们收集的1,168个问题中,77个影响了影响用户程序的可重复静音错误。我们根据“用户程序的影响”和“发生问题”的“发生问题的组件”归类错误。然后,我们根据用户程序的影响,我们为每个问题派生威胁级别。为了评估所确定的类别和影响规模的相关性,我们使用103个DL开发人员进行了在线调查。参与者普遍同意DL库中静音错误的重大影响,并承认了我们的研究结果(即,沉默错误的类别和拟议的影响量表)。最后,利用我们的分析,我们提供了一套指导方针,以促进对DL框架中的这些错误的保护。
translated by 谷歌翻译
在各个域中应用机器学习(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 谷歌翻译
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 谷歌翻译
在各个领域采用深度学习(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 谷歌翻译
物联网是一个快速新兴的范式,现在几乎涵盖了我们现代生活的各个方面。因此,确保物联网设备的安全至关重要。物联网设备与传统计算可能有所不同,从而在物联网设备中设计和实施适当的安全措施可能具有挑战性。我们观察到,物联网开发人员在堆栈溢出(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)和机器学习(ML)中的近期突破,因此,智能系统和服务越来越受欢迎。然而,机器学习不仅满足软件工程,不仅具有有希望的潜力,而且还具有一些固有的挑战。尽管最近的一些研究努力,但我们仍然没有明确了解开发基于ML的申请和当前行业实践的挑战。此外,目前尚不清楚软件工程研究人员应将其努力集中起来,以更好地支持ML应用程序开发人员。在本文中,我们报告了一个旨在了解ML应用程序开发的挑战和最佳实践的调查。我们合成从80名从业者(以不同的技能,经验和应用领域)获得的结果为17个调查结果;概述ML应用程序开发的挑战和最佳实践。参与基于ML的软件系统发展的从业者可以利用总结最佳实践来提高其系统的质量。我们希望报告的挑战将通知研究界有关需要调查的主题,以改善工程过程和基于ML的申请的质量。
translated by 谷歌翻译
近年来,在移动设备上部署深度学习(DL)一直是一个显着的趋势。为了支持对开发DL的快速推断,DL库作为算法和硬件扮演着至关重要的角色。不幸的是,先前的工作从未深入现代DL Libs的生态系统,并为其性能提供定量结果。在本文中,我们首先建立了一个全面的基准,其中包括6个代表性DL LIB和15种多元化的DL模型。然后,我们在10个移动设备上进行了广泛的实验,这有助于揭示当前移动DL LIBS生态系统的完整景观。例如,我们发现表现最佳的DL LIB在不同的模型和硬件中严重碎片,这些DL Libs之间的差距可能相当巨大。实际上,DL LIB的影响会淹没算法或硬件的优化,例如模型量化和基于GPU/DSP的异质计算。最后,在观察结果上,我们总结了对DL Lib生态系统中不同角色的实际意义。
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 谷歌翻译
如今,越来越多的应用程序是开发用于在分布式分区技术,即DAPP上运行。 DAPP的业务逻辑通常在通过稳定性开发的智能合同中实现,该编程语言用于在不同区间平台上编写智能合同,包括流行的以太统计。在Ethereum中,在矿工机器上运行的智能合同对应于执行费补偿这种计算资源的执行费用。但是,智能合同的部署和执行成本取决于开发人员完成的实施选择。未申请的设计选择可能导致较高的煤气消耗量比必要的消耗更高。在本文中,我们(i)确定了一套影响智能合同部署和交易成本的19个稳定性味道,(ii)通过涉及34名参与者的调查评估这种嗅觉的相关性。在这些嗅觉之上,我们提出了Gasmet,这是一套统计评估智能合同的代码质量的指标。涉及2,186个智能合同的实验表明,拟议的指标具有与部署成本的直接关联。我们套件中的指标可用于更容易地识别需要优化的源代码段。
translated by 谷歌翻译
背景:机器学习(ML)系统依靠数据来做出预测,与传统软件系统(例如数据处理管道,服务管道和模型培训)相比,该系统具有许多添加的组件。现有关于软件维护的研究研究了针对不同类型的问题(例如绩效和安全问题)的问题报告需求和解决过程。但是,ML系统具有特定的故障类别,报告ML问题需要特定于域的信息。由于ML和传统软件工程系统之间的特征不同,我们不知道报告需求在多大程度上不同,并且这些差异在多大程度上影响了问题解决过程。目的:我们的目标是调查ML和非ML问题之间分辨率时间的分布以及某些ML问题的分配时间是否存在差异。我们进一步研究了ML问题和非ML问题的修复大小。方法:我们在GitHub的最新活动应用ML项目中提取问题报告,提取请求和代码文件,并使用自动方法过滤ML和非ML问题。我们使用已知的深度学习错误分类法手动标记这些问题。我们测量了受控样本上ML和非ML问题的解决方案的分辨率时间和大小,并比较每个类别的分布。
translated by 谷歌翻译
深度神经网络(DNN)用于各种应用中。但是,与任何软件应用程序一样,基于DNN的应用程序受到错误的影响。以前的工作观察到DNN错误修复模式与传统错误修复模式不同。此外,由于具有多种选项来修复它们,因此由于具有多种选项的错误错误,那些错误模型是非微不足道的。为了支持开发人员在定位和修复错误中,我们提出DeepDiagnosis,一种定位故障的新型调试方法,报告错误症状,并提出了DNN程序的修复。在第一阶段,我们的技术监视培训模型,定期检查八种类型的错误条件。然后,在问题的情况下,它报告包含足够信息的消息来对模型执行可操作的维修。在评估中,我们通过GitHub和Stack Overflow彻底检查444型号-53现实世界,并由Autotrainer策划391。与UMLUAT和Deeplocalize相比,DeepDiagnosis提供卓越的准确性。我们的技术比Autotrainer更快,用于故障定位。结果表明,我们的方法可以支持其他类型的模型,而最先进的人才能够处理分类。我们的技术能够在培训期间报告在训练期间不明显作为数值错误的错误。此外,它可以提供用于修复的可操作的见解,而Deeplocalize只能在训练期间报告导致数值误差的故障。与其他方法相比,DeepDiagnosis表现出故障检测,错误本地化和症状的最佳能力。
translated by 谷歌翻译
在过去几年中,自动化机器学习(AUTOML)工具的普及有所增加。机器学习(ML)从业人员使用自动工具来自动化和优化功能工程,模型培训和超参数优化的过程。最近的工作对从业人员使用汽车工具的经验进行了定性研究,并根据其性能和提供的功能比较了不同的汽车工具,但是现有的工作都没有研究在大规模实际项目中使用Automl工具的实践。因此,我们进行了一项实证研究,以了解ML从业者如何在其项目中使用汽车工具。为此,我们在GitHub上托管的大量开源项目存储库中研究了最常用的十大汽车工具及其各自的用法。我们研究的结果表明1)ML从业人员主要使用哪种汽车工具,以及2)使用这些汽车工具的存储库的特征。此外,我们确定了使用Automl工具的目的(例如,模型参数采样,搜索空间管理,模型评估/错误分析,数据/功能转换和数据标记)以及ML管道的阶段(例如功能工程)使用工具。最后,我们报告在同一源代码文件中使用Automl工具的频率。我们希望我们的结果可以帮助ML从业人员了解不同的汽车工具及其使用情况,以便他们可以为其目的选择正确的工具。此外,Automl工具开发人员可以从我们的发现中受益,以深入了解其工具的用法并改善其工具以更好地适合用户的用法和需求。
translated by 谷歌翻译
Video, as a key driver in the global explosion of digital information, can create tremendous benefits for human society. Governments and enterprises are deploying innumerable cameras for a variety of applications, e.g., law enforcement, emergency management, traffic control, and security surveillance, all facilitated by video analytics (VA). This trend is spurred by the rapid advancement of deep learning (DL), which enables more precise models for object classification, detection, and tracking. Meanwhile, with the proliferation of Internet-connected devices, massive amounts of data are generated daily, overwhelming the cloud. Edge computing, an emerging paradigm that moves workloads and services from the network core to the network edge, has been widely recognized as a promising solution. The resulting new intersection, edge video analytics (EVA), begins to attract widespread attention. Nevertheless, only a few loosely-related surveys exist on this topic. A dedicated venue for collecting and summarizing the latest advances of EVA is highly desired by the community. Besides, the basic concepts of EVA (e.g., definition, architectures, etc.) are ambiguous and neglected by these surveys due to the rapid development of this domain. A thorough clarification is needed to facilitate a consensus on these concepts. To fill in these gaps, we conduct a comprehensive survey of the recent efforts on EVA. In this paper, we first review the fundamentals of edge computing, followed by an overview of VA. The EVA system and its enabling techniques are discussed next. In addition, we introduce prevalent frameworks and datasets to aid future researchers in the development of EVA systems. Finally, we discuss existing challenges and foresee future research directions. We believe this survey will help readers comprehend the relationship between VA and edge computing, and spark new ideas on EVA.
translated by 谷歌翻译
大型语言模型,例如OpenAI的法典和DeepMind的字母,可以生成代码来解决以自然语言表达的各种问题。这项技术已经在至少一项广泛使用的编程编辑器扩展程序中进行了商业化:Github Copilot。在本文中,我们探讨了具有大型语言模型(LLM辅助编程)的编程与程序员协助的先前概念化相似,并且与众不同。我们借鉴了公开可用的经验报告,有关LLM辅助编程以及先前的可用性和设计研究。我们发现,尽管LLM辅助编程通过搜索和重用分享了一些编译,配对编程和编程的属性,但技术可能性和实践经验都存在根本差异。因此,应该将LLM辅助编程视为具有自己独特的属性和挑战的新方法。最后,我们借鉴了用户研究的观察结果,在该观察中,非专家最终用户程序员使用LLM辅助工具来求解电子表格中的数据任务。我们讨论可能出现的问题,并在将大型语言模型应用于最终用户编程时,尤其是对于几乎没有编程专业知识的用户。
translated by 谷歌翻译
背景:机器学习(ML)可以实现有效的自动测试生成。目的:我们表征了新兴研究,检查测试实践,研究人员目标,应用的ML技术,评估和挑战。方法:我们对97个出版物的样本进行系统文献综述。结果:ML生成系统,GUI,单位,性能和组合测试的输入或改善现有生成方法的性能。 ML还用于生成测试判决,基于属性的和预期的输出序列。经常基于神经网络和强化学习的监督学习通常是基于Q学习的 - 很普遍,并且某些出版物还采用了无监督或半监督的学习。使用传统的测试指标和与ML相关的指标(例如准确性)评估(半/非 - )监督方法,而经常使用与奖励功能相关的测试指标来评估强化学习。结论:工作到尽头表现出巨大的希望,但是在培训数据,再探术,可伸缩性,评估复杂性,所采用的ML算法以及如何应用 - 基准和可复制性方面存在公开挑战。我们的发现可以作为该领域研究人员的路线图和灵感。
translated by 谷歌翻译
使用计算笔记本(例如,Jupyter Notebook),数据科学家根据他们的先前经验和外部知识(如在线示例)合理化他们的探索性数据分析(EDA)。对于缺乏关于数据集或问题的具体了解的新手或数据科学家,有效地获得和理解外部信息对于执行EDA至关重要。本文介绍了eDassistant,一个jupyterlab扩展,支持EDA的原位搜索示例笔记本电脑和有用的API的推荐,由搜索结果的新颖交互式可视化供电。代码搜索和推荐是由最先进的机器学习模型启用的,培训在线收集的EDA笔记本电脑的大型语料库。进行用户学习,以调查埃迪卡斯特和数据科学家的当前实践(即,使用外部搜索引擎)。结果证明了埃迪斯坦特的有效性和有用性,与会者赞赏其对EDA的顺利和环境支持。我们还报告了有关代码推荐工具的几种设计意义。
translated by 谷歌翻译
最近的深度学习(DL)应用主要建立在DL库的顶部。这些库的质量保证对于可靠的DL应用程序的可靠部署至关重要。因此,提出了一些技术来通过生成DL模型作为测试输入来测试DL库。然后,这些技术将这些DL模型馈送到DL库进行推断,以便行使与DL模型执行相关的DL库模块。但是,这些技术的测试有效性受生成的DL模型的多样性的限制。我们的研究发现,这些技术最多可以覆盖层对的11.7%(即,在两个层API之间调用序列)和层参数的55.8%(例如,在Conv2d中的“ Padding”)。结果,我们发现现有技术可能会错过特定层对和参数引起的许多错误。鉴于现有DL库测试技术的局限性,我们建议备忘录通过探索层类型,层对和层参数来有效地生成不同的DL模型。备忘录:(1)设计一种初始模型还原技术,以提高测试效率而不损害模型多样性; (2)为定制的Markov链蒙特卡洛(MCMC)算法设计一组突变操作员,以探索新的层类型,层对和层参数。我们在七个流行的DL库上评估了备忘录,其中包括四个用于模型执行(Tensorflow,Pytorch和MXNET和ONNX)和三个用于模型转换的备忘录(KERAS-MXNET,TF2ONNX,ONNX2PYTORCH)。评估结果表明,备忘录的表现优于最近的作品,覆盖了10.3%的层对,多15.3%的层参数和2.3%的库分支。此外,备忘录在最新版本的DL库中检测到29个新错误,其中17个由DL库开发人员确认,其中5个已确认的错误已修复。
translated by 谷歌翻译
恶意应用程序(尤其是针对Android平台的应用程序)对开发人员和最终用户构成了严重威胁。许多研究工作都致力于开发有效的方法来防御Android恶意软件。但是,鉴于Android恶意软件的爆炸性增长以及恶意逃避技术(如混淆和反思)的持续发展,基于手动规则或传统机器学习的Android恶意软件防御方法可能无效。近年来,具有强大功能抽象能力的主要研究领域称为“深度学习”(DL),在各个领域表现出了令人信服和有希望的表现,例如自然语言处理和计算机视觉。为此,采用深度学习技术来阻止Android恶意软件攻击,最近引起了广泛的研究关注。然而,没有系统的文献综述着重于针对Android恶意软件防御的深度学习方法。在本文中,我们进行了系统的文献综述,以搜索和分析在Android环境中恶意软件防御的背景下采用了如何应用的。结果,确定了涵盖2014 - 2021年期间的132项研究。我们的调查表明,尽管大多数这些来源主要考虑基于Android恶意软件检测的基于DL,但基于其他方案的53项主要研究(40.1%)设计防御方法。这篇综述还讨论了基于DL的Android恶意软件防御措施中的研究趋势,研究重点,挑战和未来的研究方向。
translated by 谷歌翻译
机器学习传感器代表了嵌入式机器学习应用程序未来的范式转移。当前的嵌入式机器学习(ML)实例化遭受了复杂的整合,缺乏模块化以及数据流动的隐私和安全问题。本文提出了一个以数据为中心的范式,用于将传感器智能嵌入边缘设备上,以应对这些挑战。我们对“传感器2.0”的愿景需要将传感器输入数据和ML处理从硬件级别隔离到更广泛的系统,并提供一个薄的界面,以模拟传统传感器的功能。这种分离导致模块化且易于使用的ML传感器设备。我们讨论了将ML处理构建到嵌入式系统上控制微处理器的软件堆栈中的标准方法所带来的挑战,以及ML传感器的模块化如何减轻这些问题。 ML传感器提高了隐私和准确性,同时使系统构建者更容易将ML集成到其产品中,以简单的组件。我们提供了预期的ML传感器和说明性数据表的例子,以表现出来,并希望这将建立对话使我们朝着传感器2.0迈进。
translated by 谷歌翻译