在本文中,我们提出了一个Shell语言预处理(SLP)库,该库实现了针对解析UNIX和Linux Shell命令的令牌化和编码。我们描述了需要采用新方法的基本原理,并以常规自然语言处理(NLP)管道失败的特定示例。此外,我们评估了针对广泛接受的信息和通信技术(ICT)令牌化技术的安全分类任务的方法,并将F1分数从0.392提高到0.874。
translated by 谷歌翻译
随着研究人员和从业人员将机器学习应用于越来越多的软件工程问题,他们使用的方法变得更加复杂。许多现代方法都以抽象语法树(AST)或其扩展形式使用内部代码结构:基于路径的表示,复杂的图将AST与其他边缘结合在一起。即使可以使用不同的解析器来从代码中提取AST的过程,但选择解析器对最终模型质量的影响仍然没有研究。此外,研究人员经常省略提取特定代码表示的确切细节。在这项工作中,我们在方法名称预测任务中评估了两个模型,即Code2Seq和Treelstm,由八个不同的解析器用于Java语言。为了将数据制备的过程与不同的解析器统一,我们开发了SuperParser,这是基于Pathminer的多语言解析器 - 不合Snostic库。 SuperParser促进了适用于培训和评估ML模型的数据集的端到端创建,这些模型与源代码中的结构信息合作。我们的结果表明,不同解析器建造的树木的结构和内容各不相同。然后,我们分析这种多样性如何影响模型的质量,并表明两种模型最不合适的解析器之间的质量差距非常重要。最后,我们讨论了解析器的其他功能,研究人员和从业人员在选择解析器时应考虑这些特征,以及对模型质量的影响。 SuperParser代码可在https://doi.org/10.5281/zenodo.6366591上公开获得。我们还发布了Java-Norm,即我们用于评估模型的数据集:https://doi.org/10.5281/zenodo.6366599。
translated by 谷歌翻译
我们提出了一个混合机器学习体系结构,该体系结构同时采用多个深度学习模型,分析Windows便携式可执行文件的上下文和行为特征,从而根据Meta模型的决定产生最终预测。当代机器学习Windows恶意软件分类器中的检测启发式启发式基于样本的静态属性,因为通过虚拟化动态分析对于大量样本而言是挑战性的。为了超越这一限制,我们采用了Windows内核仿真,该仿真允许以最低的时间和计算成本获得大型语料库中的行为模式。我们与安全供应商合作,收集了超过100k的INT样品,这些样本类似于当代威胁景观,在执行时包含原始的PE文件和应用程序的档案。获得的数据集至少比行为恶意软件分析的相关工作中报告的十倍大。培训数据集中的文件由专业威胁情报团队标记,使用手动和自动化的反向工程工具。我们通过收集培训集的收购来估算混合分类器的运营实用程序。我们报告了提高的检测率,高于当前最新模型的功能,尤其是在低阳性要求下。此外,即使没有任何单个模型表达足够的信心来将样本标记为恶意,我们也发现了元模型在验证和测试集中识别恶意活动的能力。我们得出的结论是,元模型可以从不同分析技术产生的表示组合中学习典型的恶意样本模式。我们公开发布了预培训的模型和仿真报告的匿名数据集。
translated by 谷歌翻译
错误报告是软件开发中的常见文物。它们作为用户与开发人员通信有关使用发布版本的软件程序时遇到的问题的主频道。然而,在对问题的描述中,用户可以故意或不揭示漏洞。在典型的维护方案中,在准备纠正补丁时,开发团队优先考虑此类安全相关错误报告。然而,当安全相关性没有立即表达(例如,通过标签)或通过TRIAJIG团队迅速识别时,开放的安全相关错误报告可能成为攻击者可以利用以执行零日攻击的敏感信息的关键泄漏。为了支持Trizing Bug报告中的从业者,研究社区提出了检测安全相关错误报告的许多方法。近年来,报告了基于机器学习的这方面的方法,具有很有希望的表现。我们的工作侧重于这些方法,并重新审视其积木,为目前的成就提供全面的观点。为此,我们建立了一个大型实验数据集,并在特征集和学习算法中进行了广泛的实验。最终,我们的研究突出了不同的方法配置,从而产生最好的执行分类器。
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 谷歌翻译
越来越复杂的威胁参与者以及网络攻击不断发展的巨大速度,及时确定对组织的安全必须识别攻击。因此,负责安全的人采用了有关新兴攻击,攻击者的行动或妥协指标的各种信息来源。但是,大量所需的安全信息以非结构化的文本形式获得,这使攻击者策略,技术和程序(TTPS)的自动化和及时提取变得复杂。为了解决这个问题,我们系统地评估和比较了用于安全信息提取的不同自然语言处理(NLP)和机器学习技术。根据我们的调查,我们提出了一条数据处理管道,该管道会根据攻击者的策略和技术自动对非结构化文本进行分类,这些策略和技术从对手策略,技术和程序的知识库中得出。
translated by 谷歌翻译
标准化的数据集和基准刺激了计算机视觉,自然语言处理,多模式和表格设置的创新。我们注意到,与其他经过良好研究的领域相比,欺诈检测有许多差异。差异包括高级失衡,多样化的特征类型,经常改变的欺诈模式以及问题的对抗性。由于这些差异,用于其他分类任务的建模方法可能对欺诈检测效果不佳。我们介绍了欺诈数据集基准(FDB),该基准是针对欺诈检测的公开可用数据集的汇编。 FDB包括各种与欺诈相关的任务,从识别欺诈性卡片 - 不出现交易,检测机器人攻击,对恶意URL进行分类,预测贷款的风险降至内容适度。来自FDB的基于Python的库为数据加载提供了一致的API,并具有标准化的训练和测试拆分。作为参考,我们还提供了FDB上不同建模方法的基线评估。考虑到各种研究和业务问题的自动化机器学习(AUTOML)的日益普及,我们使用了Automl框架进行基线评估。为了预防欺诈,拥有有限资源和缺乏ML专业知识的组织通常会聘请一个调查人员,使用区块列表和手动规则,所有这些规则效率低下且规模不佳。这些组织可以从易于在生产中部署并通过欺诈预防要求的汽车解决方案受益。我们希望FDB有助于开发适合不同欺诈模式操作数(MOS)的定制欺诈检测技术,以及改善汽车系统,这些系统可以很好地适用于基准中的所有数据集。
translated by 谷歌翻译
积极的安全方法,例如对手仿真,利用有关威胁行为者及其技术的信息(网络威胁智能,CTI)。但是,大多数CTI仍然以非结构化的形式(即自然语言),例如事件报告和泄漏的文件。为了支持主动的安全工作,我们介绍了一项有关使用机器学习(ML)自动将非结构化CTI自动分类为攻击技术的实验研究。我们为CTI分析的两个新数据集做出了贡献,并评估了几种ML模型,包括传统和深度学习模型。我们介绍了几个课程,了解了ML在此任务中的执行方式,哪些分类器在哪些条件下(这是分类错误的主要原因)以及CTI分析的未来挑战。
translated by 谷歌翻译
评论是源代码的重要组成部分,是文档的主要来源。这引起了人们对使用大量注释的兴趣训练或评估消耗或生产它们的工具,例如生成甲骨文,甚至是从注释中生成代码,或自动生成代码摘要。这项工作大部分对评论的结构和质量做出了强烈的假设,例如假设它们主要由适当的英语句子组成。但是,我们对这些用例的现有评论的实际质量知之甚少。评论通常包含在其他类型的文本中看不到的独特结构和元素,并且从中过滤或提取信息需要额外的谨慎。本文探讨了来自GitHub的840个最受欢迎的开源项目和Srilab数据集的8422个项目的Python评论的内容和质量,并且Na \“ Ive vs.深入过滤的影响都可以使用现有注释来用于使用现有注释。培训和评估产生评论的系统。
translated by 谷歌翻译
机器学习传感器代表了嵌入式机器学习应用程序未来的范式转移。当前的嵌入式机器学习(ML)实例化遭受了复杂的整合,缺乏模块化以及数据流动的隐私和安全问题。本文提出了一个以数据为中心的范式,用于将传感器智能嵌入边缘设备上,以应对这些挑战。我们对“传感器2.0”的愿景需要将传感器输入数据和ML处理从硬件级别隔离到更广泛的系统,并提供一个薄的界面,以模拟传统传感器的功能。这种分离导致模块化且易于使用的ML传感器设备。我们讨论了将ML处理构建到嵌入式系统上控制微处理器的软件堆栈中的标准方法所带来的挑战,以及ML传感器的模块化如何减轻这些问题。 ML传感器提高了隐私和准确性,同时使系统构建者更容易将ML集成到其产品中,以简单的组件。我们提供了预期的ML传感器和说明性数据表的例子,以表现出来,并希望这将建立对话使我们朝着传感器2.0迈进。
translated by 谷歌翻译
虽然有几种可用于匈牙利语的源语言处理管道,但它们都不满足当今NLP应用程序的要求。语言处理管道应由接近最先进的lemmatization,形态学分析,实体识别和单词嵌入。工业文本处理应用程序必须满足非功能性的软件质量要求,更重要的是,支持多种语言的框架越来越受青睐。本文介绍了哈普西,匈牙利匈牙利语言处理管道。呈现的工具为最重要的基本语言分析任务提供组件。它是开源,可在许可证下提供。我们的系统建立在Spacy的NLP组件之上,这意味着它快速,具有丰富的NLP应用程序和扩展生态系统,具有广泛的文档和众所周知的API。除了底层模型的概述外,我们还对共同的基准数据集呈现严格的评估。我们的实验证实,母鹿在所有子组织中具有高精度,同时保持资源有效的预测能力。
translated by 谷歌翻译
scikit-learn is an increasingly popular machine learning library. Written in Python, it is designed to be simple and efficient, accessible to non-experts, and reusable in various contexts. In this paper, we present and discuss our design choices for the application programming interface (API) of the project. In particular, we describe the simple and elegant interface shared by all learning and processing units in the library and then discuss its advantages in terms of composition and reusability. The paper also comments on implementation details specific to the Python ecosystem and analyzes obstacles faced by users and developers of the library.
translated by 谷歌翻译
在过去的几年中,世界已转向多核和多核共享内存体系结构。结果,通过将共享内存并行化方案引入软件应用程序,越来越需要利用这些体系结构。 OpenMP是实现此类方案的最全面的API,其特征是可读接口。然而,由于平行共享内存的管理中普遍存在的陷阱,将OpenMP引入代码很具有挑战性。为了促进此任务的性能,多年来创建了许多源代码(S2S)编译器,任务是将OpenMP指令自动插入代码。除了对输入格式的鲁棒性有限外,这些编译器仍然无法在定位可行的代码和生成适当指令时获得令人满意的覆盖范围和精确度。在这项工作中,我们建议利用ML技术的最新进展,特别是自然语言处理(NLP),以完全替换S2S编译器。我们创建一个数据库(语料库),专门用于此目标。 Open-Opm包含28,000多个代码片段,其中一半包含OpenMP指令,而另一半根本不需要并行化。我们使用语料库来培训系统来自动对需要并行化的代码段进行分类,并建议单个OpenMP条款。我们为这些任务培训了几个名为Bragformer的变压器模型,并表明它们的表现优于统计训练的基线和自动S2S并行化编译器,这既可以分类OpenMP指令的总体需求,又要介绍私人和还原条款。我们的源代码和数据库可在以下网址获得:https://github.com/scientific-computing-lab-nrcn/pragformer。
translated by 谷歌翻译
开源代码被认为是现代软件开发中的常见实践。但是,重复使用其他代码使坏演员可以访问广泛的开发商社区,因此依靠它的产品。这些攻击被归类为供应链攻击。近年来,越来越多的供应链攻击在软件开发过程中利用开源的供水,转移下载和安装程序,无论是自动或手册。多年来,已经发明了许多用于检测脆弱包装的方法。但是,在软件包中检测恶意代码并不常见。这些检测方法可以广泛地分为使用(动态)并且不使用(静态)代码执行的分析。在这里,我们使用变压器(MSDT)算法介绍了恶意源代码检测。 MSDT是一种基于深度学习方法的新型静态分析,该方法检测到现实世界中的代码注入案例到源代码软件包。在这项研究中,我们使用了具有超过600,000个不同功能的MSDT和一个数据集来嵌入各种功能,并将群集算法应用于生成的向量,从而通过检测异常值来检测恶意功能。我们通过进行广泛的实验来评估MSDT的性能,并证明我们的算法能够检测到具有precision@k值最高为0.909的恶意代码的功能。
translated by 谷歌翻译
互联网流量分类在网络可见性,服务质量(QoS),入侵检测,经验质量(QOE)和交通趋势分析中起关键作用。为了提高隐私,完整性,机密性和协议混淆,当前的流量基于加密协议,例如SSL/TLS。随着文献中机器学习(ML)和深度学习(DL)模型的使用增加,由于缺乏标准化的框架,不同模型和方法之间的比较变得繁琐且困难。在本文中,我们提出了一个名为OSF-EIMTC的开源框架,该框架可以提供学习过程的完整管道。从著名的数据集到提取新的和知名的功能,它提供了著名的ML和DL模型(来自交通分类文献)的实现以及评估。这样的框架可以促进交通分类域的研究,从而使其更可重复,可重复,更易于执行,并可以更准确地比较知名和新颖的功能和新颖的功能和模型。作为框架评估的一部分,我们演示了可以使用多个数据集,模型和功能集的各种情况。我们展示了公开可用数据集的分析,并邀请社区使用OSF-EIMTC参与我们的公开挑战。
translated by 谷歌翻译
如今,由于最近在人工智能(AI)和机器学习(ML)中的近期突破,因此,智能系统和服务越来越受欢迎。然而,机器学习不仅满足软件工程,不仅具有有希望的潜力,而且还具有一些固有的挑战。尽管最近的一些研究努力,但我们仍然没有明确了解开发基于ML的申请和当前行业实践的挑战。此外,目前尚不清楚软件工程研究人员应将其努力集中起来,以更好地支持ML应用程序开发人员。在本文中,我们报告了一个旨在了解ML应用程序开发的挑战和最佳实践的调查。我们合成从80名从业者(以不同的技能,经验和应用领域)获得的结果为17个调查结果;概述ML应用程序开发的挑战和最佳实践。参与基于ML的软件系统发展的从业者可以利用总结最佳实践来提高其系统的质量。我们希望报告的挑战将通知研究界有关需要调查的主题,以改善工程过程和基于ML的申请的质量。
translated by 谷歌翻译
Recent progress in natural language processing has been driven by advances in both model architecture and model pretraining. Transformer architectures have facilitated building higher-capacity models and pretraining has made it possible to effectively utilize this capacity for a wide variety of tasks. Transformers is an open-source library with the goal of opening up these advances to the wider machine learning community. The library consists of carefully engineered stateof-the art Transformer architectures under a unified API. Backing this library is a curated collection of pretrained models made by and available for the community. Transformers is designed to be extensible by researchers, simple for practitioners, and fast and robust in industrial deployments. The library is available at https://github.com/ huggingface/transformers.
translated by 谷歌翻译
安全字段中的数据标签通常是嘈杂,有限或偏向于人口子集的。结果,诸如准确性,精度和召回指标之类的普遍评估方法,或从标记数据集中计算的性能曲线的分析对机器学习(ML)模型的现实性能没有足够的信心。这减慢了该领域的机器学习的采用。在当今的行业中,我们依靠域专业知识和冗长的手动评估来建立此信心,然后再运送新的安全应用程序模型。在本文中,我们介绍了Firenze,这是一种使用域专业知识对ML模型的性能进行比较评估的新型框架,并编码为称为标记的可扩展功能。我们表明,在称为感兴趣的区域的样本中计算和组合的标记可以提供对其现实世界表演的强大估计。至关重要的是,我们使用统计假设检验来确保观察到的差异,因此从我们的框架中得出的结论 - 比仅噪声可观察到的更为突出。使用模拟和两个现实世界数据集用于恶意软件和域名声誉检测,我们说明了方法的有效性,局限性和见解。综上所述,我们建议Firenze作为研究人员,领域专家和企业主混合团队的快速,可解释和协作模型开发和评估的资源。
translated by 谷歌翻译
Recent progress in natural language processing has been driven by advances in both model architecture and model pretraining. Transformer architectures have facilitated building higher-capacity models and pretraining has made it possible to effectively utilize this capacity for a wide variety of tasks. Transformers is an open-source library with the goal of opening up these advances to the wider machine learning community. The library consists of carefully engineered stateof-the art Transformer architectures under a unified API. Backing this library is a curated collection of pretrained models made by and available for the community. Transformers is designed to be extensible by researchers, simple for practitioners, and fast and robust in industrial deployments. The library is available at https://github.com/ huggingface/transformers.
translated by 谷歌翻译
软件工程(ML4SE)的机器学习是一个积极发展的研究领域,专注于帮助程序员工作的方法。为了在实践中应用开发的方法,他们需要实现合理的质量,以帮助而不是分散开发人员的注意力。尽管开发新方法来代码表示和数据收集可以提高模型的整体质量,但它没有考虑到我们可以从手头项目中获得的信息。在这项工作中,我们研究了如果我们针对特定项目,则如何提高模型的质量。我们开发一个框架来评估质量改进,模型可以在特定项目上的方法名称预测任务进行微调后获得。我们评估了三种不同复杂性的模型,并在三个设置中进行了比较它们的质量:在大型Java项目的大型数据集上进行培训,进一步对特定项目的数据进行了微调,并从头开始训练了此数据。我们表明,每项项目的微调可以极大地提高模型的质量,因为它们捕获了项目的领域和命名约定。我们开放用于数据收集的工具以及运行实验的代码:https://zenodo.org/record/6040745。
translated by 谷歌翻译