OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

观点
2021
06/30
18:38
亚设网
分享

6 月 30 日消息 比 GPT-3 更强大!昨日,微软与 OpenAI 共同推出了一款 AI 编程工具 GitHub Copilot,这款工具基于 GitHub 及其他网站的源代码,可根据上文提示为程序员自动编写下文代码。

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

一、给力的结对编程伙伴

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

项目地址:https://copilot.github.com/

二、Copilot,专为编程而生

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

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

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

三、网友讨论

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

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

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

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

OpenAI 与微软 GitHub 联手推出 AI 代码生成工具,实现结对编程

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表亚设网的观点和立场。

2.jpg

关于我们

微信扫一扫,加关注

Top