0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Facebook的AI研究团队开发了一种神经转编译器

倩倩 来源:文财网 2020-07-22 15:23 次阅读

仅一周多的时间,您中的大多数人就会听说Facebook的AI研究团队(FAIR)开发了一种神经转编译器,该代码使用“无监督翻译 ” 将高级编程语言(如C ++,PythonJava,Cobol)的代码转换为另一种语言。传统的方法是标记源语言并将其转换为抽象语法树(AST),反编译器将根据定义翻译的手写规则(例如抽象或上下文)将其用于转换为所选的目标语言。没有丢失。

在过去的几十年中,神经语言翻译取得了如此重大的进步,以至于尽管只有足够的并行语料库才是唯一的限制,但是这些神经模型往往要比硬编码的手写规则好得多。

这已通过“无监督的ML翻译”方法得到了更大程度的解决,其中Facebook的研究团队使用了来自Github的不同编程语言的大量单语源代码库来训练模型。

这使许多组织感到宽慰,尤其是在保险,政府和银行部门,他们继续使用旧版应用程序,而这些应用程序几乎没有增强或微调的空间,因为它们是由真正熟练的程序员在过去的美好时光中编写的— COBOL ,Pascal,Fortran等。

尽管编程语言已经随着时间的流逝而发展,但是从一种代码库移植到更高效或更现代的语言(如Java,Swift,Ruby,python)却是真正的痛苦,因为它需要源语言和目标语言方面的专业知识。例如,有报道称,澳大利亚联邦银行花费了高达7.5亿美元,并在五年内将其核心软件从大型机上的COBOL迁移到了现代平台上。

基于规则的翻译实现起来很复杂,灵活性和解释性较差。Facebook的Transcoder可以解决长期存在的问题。

FAIR代码转换器的主要组件

FAIR转码器基于一种变压器架构,包括一个编码器和一个解码器,基于“注意就是您所需要的”论文。FAIR转码器依赖于单个模型进行编码和解码,并且基于3个原理:

屏蔽语言模型预训练

去噪自动编码

回译

1. 屏蔽语言模型预训练

掩蔽语言预训练模型基于BERT论文,该模型训练编码器从源代码中识别出掩蔽标记。训练编码器以理解编程构造,以便在屏蔽某些令牌时识别丢失的令牌并对其进行重构。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33073
  • 源代码
    +关注

    关注

    94

    文章

    2927

    浏览量

    66063
  • ML
    ML
    +关注

    关注

    0

    文章

    139

    浏览量

    34294
收藏 人收藏

    评论

    相关推荐

    C语言:嵌入式开发中的关键编译器角色

    嵌入式程序开发跟硬件密切相关,需要使用C语言来读写底层寄存器、存取数据、控制硬件等,C语言和硬件之间由编译器来联系,一些C标准不支持的硬件特性操作,由编译器提供。
    发表于 04-26 14:53 20次阅读
    C语言:嵌入式<b class='flag-5'>开发</b>中的关键<b class='flag-5'>编译器</b>角色

    FPGA在深度学习应用中或将取代GPU

    ,也正积极的为其开发专用的 AI 硬件,用于自己的云产品和边缘计算产品环境中。 神经形态芯片 方面也有着些发展,这是一种专门为
    发表于 03-21 15:19

    怎么在NanoEdge AI Studio设定交叉编译器呢?

    我使用的是NanoEdge AI Studio v4.3.1,跟着官方交教程生成了库libneai.a,我通过metadata.json文件得知生成这个库的交叉编译器版本是\"
    发表于 03-07 06:28

    QT开发学习笔记1(安装交叉编译器

    QT安装交叉编译器
    的头像 发表于 02-18 10:02 354次阅读
    QT<b class='flag-5'>开发</b>学习笔记1(安装交叉<b class='flag-5'>编译器</b>)

    韩国研究团队开发了一种在石墨烯层上生长柔性GaN LED阵列的方法

    外媒消息,韩国首尔国立大学与成均馆大学的研究团队联合开发了一种在石墨烯层上生长柔性GaN LED阵列的方法,通过该技术研究
    的头像 发表于 12-18 10:07 549次阅读

    韩国开发了一种在石墨烯层上生长柔性GaN LED阵列的方法

    12月11日,外媒消息,韩国首尔国立大学与成均馆大学的研究团队联合开发了一种在石墨烯层上生长柔性GaN LED阵列的方法,通过该技术研究
    的头像 发表于 12-13 16:06 437次阅读
    韩国<b class='flag-5'>开发了</b><b class='flag-5'>一种</b>在石墨烯层上生长柔性GaN LED阵列的方法

    编译器的优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 405次阅读
    <b class='flag-5'>编译器</b>的优化选项

    新版编译器的设计思路和优化方法

    小程序编译器在小程序开发、预览、发布各个阶段都需要使用,因此编译器性能会直接影响到开发开发效率,也会影响到
    发表于 10-13 11:21 149次阅读
    新版<b class='flag-5'>编译器</b>的设计思路和优化方法

    attiny24可以用什么编译器开发

    attiny24a可以用什么编译器开发,如果用arduino IDE开发,那么isp固件怎么烧写,手上有个usbisp下载
    发表于 10-13 08:29

    嵌入式开发中的C语言编译器设置

    编译器的语义检查很弱小,甚至还会“掩盖”错误。现代的编译器设计是件浩瀚的工程,为了让编译器设计简单一些,目前几乎所有编译器的语义检查都比较弱小。为了获得更快的执行效率,C语言被设计的足
    发表于 10-11 12:43 280次阅读

    AI加速架构设计与实现》+第章卷积神经网络观后感

    AI加速架构设计与实现》+第章卷积神经网络观感    在本书的引言中也提到“图胜千言”,读完第
    发表于 09-11 20:34

    Arm Fortran编译器开发人员和参考指南

    提供帮助您使用Arm®编译器Linux版的Arm®Fortran编译器组件的信息。Arm®Fortran编译器款自动向量化的Linux用户空间Fortran
    发表于 08-10 07:11

    SDCC-Linux下的51 MCU编译器

    SDCC (小型设备C编译器)是为8位微控制器开发的免费C编译器。尽管兼容多种不同体系结构,但SDCC C编译器更适合8051内核。 SDCC是命令行固件
    的头像 发表于 06-16 15:19 3654次阅读

    米尔瑞萨RZ/G2L开发板 安装交叉编译器

    米尔瑞萨RZ/G2L开发板安装交叉编译器
    的头像 发表于 05-26 22:05 1711次阅读
    米尔瑞萨RZ/G2L<b class='flag-5'>开发</b>板 安装交叉<b class='flag-5'>编译器</b>

    R32C/100系列C编译器包V.1.01 C编译器用户手册

    R32C/100系列C编译器包V.1.01 C编译器用户手册
    发表于 04-28 19:54 1次下载
    R32C/100系列C<b class='flag-5'>编译器</b>包V.1.01 C<b class='flag-5'>编译器</b>用户手册