OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

来源:AI科技评论

作者:琰琰、青暮

比GPT-3更强大!

昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为程序员自动编写下文代码!

GitHub 的首席执行官 Nat Friedman 介绍说,GitHub Copilot是结对编程的虚拟版本。结对编程是一种常见的敏捷软件开发技术——即两个开发人员在同一个项目上并肩协作,轮流编写代码并检查合作伙伴的输出。


“它可以在编辑器中直接获提供多行或整个函数的代码建议。另外,随着时间的推移和使用量的增加,模型会变得越来越复杂,代码质量也会越来高。”

对于程序员来讲,一款编程工具最重要的当然是支持哪些类型语言。GitHub在预告中说,Copilot 可以支持十几种语言,与 Python、JavaScript、TypeScript、Ruby 和 Go 等主流语言配合效果更佳。

目前GitHub官网已经晒出了 Copilot 的功能介绍,我们来了解一下。

给力的结对编程伙伴

GitHub表示,相比大多数代码助手,GitHub Copilot可以理解更大范围的上下文。因此,无论是文档字符串、注释、函数名称还是代码本身,GitHub Copilot 都可以基于提供的上下文(已输入的代码)合成新代码以进行匹配。

如果真有如此可靠,那么正如GitHub所说,这项功能可以让程序员丢掉很多的文档阅读工作,从而专注于编辑器。

GitHub Copilot还可以将注释转换为代码。只需要写一条评论,描述想要的逻辑,GitHub Copilot 就能自动“理解”并写出相应功能的代码。

GitHub Copilot 也能自动填充重复代码。GitHub表示,GitHub Copilot 非常适合快速生成样板和重复代码模式。对于需要编写大量相似但难以转换为循环语句代码的程序员而言,这项功能非常“香”。

包办测试也是GitHub Copilot值得注意的亮点,GitHub表示,测试是任何强大的软件工程项目的支柱,“导入单元测试包,就可以让 GitHub Copilot 自动编写与你的实现代码匹配的测试。”

对于相同的上下文,GitHub Copilot可以给出多种解决方案,供程序员自主选择。

看到这里,小伙伴们是不是跃跃欲试了呢?可惜,GitHub Copilot不是完全开放的,和GPT-3一样,只提供有限用户的试用体验。总之,先排队吧。

项目地址:

https://copilot.github.com/

Copilot,专为编程而生

Brockman介绍说,GitHub Copilot的核心模型Codex借助了GPT-3强大的生成能力。

我们知道,GPT-3是OpenAI推出的超大规模自然语言生成模型,早期训练GPT-3时,OpenAI无意教它如何帮助编写代码,它更像是一种通用语言模型,主要用于文本生成、语法修改等任务。

后来OpenAI向公众开放API,这个基于文本训练的模型,被网友们玩出了50多种花样,其中包括自动生成代码。OpenAI意识到了GPT-3在编写代码方面的潜力,并在其网站上提供了在线“代码生成”服务。

几十年来,微软的研究人员一直在尝试如何教计算机编写代码,但未取得显著成果。此次与OpenAI合作,微软将提供了强大 Azure 云计算能力和GitHub平台(2018年被微软收购)的大量语言编程代码。

关于这款产品的代码生成质量,Friedman说,GitHub员工已经做了大量尝试,能够确保GitHub Copilot生成安全、高质量的代码。他说:“我们已经在系统中建立了一些安全机制,这些机制在减少各个领域能够显著减少出错几率。”也就是说,GitHub Copilot并不能保证完全不出错,它仍然只是一个辅助生成代码工具。

官网报道说,Copilot的底层技术属于微软和OpenAI共有,今年夏天OpenAI将发布Codex模型,供第三方开发者使用。微软也表示会发布该产品的一个版本,让企业通过培训了解自己的编程风格。但目前,微软只提供公共存储库中存储的代码的服务。

