写点什么

AI 驱动的编码工具“CodeT5”来了:一种可以实时理解和生成代码的机器学习模型

  • 2021-11-16
  • 本文字数:1307 字

    阅读完需:约 4 分钟

AI驱动的编码工具“CodeT5”来了:一种可以实时理解和生成代码的机器学习模型


图片来源:https://blog.einstein.ai/codet5/

人工智能驱动的编码工具,使用机器学习算法来根据输入数据生成代码,吸引了越来越多的关注。理论上,这些系统可以减少编写代码所花费的时间以及计算和运维成本,并且输出最少的错误。


然而,目前的编码预训练系统存在许多挑战。这些方法要么严重依赖一种类似 BERT 的编码器模型,要么严重依赖一种类似 GPT 的解码器模型。无论哪种方式,它都不是生成和理解任务的最优选项。例如,当用于代码摘要之类的任务时,CodeBERT 需要一个额外的解码器。除上述问题外,大多数现有方法都采用传统的 NLP 源代码预训练技术,将其视为自然语言(NL)中的标记序列。这在很大程度上忽视了编程语言中存在的丰富的结构信息,这对于充分理解其语义至关重要。


Salesforce 团队已经创建并开源了一种新的标识符感知统一预训练编码器 - 解码器模型,称为 CodeT5。到目前为止,他们已经在多个与代码相关的下游任务中展示了最先进的成果,例如跨多个方向的理解和生成,包括 PL 到 NL、NL 到 PL,以及从一种编程语言到另一种编程语言。


CodeT5 构建在与谷歌的 T5(文本到文本传输转换器,Text-to-Text Transfer Transformer)框架类似的架构上,但具有更好的代码理解能力。它提出了自然语言处理任务的统一模型。它将文本重新格式化为文本,其中输入和输出都是文本字符串。这允许任何任务应用到这个模型。



图片来源:https://blog.einstein.ai/codet5/

CodeT5 的研究团队有 835 万多个例子可以用来训练人工智能,包括来自开源 GitHub 代码库的用户写的评论。在训练期间,拥有 2.2 亿个参数的 CodeT5 的最大、功能最强的版本,在 16 个 Nvidia A100 GPUs 和 40GB 内存的集群上花费了 12 天时间。


CodeT5 在代码智能基准 CodeXGLUE [3] 中的 14 个子任务上实现了最先进的(SOTA)性能,如下表所示。



图片来源:https://blog.einstein.ai/codet5/


在 CodeT5 的应用方面,Salesforce 团队计划使用它为 Apex 开发者构建一个人工智能驱动的编码助手。下面,你可以看到一个具有三种编码智能功能并由 CodeT5 支持的编码助手示例:


  • 文本到代码生成:它可以根据自然语言描述生成代码

  • 代码自动补全:给定目标函数名,可以补全函数的完整代码

  • 代码摘要:它可以用自然语言描述生成一个函数的摘要


尽管 Salesforce 的 CodeT5 具有所有的优点和功能,但研究人员承认,它的一个主要缺点是,它可以从用于训练的数据集中的文本注释对种族或性别等刻板印象进行编码。


论文链接:https://arxiv.org/pdf/2109.00859.pdf

代码链接:https://github.com/salesforce/CodeT5

来源链接:https://blog.einstein.ai/codet5/


作者介绍:

Asif Razzaq 是 Marketpost,LLC 的编辑和联合创始人。他是一名人工智能科技记者和数字健康业务战略家,拥有丰富的医疗设备和生物技术行业经验,在健康应用程序、人工智能和数据科学的开发方面拥有令人羡慕的投资组合。作为一名精明的企业家,Asif 成功地将初创企业从初创阶段发展为盈利企业,从而使自己成为一名杰出的初创企业专业管理人士。


原文链接:

https://www.marktechpost.com/2021/09/08/salesforce-open-sources-codet5-a-machine-learning-model-that-understands-and-generates-code-in-real-time

2021-11-16 15:072451
用户头像
李冬梅 加V:busulishang4668

发布了 578 篇内容, 共 214.3 次阅读, 收获喜欢 752 次。

关注

评论

发布
暂无评论
发现更多内容

手写一个react,看透react运行机制

flyzz177

React

再快一点?Web 3动态内容如何加速?

Java全栈架构师

程序员 程序人生 Web 后端 架构师

架构实战营 - 写出外包学生管理系统的架构文档

huiwen

架构实战营

中国北京|HICOOL 2023 全球创业大赛

科兴未来News

Hicool 海外 #双创赛事#

如何导入本地数据?

Towify

时序数据库 TDengine 携手北京科技大学设计研究院,助力冶金工业智慧化

TDengine

数据库 tdengine 时序数据库

灵活高效又美丽,谈谈我们的产品体验升级思路

嘉为蓝鲸

自动化运维 嘉为蓝鲸 IT服务管理中心

极盾科技CEO丁杨:让数据安全回归场景、业务和价值

极盾科技

数据安全

vivo 实时计算平台建设实践

vivo互联网技术

大数据 flink 实时计算

阿里巴巴内网Spring Cloud Alibaba 强势来袭,开创微服务的新时代

架构师之道

Java 微服务 架构师

深入React源码揭开渲染更新流程的面纱

flyzz177

React

NFTScan 与 MintKit 达成战略合作伙伴,由 NFTScan 为其提供 NFT API 数据服务

NFT Research

NFT 数据基础设施

研运至简,创新无限!嘉为品牌VI全新升级

嘉为蓝鲸

自动化运维 嘉为蓝鲸 品牌升级

语音社交App系统源码中语音厅App搭建之开宝箱游戏机制说明以及技术文档

山东布谷科技胡月

语音直播源码 语音社交软件 语音直播app 语音厅平台搭建 语音聊天APP源码

如何用弹出对话框实现登录页非空提示?

Towify

小游戏引擎选型注意事项

FinFish

游戏 小游戏 小游戏引擎

高性能且小巧的脚本语言 LuaJIT

ooooooh灰灰

lua 后端 JIT 网关

融云获 2022 中国技术先锋年度评选「中国技术品牌影响力企业」奖

融云 RongCloud

Jupyter Notebook入门指南

京东科技开发者

前端 服务端 Server 多编程语言 企业号 1 月 PK 榜

深度分析React源码中的合成事件

flyzz177

React

软件测试 | 简历中应该如何描述才能体现出软技能的实力 ?

霍格沃兹测试开发学社

中台KPI怎么设计?

博文视点Broadview

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(2)

TiAmo

数据库 Java、 JDBC

机器学习服务活体检测算法荣获CFCA权威安全认证

HMS Core

HMS Core

隐私计算技术开源的整体现状

京东科技开发者

开源 经验分享 隐私计算 隐私安全

AI驱动的编码工具“CodeT5”来了:一种可以实时理解和生成代码的机器学习模型_文化 & 方法_Asif Razzaq_InfoQ精选文章