文摘gydF4y2Ba

语音助理机内的现有程序提示人机互动响应用户的请求。然而,关键的问题是,机器经常不得向用户给出一个合适的答案或者不能有效地解决现有的程序执行。因此,本研究提出了一种新颖的变换方法来取代现有的程序(称为本文示例程序)在机器内部通过代码转换模型与新生成的程序GPT-2能够合理解决上面提到的问题。从本质上说,本文介绍了理论估算至少在统计推断的根据需要生成的程序,以保证可以找到最好的一个。此外,该方法不仅模仿语音助理系统过滤多余的关键词或添加新的关键字来完成关键字检索的语义数据库还检查代码之间的相似性和验证执行的整合输出示例程序和新生成的程序。根据代码检查和程序输出验证,过程可以有效地加快变换操作通过删除冗余生成程序,发现程序生成的表现最好。因此,新生成的程序比示例程序,因为该方法减少了32.71%的代码行数,降低了程序执行时间24.34%,具有重要意义。gydF4y2Ba

1。介绍gydF4y2Ba

α是由谷歌DeepMind在伦敦2014年,它击败了所有其他的大师。从那时起,研究人工智能已经再次上升。因此,研究人机交互是为了模仿人类行为,尤其是自然语言表示和解释在语音助理机(gydF4y2Ba1gydF4y2Ba]。使用人工智能的人机交互语音助理machines-related工具蓬勃发展,如特斯拉的诺亚,苹果的Siri,亚马逊回声和Alexa,和谷歌的家。这些工具不仅函数作为人类语言模仿的基础但也发挥了关键作用在人工智能应用程序API发行。如今,有很多品牌和类型的语音助理机器,和他们现有的程序用于人机交互来响应用户请求。然而,一些语音助理机器遇到某些问题,也就是说,这台机器可能无法正确回答问题(gydF4y2Ba2gydF4y2Ba),或现有的程序执行效率较低(gydF4y2Ba3gydF4y2Ba]。值得探索的是如何解决上述问题,因此我们制定以下的想法。机器可以改变现有的计划一个新生成的程序,可以用更高的效率和运行程序生成正确的结果吗?gydF4y2Ba

尽管深度学习模式相对成熟,模仿人类自然语言行为通过深入学习仍然是一个艰巨的任务。语言模型是一种技术,允许机器理解和预测人类语言。最近开发的使用语言模型与大规模数据和巨大的计算能力可以帮助解决人类自然语言的各种应用程序。著名的开源pretrained语言模型,如埃尔莫,伯特,GPT-2 [gydF4y2Ba4gydF4y2Ba),可以实现自然语言处理(NLP)的最佳水平的任务,他们有能力所需的巨大的层次模型。通过学习和few-shot转移学习在这样强大的自然语言模型,可以获得复杂的NLP问题的解决方案。gydF4y2Ba

本研究的目的是探索解决以下两个问题。首先,如何构建一个完整的语义数据库,可以实现数据检索迅速、正确回应。第二,如何通过代码生成高性能的程序变换模型来取代现有的程序在机器内部改善的执行性能。自然语言处理涉及到理解和生成。对于所涉及的技术改进方法,一个完整的构造和使用MariaDB快速检索的语义数据库自然语言工具包(NLTK)模型的句子分割(gydF4y2Ba5gydF4y2Ba)为用户提供正确的答案。目前,最流利的开源自然语言模型生成Pre-trained变压器2 (GPT-2) [gydF4y2Ba6gydF4y2Ba),这是一个自然语言使用OpenAI仿真开发的机器。这是目前用于生成假新闻(gydF4y2Ba7gydF4y2Ba]。在这项研究中,Python (gydF4y2Ba8gydF4y2Ba)提供的运行时环境中提到的工具,也就是说,MariaDB, NLTK GPT-2, Tensorlfow。Python结合Hadoop流在Hadoop提供大数据处理和分布式存储,而且它还可以使用PySpark提供大数据分析的火花。gydF4y2Ba

到目前为止没有办法推断出多少项目产生GPT-2能保证通过比率超过90%,没有它我们不能找到最好的其中之一。然而,本文介绍了理论估计至少在统计推断的生成程序由GPT-2,这保证可以找到最好的。这种方法指的是预定的数量统计生成的程序。为了提高关键字检索的效率,过滤冗余参数关键字和添加新的关键字用于优化关键词搜索语义数据库中为了提高命中率从数据库的关键字。此外,我们目前的余弦Simhash[文本相似度算法gydF4y2Ba9gydF4y2Ba)检查生成的代码相似程序和示例程序和使用的最长公共子序列(LCS) [gydF4y2Ba10gydF4y2Ba)来验证之间的整合生成的程序和示例程序的执行结果。gydF4y2Ba

本文的以下段落排列如下。节gydF4y2Ba2gydF4y2Ba,相关工作在分词处理和语言生成模型将被描述。节中给出了系统实现的方法gydF4y2Ba3gydF4y2Ba。中给出了实验结果和讨论部分gydF4y2Ba4gydF4y2Ba。最后,我们画了一个简短的结论部分gydF4y2Ba5gydF4y2Ba。gydF4y2Ba

一个特定的语音助理机,亚马逊Alexa [gydF4y2Ba11gydF4y2Ba),是一个智能助理和回声智能议长近年来开发的。音频系统依赖于一组复杂的人工智能技术,使用自动语音识别(ASR)接收声波,将其转换成文字。然后,自然语言理解(NLU)是用来把这句话翻译成意义。为了回应的人,聪明的扬声器和自然语言生成的技术(NLG) [gydF4y2Ba12gydF4y2Ba)建议,内容确定、谈话规划、句子聚合,词汇,引用表达式生成、语言实验,描述基本NLG任务开发。而探索人工智能的各种新出现的问题,一些研究人员正在考虑的可能性,机器自动生产项目(gydF4y2Ba13gydF4y2Ba]。在现实中,人们常常加压完成编程或修改程序的代码在最后期限前或提高程序执行的的挑战。结果,程序执行速度可能迟迟不完成工作,有可能仍然缺乏实时运行程序的时候。相比之下,一个高性能的新程序可以通过代码生成变换模型,并将运行速度比原来的(gydF4y2Ba14gydF4y2Ba]。这将是一个很大的进步在人工智能的应用,和声音文本转换技术将进一步适用于噪声相关产品,如无人驾驶飞机,飞行机器人,铁男。gydF4y2Ba