这不是微软第一次依靠OpenAI来提供智能软件。上个月,微软展示了powerapps Studio应用程序的更新服务,非技术人员可以使用它来编写应用程序——用户输入他们想要添加的元素单词,GPT-3可提供一些必要代码的选项。

网友讨论

GitHub Copilot的发布在Reddit上引发了热烈的讨论,不少网友看好编码自动化的产业趋势,网友@markbowick说道:

毫无疑问,这将极大地提高大多数程序员的日常编程生产力,并且(我认为)这将是推动全球软件影响呈指数增长的最重要步骤之一。

值得注意的是,GPT-J(GPT-3 较小模型之一的开源实现)在大量 GitHub 和 StackExchange 查询存储库上进行了训练,并且在特定编程相关任务上的表现明显优于 OpenAI 的其它模型。在接下来的几个月里,我预期会看到性能更好的类似的(更大)模型。

也有人提出了质疑,网友@laprika0表示,GitHub Copilot的测试方法令人担忧,“让 GitHub Copilot 建议与你的实现代码匹配的测试,但人们并不应该以这种方式写测试。”不少网友表示同意,并补充道,“如果实现代码有错误,那么GitHub Copilot将把错误引入测试中,从而影响测试效果。”

还有人则注意到关于代码所有权的问题,OpenAI发表了一项声明,表示用户使用GitHub Copilot写代码时,代码片段和建议结果将与 GitHub 和 OpenAI 共享,并用于诊断目的和改进建议。同时,为保护隐私,GitHub Copilot 不会使用用户的私有代码来为 GitHub Copilot 的其他用户推荐代码。

网友@touristtam对此声明感到困惑,“他们是否拥有在用户启用GitHub Copilot时编写的代码?”

参考链接:

https://www.cnbc.com/2021/06/29/microsoft-github-copilot-ai-offers-coding-suggestions.html

https://venturebeat.com/2021/06/29/github-launches-copilot-to-power-pair-programming-with-ai/

https://www.reddit.com/r/MachineLearning/comments/oaambv/n_github_and_openai_release_copilot_an_ai_pair/

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hanlp之理解用户自定义词典(java版本)

首先说明,由于本人水平有限,文章纰漏以及不妥之处还请指出,不胜感激; 理解hanlp中用户自定义词典(java) 什么是hanlp用户自定义字典?为什么要有用户自定义词典? 在Hanlp分词中&…

python-聚类图像分割

K-Means聚类图像分割 图像分割: 利用图像的灰度,颜色,纹理,形状等特征,把图像分成若干个互不重叠的区域,并使这些特征在同一区域内呈现相似性,在不同区域之间存在明显的差异性。然后&#xff0c…

科学家揭秘大脑靠“旋转”区分过去和现在,还给了个AI架构设计新思路 | Nature子刊...

来源:量子位 过去和现在的边界,到底在哪里?人类,又是如何在时间混沌中区分出过往与当下的?注意,这不是一个哲学问题。(手动狗头)而是科学家们的最新研究。两个普林斯顿的神经学家&am…

Hanlp中自定义词典的配置、引用以及问题解决

文章目录如何阅读本文?Hanlp用户自定义词典引用简介操作步骤环境创建编辑词典文件将用户自定义词典路径加入配置文件删除缓存文件如何阅读本文? 首先我们对Hanlp用户词典进行简介,推荐首先阅读链接文章,它是本文的第一来源&#…

有监督学习

有监督学习 利用一组带有标签的数据,学习从输入到输出的映射,然后将这种映射关系应用到未知数据上,达到分类或回归的目的。 分类:当输出为离散的,学习任务为分类任务。回归:当输出为连续的,学习…

深度学习助力网络科学:基于深度学习的社区发现最新综述

来源:AMiner科技论文题目:A Comprehensive Survey on Community Detection with Deep Learning论文网址:https://arxiv.org/pdf/2105.12584.pdf近日,澳大利亚麦考瑞大学计算机学院人工智能与数据科学实验室联合中科院数学与系统科…

