当前位置:首页 > Java知识 > 正文内容

超时空星舰AI程序编写(ai代码生成器)

abcsky884个月前 (01-26)Java知识49

本篇文章给大家谈谈

还记得美国前一阵要招聘60岁的老程序员吗?都怪编程语言发展太快!因为新冠疫情的缘故,美国一些地区的失业救济系统不堪重负,而这些系统都是上古语言COBOL写的。

超时空星舰AI程序编写(ai代码生成器)

打开凤凰新闻,查看更多高清图片然而,现在早已经是C/C++、Java、Python的天下了,把COBOL程序换成Python,何其难也远的不说,Python 2刚刚淘汰,过去的老程序手工转成Python 3也是个很大的工程。

既然AI能翻译自然语言,那也应该能翻译编程语言。Facebook也是这么想的,所以他们最近提出了TransCoder,一个翻译编程语言的AI,现在可以在C++、Java、Python语言之间互译。

经翻网站推广推广译后的程序,成功运行的通过率最高可以达到80.9%而且TransCoder是一种无监督学习算法,意味着不需要大量成对的、标记的编程代码数据集进行训练如果这项技术达到实用化程度,对广大程序员来说真是巨大福音啊!。

难怪论文作者之一Guillaume Lample在Twitter上宣布了这篇论文后很快引起了热议。

翻译编程语言,什么原理?TransCoder充分利用了编程语言的特点,比如像for、while、if这些关键词以及通用的数学运算符下图展示了C++、Java和Python关键字的嵌入在相似的上下文中使用的不同编程语言的关键字在嵌入空间中非常接近。

例如,Python中的except和Java、网站推广推广C++中的catch都用于获取异常,它们被映射到非常相似的嵌入空间位置对于映射的实现(map和dict)、用于将字符串转换为字符数组(c_str和toCharArray)以及类似的变量类型(例如long、int和Integer),也可以观察到相同的现象。

那么以上这些关键词的嵌入是如何获得的?Facebook提出了实现无监督编程语言机器翻译的三个原则首先,通过跨语言掩码语言模型(MLM)预处理来初始化模型,这有些类似于自然语言的填空题结果是表达相同指令的代码片段被映射到与编程语言无关的相同表示。

其次是去噪自动编码,它能训练解码器始终生成有效序列,即使在输入有噪声的数据时也是如此,提高了编码器对输网站推广推广入噪声的鲁棒性最后是反向翻译,它允许模型生成可用于训练的并行数据每当Python转C++模型变得更好时,它就会为C++转Python模型生成更精确的数据,反之亦然。

通过以上步骤,TransCoder在训练后获得了之前提到的跨语言嵌入我们观察到,TransCoder成功地理解了每种语言特有的语法、数据结构、函数库和方法在上面的图中,展示了Java和C++独有的三元运算符。

X ? A : B,翻译到Python中就变成了if X then A else B以下是一个从Python翻译到C++的实例TransCoder推断变量和函数返回值的类型,将Python的deque()容器映射到C++中类似的网站推广推广实现deque<>,并使用C++的front、back、pop_back和push_back方法来检索和插入deque中的元素,而不是使用Python方括号、pop和append方法。

实验结果为了训练TransCoder,Facebook在GitHub上寻找了280万个开源代码库进行训练,其中包含数百亿个token。

然后去GeeksforGeeks平台去验证翻译成果,该平台是收集各类编码问题,并以多种编程语言提供解决方案和自然语言不同的是,代码翻译并不太要求逐字逐句的对照,因此翻译后的代码和参考代码的重合度其实很低,比如C++转Java的代码和Ground Truth仅有3.1%匹配。

另外NL网站推广推广P翻译中的BLEU也不宜作为代码翻译的衡量标准,因为这只能表示实际代码和参考代码之间的语法差异。因此需要一个新的度量标准——计算正确率,它表示翻译后的代码测试后是否能与参考代码有相同的输出。

以此为标准,C++转Java的代码的计算正确率为60.9%,而Java转C++的计算正确率为80.9%Facebook不是唯一开发AI代码生成系统的公司前不久微软Build大会上,OpenAI就演示了一个在GitHub数据上训练的模型,仅根据注释内容即可生成对应功能的代码。

TransCoder没那么智能,但是在计算机技术飞速发展的今天,谁知道下一个流行的语音是什么,有了TransCoder,至少让我们在移植网站推广推广代码的时候没那么难了也许美国社保系统的COBOL就靠它解决了

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://www.4blc.com/post/13130.html

分享给朋友:

“超时空星舰AI程序编写(ai代码生成器)” 的相关文章

gitlab4j-api与jgit(gitlab4j-api 合并请求列表)

本文分享给大家的是: 1 导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作GitLab简介GitLab环境搭建GitLab基本使用(组、权限、用户、项目) 2 Gi...

武汉java工程师培训机构(武汉java工程师培训学校)

今天给各位分享 互联网在不断的发展,企业中有很多项目都用到java开发技术,这也使得市面上相关java开发的岗位在逐渐的增多,同时,在这种开发市场不断发展的状态下,java培训市场也在不断的发展,有很多的小伙伴为了能够学习到更为系统的java开发技术知识,选择培训的方式来学习开发技...

java中jvm的原理(jvm原理图)

本文分享给大家的是: JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识。先上图: JVM必备知识1、JVM基本概念1.1、JVM是什么JVM 的全称是 「Java Virtual Machine」,也就是我们耳熟能详的 Java 虚拟机J...

java 面经手册(java面试经验)

本篇文章给大家谈谈 《对线面试官》是我一字字敲出来的,是我准备跳槽时按照自己的思路撰写而成它不会花长的篇幅讲述基础API相关的知识,会着重讲解重点高频率面试题,又或是实际工作中如何使用这项技术的它模拟真实的面试场景,面试者实际的回答内容可能是怎么样的。 如果有看过的人,自然...

阿里P7到华为多少级(阿里P7到理想对应多少)

本篇文章给大家谈谈 今年初拿了个饿了么P7的offer,于此同时大家顺便看看我怎么途虎一轮游的废话不多说,直接上题吧一面首先上来就是自我介绍,简单的说下自己的项目经验,涉及的技术栈之类的然后每一轮必问的问题来了:说说你印象最深刻的项目!。 这个已经被问的都不想说了,挑个有很...

java入门到(java入门很简单)

本篇文章给大家谈谈 1) JAVA起源Java是Sun公司于1995年推出的高级编辑语言Java之父——詹姆斯·高斯林1996年Sun公司推出了Java开发工具包,也就是JDK1.0,提供了强大的类库支持1998年推出了JDK1.2,它是Java里程碑式的版本。 为了加以区...