没有多少文献源代码,源代码转换模型。首先,李et al。(2011)使用XML和XSLT技术来生成一个web页面代码(gydF4y2Ba15gydF4y2Ba]。他们会自动转换成目标代码后通过XML文件导出。然而,他们没有提供任何数据来显示生成的结果。接下来,李et al。(2020)使用Java代码转换模型,Java-Codetool, CodeGeneration生产新生成的Java程序和评估他们的表现(gydF4y2Ba16gydF4y2Ba]。他们把二叉树遍历项目为例,将程序分成4部分单独生产新生成的源代码程序。实验结果表明,平均时间使用Java-Codetool生成一个程序的代码行是0.17秒,而CodeGeneration需要0.15秒。无论是否使用Java-Codetool或CodeGeneration,代码行数不减少。事实上,所有生成的编译程序可以成功完成。然而,它并没有显示出进一步的执行结果生成项目的有关信息。在这篇文章中,该方法将代码相似性检查和确保一致性之间的执行结果生成的程序和示例程序,导致研究结果的可信度和有效性。gydF4y2Ba

不确定性会根据情况存在。尽管如此,系统可以生成类似的计划立刻大大减少的可能性与GPT-2错误或不完整的程序。为了实现“代码转换模型应用到新生成的项目改善执行性能”,本研究将使用以下关键技术:蟒蛇(科学数据平台和虚拟环境Conda), Tensorflow(数据流和可微的编程),NLTK(英语文本分割),GPT-2(文本生成模型),和Simhash(余弦文本相似度算法),等等,实现本研究的目标。gydF4y2Ba

2.1。分词Processing-NLTKgydF4y2Ba

自然语言处理(NLP) [gydF4y2Ba17gydF4y2Ba)被认为是人工智能和语言学的一个分支。这个领域讨论如何处理和使用自然语言,包括多个步骤,基本上对认知、理解、一代;认知和理解是让计算机自然语言输入变成有趣的符号和关系。自然语言工具包(NLTK)是一个Python库中常用NLP的研究。这是一个开源项目,包括数据集,Python模块,教程等。gydF4y2Ba

NLTK的主要功能是英语分词处理、词性标注(gydF4y2Ba18gydF4y2Ba]叫pos、字体恢复称为词元化,stopword,命名实体识别叫尼珥,NLTK等等,文本通常是存储为一个列表,也就是说,一个文本是一个巨大的列表。如果附加额外的信息,如词性,可以转换成一个字典。拉丁语言系统有点麻烦,因为他们喜欢修饰符添加到词汇来描述不同的时态,行动,词性,情绪,和数量。所以我们会考虑所有相同的词在不同的时态或不同的变化到相同的词进行处理。最后,我们过滤掉不必要的单词。和英语单词分类流程图如图gydF4y2Ba1gydF4y2Ba。gydF4y2Ba

2.2。语言训练前代Model-Generative 2gydF4y2Ba

第二代生成训练前(GPT-2)是一种无监督(gydF4y2Ba19gydF4y2Ba)变压器语言生成模型(gydF4y2Ba20.gydF4y2Ba),OpenAI于2019年发布。研究人员认为,无监督学习的语言模型是一个通用的语言模型。此外,GPT-2证明该模型并不意味着对任何特定的任务来预测下一个单词作为训练目标。它用于数据库采用句子WebTex [gydF4y2Ba21gydF4y2Ba)的数据训练,其中包含800万个网页作为训练数据。这些web页面的一部分,Reddit的数据(gydF4y2Ba22gydF4y2Ba),超过40 GB。与其他text-generating模型相比,比如艾尔摩和伯特生产文本,它的主要优点是,在英语和单向语言模型的代码更容易训练和理解。传统的变压器模型由编码器和译码器,称为变压器架构堆栈。变压器架构堆栈如图gydF4y2Ba2gydF4y2Ba。该模型解决了机器翻译的问题。gydF4y2Ba

在许多后续的研究中,变压器架构消除了编码器和译码器,只使用一个变压器堆栈,并提供大量的训练文本和机器设备。GPT-2由译码器架构根据变压器模型。如图gydF4y2Ba3gydF4y2Ba堆叠高度是各种GPT-2模型的大小。目前,有四个尺寸的模型:GPT-2小,GPT-2介质,GPT-2大,GPT-2超大(gydF4y2Ba23gydF4y2Ba]。gydF4y2Ba

2.3。余弦文本相似性Algorithm-SimhashgydF4y2Ba