Neo4j 图创建1 以BiliBili粉丝UP主之间的关系为例

基本关系图如下,不给出细节 其中所有粉丝名为杜撰,如有雷同纯属巧合 UP主对应关系为方便建库进行了主观处理,不代表真实情况 无商业用途,学习使用

CentOS7开放端口号

查看所有开放的端口号 firewall-cmd --zonepublic --list-ports 或者 firewall-cmd --permanent --list-ports(--permanent表示永久生效) 查询指定端口号是否开发 firewall-cmd --permanent --query-port8080/tcp 删除一个已经开放的端口号 firewall-cm…

Hinton,Lecun和Bengio三巨头联手再发万字长文:深度学习的昨天、今天和明天

来源:ACM编辑:Priscilla Emil2018年,ACM(国际计算机学会)决定将计算机领域的最高奖项图灵奖颁给Yoshua Bengio、Yann LeCun 和 Geoffrey Hinton,以表彰他们在计算机深度学习领域的贡献。这也是图灵奖第三次…

LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)

首先,逻辑回归是一个概率模型,不管x取什么值,最后模型的输出也是固定在(0,1)之间,这样就可以代表x取某个值时y是1的概率 这里边的参数就是θ,我们估计参数的时候常用的就是极大似然估计&#xf…

LSTM之父撰文,纪念这位图灵奖遗珠、“AI理论之父”

原文:1931: Kurt Gdel, founder of theoretical computer science, shows limits of math, logic, computing, and artificial intelligence作者:Jrgen Schmidhuber (知名 AI 学者,LSTM 之父)译者:刘媛媛摘…

Maven简述以及配置使用

目前的技术存在的问题(引入Maven的重要性) 一个项目就是一个工程; 如果项目非常庞大,就不再适合使用package来划分模块;最好是每一个模块对应一个工程,利于分工协作; 借助于Maven可以将一个项目…

依图科技终止上市审核:冲击科创板「AI第一股」失败

来源:机器之心AI 创业公司在国内市场 IPO 真就这么困难?7 月 2 日晚上交所消息,决定终止对依图科技首次公开发行存托凭证并在科创板上市的审核。依图的上市申请是于 2020 年 11 月 4 日被上交所依法受理的,其股票预计采用 CDR&…

神经网络-前向传播

前向传播神经网络搭建 1.tensorflow库搭建神经网络 参数:线上的权重W,用变量表示,随机给初值。相关介绍 tf.truncated_normal():去掉过大偏离点的正太分布tf.random_normal()正太分布tf.random_uniform():平均分布tf.zeros:全零数组&#x…

对汉诺塔递归算法的理解(图解,附完整代码实现)

前情提要: 首先说一下汉诺塔游戏的规则:如下图所示,有三个柱子A,B,C,我们要做的是把A柱的所有圆盘,全部转移到C柱上,转移时遵循的规则如下: 1、每次只能移动一个圆盘 2、所有的大圆盘必须在小圆盘的下面 过…

再会迪杰斯特拉(Dijkstra)

迪杰斯特拉算法 算法说明 迪杰斯特拉算法用来求解某一个起点到以其他所有点为终点的最短路径长度; 算法思路-贪心算法 以下图为例 指定一个节点(即起点),例如计算“A”到其他节点的最短路径;引入两个集合(S,U&…

数字孪生等前沿技术,将如何解码未来交通?

来源:物联网智库目前,国内在交通领域的技术创新层出不穷,交通出行领域已经成为创新科技聚集和爆发的领域。众多新科技的出现,正在给我们描绘出一幅未来交通的蓝图。在面向未来的诸多关于智慧交通的前沿应用和解决方案中&#xff0…

神经网络-反向传播

反向传播 反向传播---->训练参数,在所有参数上使用梯度下降。使NN模型在训练数据上的损失函数最小。损失函数(loss):预测值(y)与已知答案(y_)的差距。均方误差MSE:, …

第七章 二叉搜索树(b3)BST:删除

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/10247191.html