和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

标签: 人工智能学术 | 发表时间:2021-06-30 16:02 | 作者:
出处:https://www.leiphone.com

作者 | 琰琰、青暮

比GPT-3更强大!

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

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


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

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

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


1

给力的结对编程伙伴

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/


2

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可提供一些必要代码的选项。


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.htmlhttps://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 结对编程 openai] 推荐:

和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

- - 雷锋网
昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为程序员自动编写下文代码. GitHub 的首席执行官 Nat Friedman 介绍说,GitHub Copilot是结对编程的虚拟版本. 结对编程是一种常见的敏捷软件开发技术——即两个开发人员在同一个项目上并肩协作,轮流编写代码并检查合作伙伴的输出.

AI攻破Dota2!马斯克OpenAI版“阿尔法狗”完胜最强人类选手,马斯克:这可比围棋难多了

- -
8 月 11 日,人工智能又给人类带来了惊喜,伊隆·马斯克(Elon Musk)旗下的人工智能研究机构 OpenAI 宣布他们所打造的一个 AI 机器人已经在电子竞技游戏 Dota 2 中击败了一个名为 Dendi 的人类职业玩家,而比赛所采取的形式也是很直接的 1v1. 双方约定好共进行三轮比赛,在第一场比赛中,人工智能在不到十分钟的时间内闪电击败对手;第二场比赛同样也是由人工智能取得了胜利;而这直接导致了 Dendi 放弃进行第三场比赛.

AI vs AI--当AI与自己聊天

- Tim - Solidot
Shawn the R0ck 写道 "最烦人的事情之一莫过于被强迫与一个白痴对话. 但当你发现你最讨厌与之交谈的白痴其实就是你自己的基于人工智能程序的拷贝...康奈尔创造性机器实验室决定看看当AI尝试跟自己交谈会发生什么. 他们的健谈的AI程序Cleverbot与自己进行文本交互,之后朗读出文本并且显示到视频中.

OpenAI团队成员都是谁

- -
「OpenAI团队成员都是谁,出乎意料吗. 」 新版 GPT-4 就要来了,据说很强大. 附图是ChatGPT的创建者OpenAI团队:(左起)首席执行官萨姆·奥特曼,首席技术官米拉·穆拉蒂,总裁格雷格·布罗克曼,以及首席科学家伊利亚·苏茨科弗. 首席执行官萨姆·奥特曼(Samuel H. Altman):1985年出生于芝加哥,犹太人,他十岁时出柜为男同性恋,他曾在斯坦福大学学习计算机科学,2005年退学创业.

基于OpenAI的代码编辑器:Cursor

- - 程序猿DD
最近随着OpenAI的一系列大动作,把软件领域搅的天翻地覆. 各行各业各领域,都出现了大量新产品. 开发工具领域首当其冲,各种新工具层出不穷,今天TJ就给大家推荐一个全新的开发工具:Cursor. 从官网介绍可以看到,Cursor基于OpenAI实现,继承了最新的GPT-4模型,支持Mac、Windows、Linux三大平台.

敏捷结对编程实践

- - 技术改变世界 创新驱动中国 - 《程序员》官网
本文主要从提升项目质量、促进知识传递及减少项目风险等角度出发,讲述作者所在团队在结对编程实践中的一些经历,以及如何避免或减少其所带来的负面影响. 也许你还未曾尝试甚至还不曾了解,那么我们一起来学习和了解敏捷结对编程实践,相信对敏捷感兴趣的你会有收获. 结对编程(Pair Programming)是一种敏捷软件开发实践,指两个程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘和鼠标一起工作.

转:结对编程的误区

- - 膘叔
结对编程在我们现在的工作中真的没有使用这玩意. 极限编程也没有用到,我们还是安稳的在一步一步的开发. 其实,在07年的时候,那时候和一哥们就尝试过结对,效率确实上升了不少,但后来仔细想想,正由于两个人水平相近,这样的结对却没有真正带来了效率上升,反而还不如两个人单独开发,事后合并代码. 虽然有一些BUG,但总体代码却多写了很多.

结对编程——我的噩梦

- - 博客园_知识库
   英文原文: Pair Programming - My Personal Nightmare.   自从 极限编程诞生起,我就一直在听说结对编程是个 好东西. 所有的敏捷传教士们都在告诉我们:结对编程能提高代码质量,有助知识共享,甚至激发开发效率,同时,还能深度拉近程序员之间的感情关系(参看 拥抱编程).

OpenAI关于Kubernetes集群近万节点的生产实践

- - Indagate
OpenAI已经将Kubernetes集群规模扩展至7500个节点,为大型神经网络模型(如GPT-3,CLIP和DALL·E)及小型实验性研究提供了可扩展的基础架构. 很少将单个Kubernetes集群扩展到如此规模,为此进行了一些必要的改进,但好处是单一的基础架构使我们的机器学习研究团队可以在不修改代码的前提下,快速扩展以缩短实验时间、加速研发进度.

如何评价OpenAI的超级对话模型ChatGPT? - 知乎

- -
有幸参与ChatGPT训练的全过程. RLHF会改变现在的research现状,个人认为一些很promising的方向:在LM上重新走一遍RL的路;如何更高效去训练RM和RL policy;写一个highly optimized RLHF library来取代我的. dataset的质量、多样性和pretrain在RLHF的比重很重要.