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

电子说

1.2w人已加入

描述

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

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

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

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

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

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

  FAIR代码转换器的主要组件

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

  屏蔽语言模型预训练

  去噪自动编码

  回译

  1. 屏蔽语言模型预训练

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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分