脸书的 TransCoder 通过 AI 实现编程语言之间的转换,你是否感到饭碗将要不保?
脸书的研究人员宣布,他们开发了一种神经变译器(neural transcompiler)系统,可以将一种高级编程语言的代码转换成另一种,比如将 C++,Java 或 Python 转换成另一种。这个转换过程无需人为监督,可自动搜寻前一种语言中未标注的数据集模式,其效果大幅地好于基于规则的转换。
从当前的代码库转换成另一种先进的高效的语言,比如从 Java 或 C++ 转换成另一种语言,通常代价高昂,因为需要专家同时精通源语言和目标语言。之前,澳洲联邦银行就花费了7.5亿美元耗时五年将他们的平台从 COBOL 升级为 Java。
脸书的 TransCoder 系统可以在 C++,Java 和 Python 之间互翻,智能学习,无人监管。TransCoder 初始化时,进行跨语言的模型关联性分析,在不同语言中找到具有映射关系的代码片段,即相通的指令实现相同的表现。源语言的代码被随机的“遮住”,TransCoder 的任务就是基于上下文推断出被“遮住”的部分。去燥自动编码的过程训练系统生成有效的序列,即使输入的是噪点数据。同时,回译(back-translation)使得 TransCoder 可以生成平行数据用于训练。
脸书的研究人员用 GitHub 的语料库,即280多万个代码库训练 TransCoder,实现“函数”级别的转换。“TransCoder 不需要任何专业知识,就可以很容易地运用到任何编程语言中,大幅提升在商用解决方案中的表现。我们的研究结果表明,模型产生的大量错误可以通过对解码器添加简单的约束很容易地修正,以确保生成的‘函数’在语法层面上是正确的,或者通过独立的架构来解决。”
脸书并非仅有的机构致力于开发 AI 生代码的系统。在今年早些时候的 Microsoft’s Build 大会上,OpenAI 演示了一个使用 GitHub 代码库来训练的模型,通过代码中的“英文注释”生成完整的“函数”。两年前,莱斯大学的研究人员创建了 Bayou 系统,可以通过关联代码背后的“意图(intents)”写出软件程序。
“事实上,这些系统尝试去做的,就是去除做软件时的各种琐碎” Intel 实验室的首席科学家 Justin Gottschlich 说,“它们可以帮助提高生产效率,由它们去关注程序中的 bug。可以提高就业,因为没有编程背景的人也能够用机器通过‘意向性界面’来捕捉和实现他们的创意了。”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
spring-data-redis中JedisCluster不支持pipelined问题解决
引言 了解Jedis的童鞋可能清楚,Jedis中JedisCluster是不支持pipeline操作的,如果使用了redis集群,在spring-boot-starter-data-redis中又正好用到的pipeline,那么会接收到Pipeline is currently not supported for JedisClusterConnection.这样的报错。错误来自于org.springframework.data.redis.connection.jedis.JedisClusterConnection: /* * (non-Javadoc) * @see org.springframework.data.redis.connection.RedisConnection#openPipeline() */ @Override public void openPipeline() { throw new UnsupportedOperationException("Pipeline is currently not supported for JedisClusterCo...
- 下一篇
2019 年热门开源项目的安全漏洞增加一倍
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 近日,安全公司 RiskSense 发布了一份名为“The Dark Reality of Open Source" 的报告。通过分析 54 个热门开源项目,这家公司发现这些开源项目中的安全漏洞数量在 2019 年增加一倍,从 2018 年的 421 个漏洞增加至 2019 年的 968 个。 据悉,该报告并不包括 Linux、WordPress、Drupal 等超级流行的免费工具项目,而是观察了其他流行的开源项目,它们虽然不是很出名,但却被技术和软件社区广泛采用,其中包括 Jenkins、MongoDB、Elasticsearch、Chef、GitLab、Spark、Puppet 等工具。 报告表明,2019 年公开披露的开源软件漏洞数为 968,相比 2018 年的 421 个漏洞,安全漏洞数量增长 130%。统计显示,从 2015 年到 2020 年(3 月)流行的开源项目累计有 2694 个漏洞。 RiskSense 表示,它们从报告中发现的另一大问题是大量的安全漏洞在公开披露数...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7