与AI结对编程式是什么体验 Copilot vs AlphaCode, Codex, GPT-3

Deepmind 的 AlphaCode 通过在前 54% 的人类编码人员中进行测试而成为头条新闻。GitHub 的 Copilot 能否跟上 AlphaCode 的自动化编程?
在这里插入图片描述
剑桥大学进行的一项研究表明,开发人员的大部分时间都花在了调试上。这项耗时的任务每年花费软件行业约 3000 亿美元。Deepmind 最新的基于人工智能的代码开发和分析工具通过自动化开发人员的日常和耗时的任务来降低此类成本。

与建议代码的GitHub Copilot相比,AlphaCode能够分析算法并生成具有竞争力的复杂程序,不仅没有错误,而且与其描述相对应。

DeepMind 的开发人员通过在竞争性编程网站上测试 AlphaCode 的潜力来测试它,在这些网站上,人类开发人员会遇到编程问题并根据他们的结果进行排名。

1. AlphaCode——自主程序员

AlphaCode 是一个基于Transformer的语言模型,由 414 亿个参数组成。它是一种语言模型,其大小是 GitHub Copilot 的语言模型Codex的四倍,只能解析 120 亿个参数。AlphaCode 的架构基于三个部分:

  1. 数据——人工智能工具由公共 GitHub 存储库提供数据。
  2. 学习——然后该工具对数据集进行训练,并根据任务要求对其进行校准(例如,Codeforces 的竞争性编程)。
    3。 抽样和评估——在这里,人工智能工具对每个问题的程序变化进行大规模抽样。然后通过过滤和聚类过程,将程序排列成 10 个解决方案的小子集,提交给外部评估。

在这里插入图片描述
图:AlphaCode 工作流程图 资料来源:deepmind.com

AlphaCode 的 AI 系统使用多种编程语言进行了预训练,包括 C++、C#、Go、Java、JavaScript、Lua、PHP、TypeScript、Ruby、Scala、Rust 和 Python。该数据集包含大约 715GB 的代码及其描述。

2. AlphaCode 经受考验

人工智能工具参加了 Codeforces 上的竞争性编码比赛,这是一个举办编码比赛的流行平台。该平台每周分享问题,并借助一种算法对参与者进行排名,该算法与用于对棋手排名的 Elo 评级系统类似。AlphaCode 选择了 10 个来自不同开发阶段的不同测试问题。人工智能工具在参加比赛的参与者中估计排名前 54%,从而证明 AlphaCode 的代码生成系统在竞争水平上取得了成果。AlphaCode 生成代码的能力在下面给出的 Codeforces 问题之一的示例中得到了证明:
在这里插入图片描述
图: AlphaCode 面临 的问题是,通过按退格键而不是书写来找出将一个短语转换为另一个短语的可能性。
在这里插入图片描述
图:AlphaCode 读取问题逻辑并生成符合预期的代码后生成的解决方案

Codeforces 的创始人Mike Mirzayanov表达了他的惊讶,他说:“我持怀疑态度,因为即使在简单的竞争问题中,通常不仅需要实现算法,而且(这是最困难的部分)发明它. AlphaCode 成功地达到了一个有前途的新竞争对手的水平。” Mike 进一步补充说:“我可以肯定地说 AlphaCode 的结果超出了我的预期。”

4. GPT-3 架构

实际上就是Transformer的Decoder
GPT-3 用了1750亿个参数训练
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4. GitHub Copilot 架构和性能

GitHub Copilot 是在GPT-3的肩膀上建立起来的Codex,增对Coding的NLP

Codex 架构
在这里插入图片描述

Codex的准确率远超GPT-3
在这里插入图片描述

OpenAI 的 AI 代码建议工具 GitHub Copilot 在自然语言处理 (NLP) 模型 Codex 上运行,该模型是 GPT-3 的增强版本。虽然它的构建是为了实现与 AlphaCode 相似的目标,但 Copilot 似乎前路艰难。以下是这两种代码生成工具之间的一些区别。

  1. 训练——GitHub Copilot 的 AI Codex 经过训练可识别 120 亿个参数,而 AlphaCode 的基于 AI 的代码生成模型使用 400 亿个参数进行训练。这将 AlphaCode 的性能提高了四倍。
  2. 建议与生成:虽然 GitHub Copilot 旨在帮助程序员编写基本的代码部分,但 AlphaCode 能够生成完整的复杂程序。
  3. 复杂性——虽然这两种 AI 工具都处于开发的初期阶段,但 GitHub Copilot 建议使用简单逻辑的基本代码,而 AlphaCode 经过测试以产生具有竞争力的复杂算法。

参考

https://analyticsindiamag.com/copilot-vs-alphacode-the-race-for-coding-supremacy/

https://arxiv.org/pdf/1907.05774.pdf

https://arxiv.org/pdf/2111.08489.pdf

https://arxiv.org/pdf/2107.03374.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值