传统的散列(gydF4y2Ba9gydF4y2Ba算法只负责将原始内容映射到一个签名值同样和随机。原则是只相当于一个伪随机数生成算法。即使只有一个字节的两个原始内容不同,生成的签名价值可能是非常不同的。因此,传统的散列不能测量维度的原创内容的相似性签名。Simhash算法(gydF4y2Ba24gydF4y2Ba)是一个本地敏感的散列算法,其主要思想是降低特征向量的维数。也就是说,Simhash算法将高维特征向量转化为f-bit指纹(gydF4y2Ba25gydF4y2Ba),以确定两个f-bit指纹的相似性计算的汉明距离gydF4y2Ba26gydF4y2Ba这些指纹。汉明距离越小,相似度越高。整个过程如图gydF4y2Ba4gydF4y2Ba,包括分词、散列计算权重,合并和降维。分词是用来获得n维特征向量(64 -维默认)文本的分词;散列是执行哈希计算获得的所有的特征向量。权重是指权衡所有获得的特征向量。合并是指积累获得的所有的向量。维减少变化的累积结果大于零,小于零,零,获得一个文本指纹如图gydF4y2Ba5gydF4y2Ba,最后计算两个文本之间的汉明距离指纹。gydF4y2Ba

在信息理论中,两个等长字符串之间的汉明距离是不同的字符的数量对应于两个字符的位置。的汉明距离是需要替换的字符数将一个字符串转换成另一个固定长度。此外,汉明距离是一个特征向量空间距离测量,它维护测量距离和负的,独特的,对称的。在汉明距离公式方程(gydF4y2Ba1gydF4y2Ba)[gydF4y2Ba27gydF4y2Ba),维gydF4y2Ba有gydF4y2Ba是对象之间的汉明距离gydF4y2Ba我gydF4y2Ba和gydF4y2BajgydF4y2Ba,gydF4y2BakgydF4y2Ba相应的变量的指数阅读吗gydF4y2BaygydF4y2Ba在变量的总数gydF4y2BangydF4y2Ba。在方程(gydF4y2Ba2gydF4y2Ba)和方程(gydF4y2Ba3gydF4y2Ba),(gydF4y2BaygydF4y2Ba我,kgydF4y2Ba≠gydF4y2BaygydF4y2Baj, kgydF4y2Ba)的值是1或0的逻辑值真或假根据内部条件决定的gydF4y2BaygydF4y2Ba我,kgydF4y2Ba≠gydF4y2BaygydF4y2Baj, kgydF4y2Ba。汉明距离本身给的数量不匹配变量配对gydF4y2BakgydF4y2Ba。gydF4y2Ba

如果汉明距离是用来测量原创内容的相似性,相似性可以转换成通过比率作为衡量测试对象基于最初的标准。根据汉明距离dgydF4y2Ba有gydF4y2Ba和变量的总数gydF4y2BangydF4y2Ba,资格比公式方程(gydF4y2Ba4gydF4y2Ba)可以获得。gydF4y2Ba

2.4。最长公共子序列(LCS)gydF4y2Ba

最长公共子序列(gydF4y2Ba10gydF4y2Ba),缩写LCS,问题是找到所有序列的最长公共子序列的一组序列(通常是两个序列)。这不同于寻找最长公共子串的问题(最长公共子串),连续子序列不需要占用位置在原始序列。为了解决LCS问题,我们不能用蛮力搜索方法。我们需要使用动态编程来找到LCS的长度和回溯策略找到实际的LCS的序列。gydF4y2Ba

我们假设gydF4y2BazgydF4y2Ba= zgydF4y2Ba1,gydF4y2BazgydF4y2Ba2gydF4y2Ba⋯,gydF4y2BazgydF4y2BakgydF4y2Ba>的LCSgydF4y2BaxgydF4y2Ba和gydF4y2BaygydF4y2Ba,我们观察到,如果gydF4y2BaxgydF4y2Ba米gydF4y2Ba=gydF4y2BaygydF4y2BangydF4y2Ba,然后gydF4y2BazgydF4y2BakgydF4y2Ba=gydF4y2BaxgydF4y2Ba米gydF4y2Ba=gydF4y2BaygydF4y2BangydF4y2Ba,gydF4y2BazgydF4y2BakgydF4y2Ba−1gydF4y2BaLCS的gydF4y2BaxgydF4y2Ba米gydF4y2Ba−1gydF4y2Ba和gydF4y2BaygydF4y2BangydF4y2Ba−1gydF4y2Ba;如果gydF4y2BaxgydF4y2Ba米gydF4y2Ba≠gydF4y2BaygydF4y2BangydF4y2Ba,然后gydF4y2BazgydF4y2BakgydF4y2BaLCS的gydF4y2BaxgydF4y2Ba米gydF4y2Ba−1gydF4y2Ba和gydF4y2BaygydF4y2BangydF4y2Ba−1gydF4y2Ba或的LCSgydF4y2BaxgydF4y2Ba米gydF4y2Ba−1gydF4y2Ba和gydF4y2BaygydF4y2BangydF4y2Ba。因此,解决问题的LCS成为递归的两个子问题的解决方案。然而,在上述递归解决方法,有许多重复的子问题和效率很低。改进的方法是使用空间代替时间和使用一个数组来存储中间状态促进随后的计算。因此,使用二维数组gydF4y2BacgydF4y2Ba(i, j)记录LCS长度的字符串gydF4y2BaxgydF4y2Ba1gydF4y2Ba,gydF4y2BaxgydF4y2Ba2gydF4y2Ba⋯,gydF4y2BaxgydF4y2Ba我gydF4y2Ba和gydF4y2BaygydF4y2Ba1gydF4y2Ba,gydF4y2BaygydF4y2Ba2gydF4y2Ba⋯,gydF4y2BaygydF4y2BajgydF4y2Ba,状态转换方程可以得到方程(gydF4y2Ba5gydF4y2Ba)。gydF4y2Ba

最长公共子序列的相似性是用来测量两个程序的执行结果gydF4y2Ba28gydF4y2Ba]。为了说明各自的输出结果的一致性程度的两个项目,重命名为文本整合相似。首先,个别程序的输出结果转换为ASCII代码,然后将它们存储到数组gydF4y2BabgydF4y2Ba个人,然后计算gydF4y2BacgydF4y2Ba数组按最长公共子序列。这里的长度gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba,gydF4y2BacgydF4y2Ba数组记录|gydF4y2Ba一个gydF4y2Ba| |,gydF4y2BabgydF4y2Ba|和|gydF4y2BacgydF4y2Ba|,上面的数组的长度被替换成公式方程(gydF4y2Ba6gydF4y2Ba)获取文本一致。数组的长度,gydF4y2BabgydF4y2Ba,gydF4y2BacgydF4y2Ba被指示为|gydF4y2Ba一个gydF4y2Ba| |,gydF4y2BabgydF4y2Ba|和|gydF4y2BacgydF4y2Ba|,上面的数组的长度是代入方程(gydF4y2Ba6gydF4y2Ba)获得LCS整合,表示gydF4y2BafgydF4y2Ba。gydF4y2Ba

