如今,我们生活在一个极端的异质性时代。尽管传统的CPU架构种类繁多,但GPU和FPGA等加速器设备也出现在前景中,爆炸了可用解决方案池以执行应用程序。但是,由于硬件和软件之间的抽象关系,每个应用程序需求选择适当的设备是一项极具挑战性的任务。需要准确的自动优化算法才能应对当前硬件和软件的复杂性和多样性。最佳执行始终依赖于耗时的试验和错误方法。在过去的十年中,机器学习(ML)和自然语言处理(NLP)蓬勃发展,研究重点是深度建筑。在这种情况下,使用自然语言处理技术来源代码以进行自动调整任务是一个新兴的研究领域。在本文中,我们扩展了Cummins等人的工作,即DeepTune,该工作解决了加速OpenCL内核的最佳设备选择(CPU或GPU)的问题。我们确定了DeepTune的三个主要局限性,并基于这些局限性,我们提出了四个不同的DNN模型,可提供增强的源代码上下文信息。实验结果表明,我们提出的方法超过了康明斯等人的方法。工作,预测准确性最多可提高4%。
translated by 谷歌翻译
由于在线学习和评估平台(例如Coursera,Udemy,Khan Academy等)的兴起,对论文(AES)和自动论文评分的自动评估(AES)已成为一个严重的问题。研究人员最近提出了许多用于自动评估的技术。但是,其中许多技术都使用手工制作的功能,因此从特征表示的角度受到限制。深度学习已成为机器学习中的新范式,可以利用大量数据并确定对论文评估有用的功能。为此,我们提出了一种基于复发网络(RNN)和卷积神经网络(CNN)的新型体系结构。在拟议的体系结构中,多通道卷积层从嵌入矢量和基本语义概念中学习并捕获单词n-gram的上下文特征,并使用max-pooling操作在论文级别形成特征向量。 RNN的变体称为双门复发单元(BGRU),用于访问以前和后续的上下文表示。该实验是对Kaggle上的八个数据集进行的,以实现AES的任务。实验结果表明,我们提出的系统比其他基于深度学习的AES系统以及其他最新AES系统的评分精度明显更高。
translated by 谷歌翻译
尽管不断努力提高代码搜索的有效性和效率,但仍未解决两个问题。首先,编程语言具有固有的牢固结构链接,并且代码的特征是文本表单将省略其中包含的结构信息。其次,代码和查询之间存在潜在的语义关系,跨序列对齐代码和文本是具有挑战性的,因此在相似性匹配期间,向量在空间上保持一致。为了解决这两个问题,在本文中,提出了一个名为CSSAM的代码搜索模型(代码语义和结构注意匹配)。通过引入语义和结构匹配机制,CSSAM有效提取并融合了多维代码功能。具体而言,开发了交叉和残留层,以促进代码和查询的高纬度空间比对。通过利用残差交互,匹配模块旨在保留更多的代码语义和描述性功能,从而增强了代码及其相应查询文本之间的附着力。此外,为了提高模型对代码固有结构的理解,提出了一个名为CSRG的代码表示结构(代码语义表示图),用于共同表示抽象语法树节点和代码的数据流。根据两个包含540K和330K代码段的公开可用数据集的实验结果,CSSAM在两个数据集中分别在获得最高的SR@1/5/10,MRR和NDCG@50方面大大优于基本线。此外,进行消融研究是为了定量衡量CSSAM每个关键组成部分对代码搜索效率和有效性的影响,这为改进高级代码搜索解决方案提供了见解。
translated by 谷歌翻译
The problem of reversing the compilation process, decompilation, is an important tool in reverse engineering of computer software. Recently, researchers have proposed using techniques from neural machine translation to automate the process in decompilation. Although such techniques hold the promise of targeting a wider range of source and assembly languages, to date they have primarily targeted C code. In this paper we argue that existing neural decompilers have achieved higher accuracy at the cost of requiring language-specific domain knowledge such as tokenizers and parsers to build an abstract syntax tree (AST) for the source language, which increases the overhead of supporting new languages. We explore a different tradeoff that, to the extent possible, treats the assembly and source languages as plain text, and show that this allows us to build a decompiler that is easily retargetable to new languages. We evaluate our prototype decompiler, Beyond The C (BTC), on Go, Fortran, OCaml, and C, and examine the impact of parameters such as tokenization and training data selection on the quality of decompilation, finding that it achieves comparable decompilation results to prior work in neural decompilation with significantly less domain knowledge. We will release our training data, trained decompilation models, and code to help encourage future research into language-agnostic decompilation.
translated by 谷歌翻译
The International Workshop on Reading Music Systems (WoRMS) is a workshop that tries to connect researchers who develop systems for reading music, such as in the field of Optical Music Recognition, with other researchers and practitioners that could benefit from such systems, like librarians or musicologists. The relevant topics of interest for the workshop include, but are not limited to: Music reading systems; Optical music recognition; Datasets and performance evaluation; Image processing on music scores; Writer identification; Authoring, editing, storing and presentation systems for music scores; Multi-modal systems; Novel input-methods for music to produce written music; Web-based Music Information Retrieval services; Applications and projects; Use-cases related to written music. These are the proceedings of the 3rd International Workshop on Reading Music Systems, held in Alicante on the 23rd of July 2021.
translated by 谷歌翻译
Tensor program tuning is a non-convex objective optimization problem, to which search-based approaches have proven to be effective. At the core of the search-based approaches lies the design of the cost model. Though deep learning-based cost models perform significantly better than other methods, they still fall short and suffer from the following problems. First, their feature extraction heavily relies on expert-level domain knowledge in hardware architectures. Even so, the extracted features are often unsatisfactory and require separate considerations for CPUs and GPUs. Second, a cost model trained on one hardware platform usually performs poorly on another, a problem we call cross-hardware unavailability. In order to address these problems, we propose TLP and MTLTLP. TLP is a deep learning-based cost model that facilitates tensor program tuning. Instead of extracting features from the tensor program itself, TLP extracts features from the schedule primitives. We treat schedule primitives as tensor languages. TLP is thus a Tensor Language Processing task. In this way, the task of predicting the tensor program latency through the cost model is transformed into a natural language processing (NLP) regression task. MTL-TLP combines Multi-Task Learning and TLP to cope with the cross-hardware unavailability problem. We incorporate these techniques into the Ansor framework and conduct detailed experiments. Results show that TLP can speed up the average search time by 9.1X and 3.0X on CPU and GPU workloads, respectively, compared to the state-of-the-art implementation. MTL-TLP can achieve a speed-up of 4.7X and 2.9X on CPU and GPU workloads, respectively, using only 7% of the target hardware data.
translated by 谷歌翻译
仇恨言论是一种在线骚扰的形式,涉及使用滥用语言,并且在社交媒体帖子中通常可以看到。这种骚扰主要集中在诸如宗教,性别,种族等的特定群体特征上,如今它既有社会和经济后果。文本文章中对滥用语言的自动检测一直是一项艰巨的任务,但最近它从科学界获得了很多兴趣。本文解决了在社交媒体中辨别仇恨内容的重要问题。我们在这项工作中提出的模型是基于LSTM神经网络体系结构的现有方法的扩展,我们在短文中适当地增强和微调以检测某些形式的仇恨语言,例如种族主义或性别歧视。最重要的增强是转换为由复发性神经网络(RNN)分类器组成的两阶段方案。将第一阶段的所有一Vs式分类器(OVR)分类器的输出组合在一起,并用于训练第二阶段分类器,最终决定了骚扰的类型。我们的研究包括对在16K推文的公共语料库中评估的第二阶段提出的几种替代方法的性能比较,然后对另一个数据集进行了概括研究。报道的结果表明,与当前的最新技术相比,在仇恨言论检测任务中,所提出的方案的分类质量出色。
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 谷歌翻译
深神经网络(DNNS)在各种机器学习(ML)应用程序中取得了巨大成功,在计算机视觉,自然语言处理和虚拟现实等中提供了高质量的推理解决方案。但是,基于DNN的ML应用程序也带来计算和存储要求的增加了很多,对于具有有限的计算/存储资源,紧张的功率预算和较小形式的嵌入式系统而言,这尤其具有挑战性。挑战还来自各种特定应用的要求,包括实时响应,高通量性能和可靠的推理准确性。为了应对这些挑战,我们介绍了一系列有效的设计方法,包括有效的ML模型设计,定制的硬件加速器设计以及硬件/软件共同设计策略,以启用嵌入式系统上有效的ML应用程序。
translated by 谷歌翻译
计算机架构和系统已优化了很长时间,以便高效执行机器学习(ML)模型。现在,是时候重新考虑ML和系统之间的关系,并让ML转换计算机架构和系统的设计方式。这有一个双重含义:改善设计师的生产力,以及完成良性周期。在这篇论文中,我们对应用ML进行计算机架构和系统设计的工作进行了全面的审查。首先,我们考虑ML技术在架构/系统设计中的典型作用,即快速预测建模或设计方法,我们执行高级分类学。然后,我们总结了通过ML技术解决的计算机架构/系统设计中的常见问题,并且所用典型的ML技术来解决它们中的每一个。除了在狭义中强调计算机架构外,我们采用数据中心可被认为是仓库规模计算机的概念;粗略的计算机系统中提供粗略讨论,例如代码生成和编译器;我们还注意ML技术如何帮助和改造设计自动化。我们进一步提供了对机会和潜在方向的未来愿景,并设想应用ML的计算机架构和系统将在社区中蓬勃发展。
translated by 谷歌翻译
基于变压器的大型语言模型在自然语言处理中表现出色。通过考虑这些模型在一个领域中获得的知识的可传递性,以及自然语言与高级编程语言(例如C/C ++)的亲密关系,这项工作研究了如何利用(大)基于变压器语言模型检测软件漏洞以及这些模型在漏洞检测任务方面的良好程度。在这方面,首先提出了一个系统的(凝聚)框架,详细介绍了源代码翻译,模型准备和推理。然后,使用具有多个漏洞的C/C ++源代码的软件漏洞数据集进行经验分析,该数据集对应于库功能调用,指针使用,数组使用情况和算术表达式。我们的经验结果证明了语言模型在脆弱性检测中的良好性能。此外,这些语言模型具有比当代模型更好的性能指标,例如F1得分,即双向长期记忆和双向封闭式复发单元。由于计算资源,平台,库和依赖项的要求,对语言模型进行实验始终是具有挑战性的。因此,本文还分析了流行的平台,以有效地微调这些模型并在选择平台时提出建议。
translated by 谷歌翻译
软件开发人员将源代码内的日志记录嵌入为现代软件开发中的命令占空税,因为日志文件是跟踪运行时系统问题和故障排除系统管理任务所必需的。但是,当前的日志记录过程主要是手动,因此,日志语句的适当放置和内容仍然是挑战。为了克服这些挑战,旨在自动化日志放置并预测其内容的方法,即“来到哪里以及登录的地方”,具有很高的兴趣。因此,我们专注于通过利用源代码克隆和自然语言处理(NLP)来预测日志语句的位置(即,其中)和描述(即,什么),因为这些方法为日志预测提供了额外的上下文和优点。具体而言,我们指导我们的研究三项研究问题(RQS):( RQ1)如何利用代码片段,即代码克隆,用于日志语句预测如何? (RQ2)如何扩展方法以自动执行日志语句的描述? (RQ3)所提出的方法是如何有效的日志位置和描述预测?为了追求我们的RQ,我们对七个开源Java项目进行了实验研究。我们介绍了更新和改进的日志感知代码克隆检测方法,以预测日志记录语句(RQ1)的位置。然后,我们纳入自然语言处理(NLP)和深度学习方法,以自动化日志语句的描述预测(RQ2)。我们的分析表明,我们的混合NLP和Code-CC'd检测方法(NLP CC'd)优于常规克隆探测器,平均地查找日志声明位置,并在Bleu和Rouge分数上实现了40.86%的性能,以预测伐木的描述与先前研究(RQ3)相比的陈述。
translated by 谷歌翻译
我们开发了BenchPress,这是第一个用于编译器的ML基准生成器,它是在源代码的功能空间表示中可检测的。卧推通过在空序列或现有序列的任何部分中添加新代码,通过共同观察其左和右下文,从而综合编译函数,从而达到出色的汇编速率。卧推操纵基准的生成迈向了所需的目标特征,这对于最先进的合成器(或实际上人类)不可能达到。与(a)clgen-最先进的ML合成器,(b)Clsmith Fuzzer,(c)Srciror Mutator或(d)人写代码相比来自Github。 Benchpress是第一个通过主动学习搜索功能空间的生成器,以生成可以改善下游任务的基准。我们展示了Grewe's等人如何使用台式。与其他技术相比,CPU与GPU启发式模型在台式基准测试中进行训练时可以获得更高的加速。卧推是一个强大的代码生成器:其生成的样品以86%的速度编译,而Clgen的2.33%则以86%的速度编译。从一个空的固定输入开始,台式比CLGEN产生的10倍,可汇编的OpenCL基准测试,这些基准比Clgen更大,并且更具多样性。
translated by 谷歌翻译
代理,模拟程序行为的模型,形成各种开发工作流程的基础。我们研究了三种基于代理的设计模式,在大规模CPU模拟器上进行评估。通过替代汇编,程序员开发了一种模拟程序的代理,以模仿程序的行为部署到最终用户代替原始程序。代理编译加速了CPU模拟器的研究1.6美元。通过代理适应,程序员开发一个程序的代理,然后重新培训在不同的任务上代理。代理适应将模拟器的错误减少到50美元\%$。通过代理优化,程序员开发了一个程序的代理,优化代理的输入参数,然后将优化的输入参数插回原始程序。替代优化查找模拟参数,与专业集参数引起的错误相比,将模拟器的错误减少5 \%$ 5 \%。在本文中,我们将这种基于代理的设计模式的分类形式正规化。我们进一步描述了所有三种设计模式共有的编程方法。我们的工作基于与计划代理人的编程为基础的新兴工作流程。
translated by 谷歌翻译
代码克隆是实现类似功能的代码段对。克隆检测是自动源代码理解的基本分支,在重构建议,窃检测和代码摘要中具有许多应用程序。克隆检测的一个特别有趣的案例是检测语义克隆,即具有相同功能但实现方面有显着差异的代码段。检测语义克隆的一种有希望的方法是对比度学习(CL),这是一种在计算机视觉中流行的机器学习范式,但尚未用于代码处理。我们的工作旨在评估最受欢迎的CL算法以及两个任务上的三个源代码表示形式。第一个任务是代码克隆检测,我们在包含104个算法的实现的POJ-104数据集上进行了评估。第二个任务是窃检测。为了评估此任务上的模型,我们介绍了CodeTransFormator,这是用于转换源代码的工具。我们使用它来创建一个基于竞争性编程解决方案模仿窃代码的数据集。我们为这两项任务培训了九个模型,并将其与现有的六种方法进行了比较,包括传统工具和现代培训的神经模型。我们评估的结果表明,提议的模型在每个任务中都具有多样性,但是基于图的模型的性能通常高于其他模型。在CL算法中,SIMCLR和SWAV带来更好的结果,而MoCo是最强大的方法。我们的代码和训练有素的模型可在https://doi.org/10.5281/zenodo.6360627,https://doi.org/10.5281/zenodo.5596345获得。
translated by 谷歌翻译
在本文中,我们解决了深入学习的软件漏洞自动修复问题。数据驱动漏洞修复的主要问题是已知确认漏洞的少数现有数据集仅由几千例组成。然而,培训深度学习模型通常需要数十万例的例子。在这项工作中,我们利用了错误修复任务和漏洞修复任务的直觉相关,并且可以传输来自错误修复的知识可以传输到修复漏洞。在机器学习界中,这种技术称为转移学习。在本文中,我们提出了一种修复名为Vreepair的安全漏洞的方法,该方法是基于转移学习。 vreepair首先在大型错误修复语料库上培训,然后在漏洞修复数据集上调整,这是一个较小的数量级。在我们的实验中,我们表明,仅在错误修复语料库上培训的模型可能已经修复了一些漏洞。然后,我们证明转移学习改善了修复易受攻击的C功能的能力。我们还表明,转移学习模型比具有去噪任务训练的模型更好,并在漏洞固定任务上进行微调。总而言之,本文表明,与在小型数据集上的学习相比,转移学习适用于修复C中的安全漏洞。
translated by 谷歌翻译
The rapid advancement of AI technology has made text generation tools like GPT-3 and ChatGPT increasingly accessible, scalable, and effective. This can pose serious threat to the credibility of various forms of media if these technologies are used for plagiarism, including scientific literature and news sources. Despite the development of automated methods for paraphrase identification, detecting this type of plagiarism remains a challenge due to the disparate nature of the datasets on which these methods are trained. In this study, we review traditional and current approaches to paraphrase identification and propose a refined typology of paraphrases. We also investigate how this typology is represented in popular datasets and how under-representation of certain types of paraphrases impacts detection capabilities. Finally, we outline new directions for future research and datasets in the pursuit of more effective paraphrase detection using AI.
translated by 谷歌翻译
Decompilation aims to transform a low-level program language (LPL) (eg., binary file) into its functionally-equivalent high-level program language (HPL) (e.g., C/C++). It is a core technology in software security, especially in vulnerability discovery and malware analysis. In recent years, with the successful application of neural machine translation (NMT) models in natural language processing (NLP), researchers have tried to build neural decompilers by borrowing the idea of NMT. They formulate the decompilation process as a translation problem between LPL and HPL, aiming to reduce the human cost required to develop decompilation tools and improve their generalizability. However, state-of-the-art learning-based decompilers do not cope well with compiler-optimized binaries. Since real-world binaries are mostly compiler-optimized, decompilers that do not consider optimized binaries have limited practical significance. In this paper, we propose a novel learning-based approach named NeurDP, that targets compiler-optimized binaries. NeurDP uses a graph neural network (GNN) model to convert LPL to an intermediate representation (IR), which bridges the gap between source code and optimized binary. We also design an Optimized Translation Unit (OTU) to split functions into smaller code fragments for better translation performance. Evaluation results on datasets containing various types of statements show that NeurDP can decompile optimized binaries with 45.21% higher accuracy than state-of-the-art neural decompilation frameworks.
translated by 谷歌翻译
软件开发互动期间的有毒对话可能会对免费开源软件(FOSS)开发项目产生严重影响。例如,有毒对话的受害者可能会害怕表达自己,因此会丧失自己的动力,并最终可能离开该项目。自动过滤有毒的对话可能有助于福斯社区保持其成员之间的健康互动。但是,现成的毒性探测器在软件工程(SE)数据集上的表现较差,例如从代码审查评论中策划的一个。为了遇到这一挑战,我们提出了毒性,这是一种基于学习的基于学习的毒性识别工具,用于代码审查互动。有毒物质包括选择一种监督学习算法之一,选择文本矢量化技术,八个预处理步骤以及一个大规模标记的数据集,其中包括19,571个代码评论评论。在这八个预处理步骤中,有两个是特定于SE域。通过对预处理步骤和矢量化技术的各种组合的模型进行严格的评估,我们已经确定了数据集的最佳组合,可提高95.8%的精度和88.9%的F1得分。毒性明显优于我们数据集中的现有毒性探测器。我们已发布了数据集,预处理的模型,评估结果和源代码,网址为:https://github.com/wsu-seal/toxicr
translated by 谷歌翻译
深度学习属于人工智能领域,机器执行通常需要某种人类智能的任务。类似于大脑的基本结构,深度学习算法包括一种人工神经网络,其类似于生物脑结构。利用他们的感官模仿人类的学习过程,深入学习网络被送入(感官)数据,如文本,图像,视频或声音。这些网络在不同的任务中优于最先进的方法,因此,整个领域在过去几年中看到了指数增长。这种增长在过去几年中每年超过10,000多种出版物。例如,只有在医疗领域中的所有出版物中覆盖的搜索引擎只能在Q3 2020中覆盖所有出版物的子集,用于搜索术语“深度学习”,其中大约90%来自过去三年。因此,对深度学习领域的完全概述已经不可能在不久的将来获得,并且在不久的将来可能会难以获得难以获得子场的概要。但是,有几个关于深度学习的综述文章,这些文章专注于特定的科学领域或应用程序,例如计算机愿景的深度学习进步或在物体检测等特定任务中进行。随着这些调查作为基础,这一贡献的目的是提供对不同科学学科的深度学习的第一个高级,分类的元调查。根据底层数据来源(图像,语言,医疗,混合)选择了类别(计算机愿景,语言处理,医疗信息和其他工程)。此外,我们还审查了每个子类别的常见架构,方法,专业,利弊,评估,挑战和未来方向。
translated by 谷歌翻译