3所示。研究方法gydF4y2Ba

本研究的目的是产生新生成的程序使用代码转换模式可以提高程序的执行速度。换句话说,为了提高人机交互的效率像语音助理机器,现有的程序(称为本文示例程序)在机器内部使用GPT-2被替换为一个新的高性能的计划。然而,拟议的方法,如图gydF4y2Ba6gydF4y2Ba之前,由三部分组成:关键字检索优化、代码转换模型,生成后的验证程序。第一部分是模仿语音助理机段句子,选择关键字,找到示例程序。接下来,变换模型是用于生产大量的新的候选项目根据相应的示例程序。最后一个是测试和验证新的候选项目,选择质量最好的口袋里的程序。口袋里的程序是新的候选项目之间的最佳性能。gydF4y2Ba

3.1。新生成的程序系统gydF4y2Ba

本文的目的是探索使用的第二代生成训练(GPT-2)作为生产新生成的高性能的程序代码变换模型。这样,示例程序语义数据库中可以使用一个名为“口袋替换程序实现高性能的执行,由于减少了代码行,减少执行时间。GPT-2变换模型,该方法与之前模仿语音助理系统优化与语义相关联的关键字检索数据库,并建立一个内容检查器使用后的验证程序执行结果示例程序和新生成的程序。该系统包括模型生成阶段和模型使用阶段,如图gydF4y2Ba7gydF4y2Ba。模型生成阶段,用户发送口语句子使用文本或声音,然后用分词进行选择关键词,找到相应的示例程序。之后,系统训练模型并生成初步的项目的一些项目选择合格的项目。最后,生成程序确认并保存在数据库的语义模型。在模型使用阶段,用户发送文本或声音的口语句子,和语义搜索数据库的口袋可以早些时候的程序模型生成阶段。如果不是,它会回到生成初步的步骤程序,然后经过测试和验证步骤,得到一个新的口袋程序执行。gydF4y2Ba

模型生成阶段分为训练阶段和测试阶段。相图数据所示gydF4y2Ba8gydF4y2Ba- - - - - -gydF4y2Ba10gydF4y2Ba。在训练阶段,有四个单元:分词单位,示例程序单元,单元生成程序模型,生成的程序单元。在训练阶段的输入/输出是自然语言句子,关键词,示例程序,生成程序模型,初步计划。自然语言句子最初是由一个用户发送。NLTK的分词模型是用于执行分词。系统是用来选择关键字,然后在语义数据库搜索关键字对应的示例程序。语义数据库是建立在XAMPP [gydF4y2Ba29日gydF4y2Ba云服务器。系统将示例程序放入GPT-2第一通过。GPT-2使用一个示例程序来训练和生成模型生成程序。建模完成后,该模型将提供的反馈再GPT-2第二传递一些初步的生产计划。在测试阶段,有三个单元:单元测试,验证单元和存储单元。Simhash算法比较初步项目之间的相似性和示例程序。合格的项目的初步计划,得到相似度通过比率高于预定的一个,他们编译Python。接下来,在验证单位,我们选择合格的项目相似度最高的传递率与相应的示例程序使用LCS整合措施执行结果的一致性,并选择一个合格的程序,满足预定的一致性比率为一个口袋程序。最后,在存储单元、关键词,口袋里计划,生成的程序将被存储在数据库的语义模型。gydF4y2Ba

与训练有素的生成程序模型中语义数据库,选择相应的关键字将会指向的过程模型使用分词后阶段。图所示图gydF4y2Ba10gydF4y2Ba。在模型中使用阶段,有五个单位:分词单位,生成程序模型单元,生成的程序单元,测试和验证单元和存储单元。同样,分词单位最初允许用户发送和使用自然语言句子NLTK算法部分句子,选择关键词。然后,它将使用关键字搜索生成程序的语义数据库模型或口袋里的程序。如果口袋里找到项目,他们将直接执行。如果不是,它会回到生成初步的步骤程序,然后经过测试和验证步骤,得到一个新的口袋程序执行。gydF4y2Ba

3.2。系统执行流程gydF4y2Ba

图gydF4y2Ba11gydF4y2Ba显示了该方法的整体执行流。在模型生成阶段,用户发送的句子或文章到分词模型NLTK进行分词和选择关键字分隔单词。然后,选中的关键字与语义数据库核对,检查是否存在相同的关键词。如果不是,关键字添加到语义数据库。关键词后,示例程序的路径在同一个行关键字在一个表获取和判断。如果有一个示例程序路径,我们输出示例程序根据下一步的路径。如果没有示例程序,预计新示例程序可以通过网络爬虫收集适当的示例程序并将其存储到数据库的语义。然后去寻找程序是否已经有一个训练有素的生成程序模型。如果不是,示例程序投入GPT-2作为第一个通过生产模型生成程序。如果是的,第二步是采取提要生成程序模型GPT-2解码模型,生成100 GPT-2的初步计划。 The preliminary programs have been brought to the next test and verification steps. In the beginning, the 100 preliminary programs are sent individually to compare with the corresponding sample program and both are calculated with the Simhash signature value. Moreover, they are compared using Hamming Distance, and the similarity ratio is judged by the distance. After checking the code similarity between any one preliminary program and the sample program, this preliminary program will be viewed as the qualified program if its similarity exceeds the predetermined pass ratio (e.g., ≥90%). If so, it then will be sent to the next step for the verification of its execution result. However, if no preliminary program exceeds the predetermined pass ratio, it has to get back to the previous step to retrain a new generative program model and then try to regenerate 100 preliminary programs. Once all qualified programs have been produced, we need to check whether the number of qualified programs produced is enough. If there are only fewer qualified programs produced, it goes back to the previous step to re-generate a model. If the ratio of the number of qualified programs to 100 preliminary programs is big enough (e.g., ≥80%), the qualified programs are a majority and they are naturally compiled with Python. After the compilation is successful, LCS conformity between the execution result of the qualified program with the highest similarity pass ratio and the execution result of the corresponding sample program is computed to check whether their conformance meets the predetermined conformity (e.g., ≥95%). If so, such a qualified program serves as a pocket program. Finally, the pocket program, the generative program model, the keyword, and sample program are stored into the same row in a specific table in the semantic database.

在模型中使用阶段,NLTK不仅适用于部分单词,退出和外接程序还实现了关键字优化关键字检索。分词后,无用的关键词不选择和关键词的准确性提高。同样,新的关键字添加到语义数据库来提高关键词的准确性。接下来,我们将检查如果相应的口袋程序语义数据库中被执行。如果相应的口袋里的程序存在,口袋计划将提供给用户来执行。另一方面,如果相应的口袋里的程序不存在,它移动的步训练一个新的生成程序模型。之后,接下来的一步是捡几个口袋程序对应于相应的关键词在数据库中,然后将它们合并在一起,形成一个完整的最终项目。“评估和执行单元”是进一步开展最后一个项目。预计我们可以评估最终的程序的执行性能需要多长时间。通过这种方式,用户可能允许采取或中止。gydF4y2Ba

3.3。硬件规格和配方的软件工具gydF4y2Ba

在模型训练阶段,高层GPU集群用于GPT-2执行用于快速模型训练减少处理时间花在传统的CPU。在表gydF4y2Ba1gydF4y2Ba,操作将由以下工具:(1)NLTK分词模型,(2)无监督生成训练的第二代变压器语言模型,(3)Simhash算法作为散列算法的高级版本,和(4)LCS算法作为一个高级版本的DP算法。gydF4y2Ba

硬件设备运行程序是基于两个Nvidia-brand GPU P100和两个RTX2080Ti。四个GPU集群工作站通过高速连接本地网络加速计算(gydF4y2Ba30.gydF4y2Ba]。集群工作站有更高的可用性、可靠性和可伸缩性比一个工作站。每个工作站服务器通过高速网络QPI传输数据,并使用一个硬件接口作为PCIe x16通道连接两个CPU和GPU。GPU链接使用NVLink [gydF4y2Ba31日gydF4y2Ba)由Nvidia允许四个gpu共享内存使用点对点结构和串行传输。不仅在CPU和GPU之间,而且还建立了多个Nvidia GPU之间的联系。在多个gpu, SLI、包围和Nvidia系统物理运算引擎选项将显示面板。打开SLI,用户可以分享显卡内存更多的数据计算。详细的硬件规格如表所示gydF4y2Ba2gydF4y2Ba。整体架构图如图gydF4y2Ba12gydF4y2Ba。gydF4y2Ba

3.4。评估关键字检索的性能gydF4y2Ba

生成程序的可行性的实验模型是在两个部分进行:从一个句子和关键字检索关键词选择优化(gydF4y2Ba32gydF4y2Ba],估计项目的数量从代码生成GPT-2变换模型,通过计算比率之间的相似性检查生成的程序和示例程序。第一部分是用于优化关键字搜索语义数据库中为了提高成功的从数据库关键字。有两种方法可以优化关键字搜索。第一个是过滤冗余的关键字在一个句子分词后,第二个是添加新的关键字语义数据库,以增加成功的从数据库关键字点击。第一个过滤器关键词选择的关键字分开NLTK分词。nonrelated连接词或辅助词删除提高点击关键词形式语义数据库的准确性。第二个是添加关键字检查是否必要的关键词中存在语义数据库,添加关键词语义数据库,并通知用户查找和添加数据库中相应的示例程序。提高命中率的关键字检索如果用户提交同样的关键字,需要检查是否命中率的关键字检索的语义数据库增加。因为F1-Score (gydF4y2Ba33gydF4y2Ba)是常用的测量精度在模式识别中,抽样调查,信息检索,本研究使用F1-Score作为评价指标来衡量的准确性。F1-Score是调和平均数计算精度和召回。找到F1-Score,用户必须首先定义的类,负类,并考虑是否可收回。混淆矩阵的定义(gydF4y2Ba34gydF4y2Ba)如表所示gydF4y2Ba3gydF4y2Ba。gydF4y2Ba

在关键字搜索问题的混淆矩阵,有四个方面。真阳性(TP)是积极的和被认为是积极的。假阳性(FP)是消极而错误地认为是积极的。假阴性(FN)是积极的而错误地认为是消极的。真阴性(TN)是负的,被认为是消极的。中定义的准确性是方程(gydF4y2Ba7gydF4y2Ba),这是计算TP TP + FP的比率。中定义的召回是方程(8),这是计算TP TP + FN的比率。中定义的召回是方程(gydF4y2Ba8gydF4y2Ba),这意味着是计算所有结果的比例(TP + FN)检索的积极成果(TP)。后发现的准确性和回忆,F1-Score调和平均数的精度和召回。它是定义在方程(gydF4y2Ba9gydF4y2Ba)。调整后方程(gydF4y2Ba9gydF4y2Ba),在方程(F1-Score简洁gydF4y2Ba10gydF4y2Ba)。对应F1-Score评估分词后,默认选择关键字检查从语义数据库关键字检索的性能。TP是指那些关键词检索和正相关。FP nonrelevant检索关键字。FN nonretrieved但相关的关键字。为评价指标,计算精度的过程,回忆,F1-Score。gydF4y2Ba

3.5。绩效评估的程序执行gydF4y2Ba

本节计算新生成的性能改进项目由GPT-2。换句话说,我们要比较示例程序之间的执行性能和每个单独生成的程序。绩效评估包括(1)比较示例程序的代码行数和平均生成的程序和代码行数(2)比较它们之间的执行时间。两个指标来解释任何程序执行性能会提高多少,第一个是测量的比率平均代码行生成的程序示例程序的代码行,第二个是评估的比率平均执行时间生成的程序示例程序的执行时间。减少程序的百分比线gydF4y2BargydF4y2BalgydF4y2Ba方程所示(gydF4y2Ba11gydF4y2Ba)。的gydF4y2BalgydF4y2BaogydF4y2Ba和gydF4y2BalgydF4y2BaggydF4y2Ba代表示例程序的代码行数和平均的代码行数生成的程序,分别。减少程序执行时间的百分比gydF4y2BargydF4y2BatgydF4y2Ba方程所示(gydF4y2Ba12gydF4y2Ba)。的gydF4y2BatgydF4y2BaogydF4y2Ba和gydF4y2BatgydF4y2BaggydF4y2Ba代表示例程序的执行时间和平均执行时间生成的程序,分别。gydF4y2Ba

3.6。预先确定的数量统计生成的程序gydF4y2Ba

这部分是探索多少生成的程序由GPT-2至少能保证现有一些预定的程序,并通过比率与示例程序代码相似性检测超过90%。因此,我们先计算的代码生成程序,已经从一个示例程序,生成具有通过代码相似度检查的比率超过90%,然后可以计算百分比gydF4y2Ba 如方程所示(gydF4y2Ba13gydF4y2Ba)。其中,gydF4y2Ba 生成项目的总数产生从一个示例程序中gydF4y2Ba 生成程序的数量通过相似度检查的比例超过90%。取得上述所有气比例后,方程(gydF4y2Ba14gydF4y2Ba)代表的平均百分比gydF4y2Ba 在哪里gydF4y2Ba 代表总数的样例程序在一个例句。然后,我们做出判断来确定有多少的错误判断gydF4y2Ba ,gydF4y2Ba然后计算比例的误判gydF4y2Ba ,gydF4y2Ba如方程所示(gydF4y2Ba15gydF4y2Ba),gydF4y2Ba 是误判的数量内生成的程序代码相似度检查通过的比率超过90%。然后,误判的平均百分比gydF4y2Ba 可以获得如方程所示(gydF4y2Ba16gydF4y2Ba)。gydF4y2Ba

接下来,我们数数有多少生成的程序gydF4y2Ba ,gydF4y2Ba来自一个示例程序,已经通过的比率低于90%,然后让它可能计算出百分比gydF4y2Ba ,gydF4y2Ba如方程所示(gydF4y2Ba17gydF4y2Ba)。毕竟上面提到的现有的百分比计算,方程(gydF4y2Ba18gydF4y2Ba)可以给平均百分比gydF4y2Ba 生成的项目有通过代码相似度检查的比例不到90%。然后,我们做出判断来确定有多少的错误判断gydF4y2Ba 然后计算比例的误判gydF4y2Ba ,gydF4y2Ba如方程所示(gydF4y2Ba19gydF4y2Ba),gydF4y2Ba 是误判的数量内生成的程序有通过代码相似度检查的比例低于90%。然后,误判的平均百分比gydF4y2Ba 可以获得如方程所示(gydF4y2Ba20.gydF4y2Ba)。gydF4y2Ba

然后,我们加起来的数量项目产生的所有示例程序来见方程(gydF4y2Ba21gydF4y2Ba)。在获得gydF4y2Ba 通过以上计算,方程(gydF4y2Ba22gydF4y2Ba)可以计算平均概率gydF4y2Ba (gydF4y2Ba35gydF4y2Ba)生成的程序通过比率超过90%,并且生成的示例程序。我们假设有j程序通过代码的比率超过90%,gydF4y2Ba 代表通过的概率相似性检查的比例超过90%为这些项目是真实的,如方程所示(gydF4y2Ba23gydF4y2Ba)[gydF4y2Ba36gydF4y2Ba),gydF4y2Ba 意味着有最多的概率j项目有代码相似性检测的通过率超过90%在生成的程序,和gydF4y2Ba 表明有j项目有代码相似性检测的通过率超过90%在生成的程序产生的代码转换模型。根据上述数据,我们知道的概率gydF4y2BajgydF4y2Ba项目在通过代码相似度检查的比例超过90%gydF4y2Ba 。gydF4y2Ba我们可以推断出多少程序必须保证有生成gydF4y2BajgydF4y2Ba项目在通过相似性检查代码的比率超过90%,如方程所示(gydF4y2Ba24gydF4y2Ba),其中N是程序生成的总数。gydF4y2Ba

让我们4示例程序为例。每个示例程序生成500个项目单独然后计算有许多程序代码相似性检测的通过率超过90%的500程序,然后计算每个生成程序的传递率超过90%,可以计算的平均比例为3%。然后,我们判断传递的程序代码相似度检查的比例超过90%。判断误判的数量后,我们计算个体的百分比,最后判断失误的平均比例是1%。gydF4y2Ba

此外,我们判断这些500年项目通过代码相似度检查的比例不超过90%,然后计算出百分比。计算后,我们可以发现,通过相似性检查4示例程序代码的比率没有平均超过90%。比例是97%,然后法官通过的程序代码相似度检查的比例不超过90%,法官误判的数量,然后计算百分比。最后,我们可以得到平均误判率为2%。gydF4y2Ba

基于上述统计数据,我们可以发现,通过生成的程序代码相似度检查的比例是超过90%,平均概率是4.91%。我们想知道有多少项目生成需要保证5项目有代码相似性检测的通过率90%以上。上述相关值可以代入方程(gydF4y2Ba24gydF4y2Ba)来获取答案。因此,至少100生成程序必须保证生产5人有通过代码相似度检查的比例超过90%。gydF4y2Ba

4所示。实验结果和讨论gydF4y2Ba

4.1。实验设计gydF4y2Ba

进行以下四个实验。第一个实验是分词选择关键字和优化关键字检索。第二个实验是搜索示例程序并生成一定数量的初步计划预定数量的基础上生成的项目统计。第三个试验是分析代码相似性的通过率来检查和一些初步的项目合格的项目进行分类。最后,应用LCS一致性检查每个合格的程序和示例程序意图之间找出最高的LCS整合,这合格项目代表一个口袋的项目在过去的实验。gydF4y2Ba

实验设置了珠江口四个例句对所有实验付诸实践。分词后,关键字检索优化是实现两个方面。第一个是过滤冗余字,第二个是添加所需的关键字。评价指标,如准确性、召回和F1-Score用来测量关键字检索的性能。与关键词相关的示例程序得到从GitHub (gydF4y2Ba37gydF4y2Ba),他们都是存储在数据库语义。XAMPP服务器的相关表的语义数据库包含几个字段:关键字、示例程序名称,示例程序路径,生成的模型路径,和口袋程序路径,如图gydF4y2Ba13gydF4y2Ba。本文的目的是改善性能的示例程序通过将它们转换为新生成的程序由GPT-2基于两个指标:(1)减少程序代码的行数和(2)减少程序执行时间。gydF4y2Ba

相关示例1的示例程序是一个网络爬虫(gydF4y2Ba38gydF4y2Ba),和相应的关键字是“天气、交通”。示例程序1的目的是抓取相应的数据在互联网上得到那天天气预报天气中心和自动分配交通拥堵点在谷歌地图。接下来,在示例2的示例程序,相应的关键词是“股票、货币”相关的汇率(gydF4y2Ba39gydF4y2Ba]。示例程序的主要目的是显示当前的汇率或用户当前的股票指数。第三,在示例3的示例程序,相应的关键字是一个“宠物”,它是与网络摄像头(gydF4y2Ba40gydF4y2Ba]。网络摄像头编程的目的是让摄像机安装在家里的台式电脑视频的宠物。最后,相应的关键词示例4的示例程序是“投资,不保证”。系统将用户市场每请求从投资勘探数据分析(gydF4y2Ba41gydF4y2Ba]。gydF4y2Ba

在实验设置,四个例句用于优化关键字过滤冗余和添加新的关键字检索。例句所示表gydF4y2Ba4gydF4y2Ba。gydF4y2Ba

4.2。实验结果gydF4y2Ba
4.2.1。准备实验# 1gydF4y2Ba

上面四句话被用作分词模型NLTK选择关键词。关键词选择的结果如表所示gydF4y2Ba5gydF4y2Ba。截图如图gydF4y2Ba14gydF4y2Ba。gydF4y2Ba

如前所述,NLTK操作进行分词不是关键词优化的检索。所有分段词除了标点符号被选为关键词。所选的关键词如表所示gydF4y2Ba6gydF4y2Ba,截图如图gydF4y2Ba15gydF4y2Ba。gydF4y2Ba

最初选择的关键字是一致的与现有的语义数据库中的关键字,如表所示gydF4y2Ba7gydF4y2Ba。点击关键字是“天气、交通”在例1中,“股票,货币”在示例2中,在示例3“宠物”,“投资,不,确保”4示例。gydF4y2Ba

在选择关键词的例句,关键字搜索的准确性的基础上达到语义数据库中的关键字的数量。这些相关的关键词检索和指示为真阳性(TP),但不相关的关键词和检索被表示为假阳性(FP)。关键字检索的混淆矩阵示例1例4表所示gydF4y2Ba8gydF4y2Ba- - - - - -gydF4y2Ba11gydF4y2Ba。gydF4y2Ba

使用NLTK初始关键字搜索后,第一个优化方法是过滤掉不相关的辅助词或句子的连词。达到语义数据库中的关键字的详细结果如表所示gydF4y2Ba12gydF4y2Ba。相关截图如图gydF4y2Ba16gydF4y2Ba。筛选过程后,混淆矩阵后优化的关键字检索示例1例4表所示gydF4y2Ba13gydF4y2Ba- - - - - -gydF4y2Ba16gydF4y2Ba。gydF4y2Ba

第二个关键词搜索优化方法是添加相关的关键字和语义数据库的示例程序。此外,关键字的数量反映了语义数据库新优化。添加关键字是“今天,非常好,知道,流”在例1中,“继续,最近下跌,黄金,交易”在示例2中,“回家,如何购物,知道,什么“在例3中,“想要,但是,存款”例子4。语义数据库中的关键字的详细信息如表所示gydF4y2Ba17gydF4y2Ba。关键词搜索的混淆矩阵从示例1例4表所示gydF4y2Ba18gydF4y2Ba- - - - - -gydF4y2Ba21gydF4y2Ba。gydF4y2Ba

等评价指标的准确性,回忆,和F1-Score最初的关键词检索、过滤关键字检索,和新添加的关键词检索进行了评估。结果如表所示gydF4y2Ba22gydF4y2Ba- - - - - -gydF4y2Ba25gydF4y2Ba。因为所有关键词分割单词的例句选择默认情况下,召回是100%。gydF4y2Ba

4.2.2。实验2号gydF4y2Ba

第二个实验是基于四个从GitHub获得的示例程序。对应关键词在实验中发现# 1、相应的关键词提取的自然语言句子并将应用于示例程序。示例程序和关键词的对应表中列出gydF4y2Ba26gydF4y2Ba。gydF4y2Ba

为了转换生成的高性能程序的示例程序,代码转换模型生成GPT-2 100初步计划,及其耗费时间也被记录在同一时间。在这个实验中,共进行了五轮,估计平均时间实时总结在表中生成一个程序gydF4y2Ba27gydF4y2Ba。gydF4y2Ba

4.2.3。实验3号gydF4y2Ba

在实验# 3,比较Simhash以上四个样本之间的相似性检查项目和GPT-2生成的程序进行集群GPU工作站。这个实验的目的是找出有多少完成项目将相似比例大于或等于默认用户设定的传递率。在这个实验中,合格的比例分布设置的图gydF4y2BaXgydF4y2Ba设在相似比例,从0%到100%不等,20%作为分离区间。的gydF4y2BaYgydF4y2Ba设在是随着项目数量的百分比比例间隔。对于每个相应的示例程序,代码转换模型GPT-2将产生100项目标记为初步计划。样品的初步程序如图gydF4y2Ba17gydF4y2Ba- - - - - -gydF4y2Ba20.gydF4y2Ba。初步计划的通过比率数据所示gydF4y2Ba21gydF4y2Ba- - - - - -gydF4y2Ba24gydF4y2Ba。我们通过比率定义为有多少项目100初步项目将有相似的范围内下降80% - -100%。换句话说,通过比率与样品相关的实验项目1、2、3和4分别为40%,30%,38%,和37%,分别基于100生成初步的项目,这些初步的项目被称为合格的项目。gydF4y2Ba

4.2.4。实验# 4gydF4y2Ba

根据4例子中演示实验设置,第四次实验第一次试图检验合格的程序的执行结果是否满足一定比例符合示例程序。合格的项目已经编译成功后,合格的项目单独执行,然后每个合格的程序的执行结果与相应的示例程序的执行结果用LCS整合。他们的执行结果如图gydF4y2Ba25gydF4y2Ba- - - - - -gydF4y2Ba28gydF4y2Ba。程序执行结果转换为ASCII代码通过LCS算法比较的一致性。结果,合格的程序通过比率最高的LCS整合称为最好的合格的项目,也被指定为一个口袋里的程序。列出实验结果如表所示gydF4y2Ba28gydF4y2Ba。gydF4y2Ba

接下来,我们将以上四个最好的性能合格的项目由GPT-2与相应的示例程序。评估包括(1)比较的代码行数之间的最好示例程序和相应的合格的程序和(2)比较示例程序的执行时间和相应的最合格的项目。理解多少改进是在程序执行的速度,平均的代码行数100初步计划和最好的平均执行时间是经过细心挑选合格的项目。估计结果列在表中gydF4y2Ba29日gydF4y2Ba和gydF4y2Ba30.gydF4y2Ba,分别。gydF4y2Ba

关于调查结果的可信度和有效性在这项研究中,绩效评估在源代码的比较表中列出源代码转换模型gydF4y2Ba31日gydF4y2Ba。绩效评估包括(1)平均时间生成一个单一的指令(s),(2)减少代码行的百分比(%),和(3)整合的程序执行结果(%)。结果,该方法与GPT-2优于Java-Codetool CodeGeneration。Java-Codetool和CodeGeneration介绍了(gydF4y2Ba16gydF4y2Ba)的Java代码转换模型。然而,这篇文章没有生成程序的执行结果。因此,没有合格的信息程序执行结果Java-Codetool和CodeGeneration模型在表gydF4y2Ba31日gydF4y2Ba。gydF4y2Ba

5。讨论gydF4y2Ba

在第一个实验中,NLTK分词后,关键字搜索优化表明,如果有更少的关键词,过滤操作需要筛选改善F1-Score更无关的关键词。相比之下,另一种是添加关键字语义数据库和显著改善的准确性和F1-Score关键词检索。在第二个实验中,通过GPT-2生成程序的数量是根据预定的程序生成的数量统计和平均100项目为每个生成相应的示例程序和平均每个程序生成大约1秒。生成的代码行数100个项目平均降低了32.71%,这样代码审查可以节省大约30%的时间由于更少的代码行数。代码相似度检查后生成的初步计划在第三个实验中,完成了项目具有最高的传递率越少在这部分被选为合格的项目。合格的程序编译成功后,最后一个实验是LCS之间的一致性检查合格的程序和示例程序,整合实际上平均超过97.60%的比例和最高的比选择合格的口袋程序。对于合格的程序的性能,生成的程序的平均执行时间降低了24.34%。gydF4y2Ba

实验表明,该系统不仅能快速生成项目但也大大提高程序的执行效率。基于学习和转移few-shot学习,GPT-2实现了代码转换任务的最佳水平为显著改善其生产新生成的程序执行效率。此外,强大的云平台,Hadoop或火花,在未来人们可以意识到集体学习集成所有的小数据集提供了来自不同单位,演变成复杂的机器学习应用程序,创建一个足够大的语义数据库,实现一个伟大的计算能力。gydF4y2Ba

6。结论gydF4y2Ba

本研究提出了一种新颖的变换方法来取代现有的程序生成的语音助理与高性能机器内部程序通过GPT-2合理。特别是,本文介绍了理论估算至少在统计推断的生成程序需要以保证最好的可以成立。因此,在绩效评估方面,平均减少了32.71%,新生成的代码行数和平均程序的执行时间下降了24.34%。这证明了系统不仅能快速生成程序,还大大提高程序执行的性能。在未来,我们正在寻找发展的一种新方法来加速数据检索的语义数据库并找到修改Simhash和最长公共子序列(LCS)来获得更好的计量准确度的代码相似度和程序执行结果的一致性。gydF4y2Ba

数据可用性gydF4y2Ba

示例程序。r一个rdata used to support the findings of this study have been deposited in thehttps://drive.google.com/file/d/1KYDeoO9s8kA94U9-CW1AsdB0ZZNr4Hcy/view?usp=sharinggydF4y2Ba存储库。样例句子数据用于支持本研究的结果包括在本文中。gydF4y2Ba

的利益冲突gydF4y2Ba

作者宣称没有利益冲突。gydF4y2Ba

作者的贡献gydF4y2Ba

B.R.C. P.-W.S.构思和设计实验;H.-F.T.收集实验数据集和校对论文;和B.R.C.写道。gydF4y2Ba

确认gydF4y2Ba

这项工作是由科学技术部完全支持,台湾,中华民国,在格兰特数字最105 - 2221 - e - 390 - 013 - my3和大多数109 - 2622 - e - 390 - 002 - cc3。gydF4y2Ba