GitHub Copilot 是一个 AI 代码合成器,并不是搜索引擎:它提出的绝大多数代码提议都是新天生的,此前从未出现过。简而言之,这就是未来。在项目开发中,优秀的代码主动补全东西可以提升工作效率。然而,传统的 IDE 基本都利用搜索要领进行补全,在一些场景下后果不佳。今日,GitHub 和 OpenAI 联合发布了新的 AI 代码补全东西 GitHub Copilot,并展示了手艺预览版。该东西可以在 VS Code 编辑器中主动完成代码片段,这也是 OpenAI 接受微软 10 亿美元投资以来的首个重大成果。
目前,GitHub Copilot 项目还只是严格的手艺预览版,用户可以在主页注册报名,将有机会访问试用。
GitHub Copilot 注册地址:https://github.com/features/copilot/signup对于 GitHub 和 OpenAI 推出的这款全新 AI 代码补全东西,网友们给出了极高的评价。下面这位用户大致可以代表大多数试用者的心声。ta 表示:「我利用 Alpha 版两周了,Copilot 似乎可能准确地知道我接下来要输入的内容,这令我大受震撼。有时它甚至提议我要查找的内容,例如选择随机十六进制随机码的片段或者利用所有常见图像 mime-types 完成数组。此外,Copilot 在处理 React 组件时也特别有用,可以做出非常准确的预测。最后,Copilot 改变了程序员记录自己代码的方式。如果你在兑现代码之前编辑了非常好的描述性诠释,它可能更好地给出正确代码提议,有时甚至可以为你编辑整函数。」
MSFTResearch 高级研究员 Alex Polozov 更是表示:不夸张的讲,Copilot 将成为本世纪 20 年代排名前三的手艺进展!
甚至有网友表示:这是要终结编程?
不过,虽然利用者对 Copilot 提供的生产力提升赞不绝口,GitHub 也表示:并不是所有利用的代码都经过了漏洞、不安全实践或个人数据的审查。因此,他们也设置了一些过滤器来防止 Copilot 天生攻击性的谈话,并可能后果并不完美,需要后续完善。Copilot 背后的手艺首先,训练数据上,GitHub Copilot 是在数十亿行公共代码上训练的。
从手艺角度来看,GitHub Copilot 东西由 OpenAI 开发的全新 AI 系统 OpenAI Codex 提供支持。OpenAI 的联合创始人兼首席手艺官 Greg Brockman 说:Codex 是 GPT-3 的后代。
OpenAI Codex 在人们如何利用代码方面拥有广泛的知识,并且在代码天生领域显著优于 GPT-3 了,部分原因在于该系统是在包含大量公开源代码的数据集上训练的。更具体地,Codex 的训练集中包含了提取自 GitHub 的 TB(terabyte)级公开可用代码以及英语谈话示例。由于是在公开可用源代码和自然谈话上训练,Codex 可以同时理解编程谈话和人类谈话。因此,在整个兑现过程中,Copilot 编辑器扩展将开发者的诠释和代码发送至 Copilot 服务端,然后利用 Codex 天生和提议单行代码和整个函数。
此外,据 OpenAI 的一位代表透露:OpenAI 计划今年夏季推出基于其 API 的 Codex 版本,这样开发者们就可以利用该手艺创建自己的 app 了。在具体兑现中,GitHub Copilot 从编辑的代码中提取上下文,并给出整行代码或整函数的提议。该东西可以帮助开发者快速发现解决问题、编辑尝试和搜索全新 API 的替代要领,而不需要在网上繁琐地定向搜索答案。另外,利用 GitHub Copilot,开发者始终可以掌控一切,既可以循环查看 Copilot 给出的代码提议,选择接收或者拒绝,并可能手动地编辑这些代码。Copilot 会适应开发者所做的编辑,并适配编码风格。GitHub Copilot 适用于多种框架和谈话,但本次展示的手艺预览版尤其适用于 Python、JavaScript、TypeScript、Ruby 和 Go 谈话。GitHub 认为该东西是结对编程(pair programming)的重大进展,程序员在编辑代码时有了一个「虚拟的帮手」,它可以捕捉到程序员的错误,加速开发过程。那么,Copilot 后果如何?最近,Github 针对一组在开源存储库中具有良好尝试覆盖率的 Python 函数进行了基准尝试,尝试团队清除了函数体并要求 GitHub Copilot 填充它们。模型在第一次尝试正确率是 43% ,经过 10 次尝试后,正确率达到了 57%。之后 GitHub Copilot 还将进行多次训练和尝试,准确率会进一步提升。下面,我们就看一下 GitHub 给出的具体 demo 展示。Copilot 的补全后果相比于市面上一些编程辅助东西,Copilot 的上下文理解能力要强大得多。无论是在文档字符串、诠释、函数名还是代码主体中,Copilot 都能根据编程者已写出的上下文天生匹配的代码。先来看一下 Copilot 的主要功能——代码补全的后果,以 TypeScript 谈话为例,给出函数名和参数,Copilot 就能主动补全代码。
除了补全函数,Copilot 还能根据诠释写出代码。编程者给出一条描述代码逻辑的诠释,GitHub Copilot 就能主动天生代码:
在编程过程中,有些代码的格式和内容非常相似,重复编辑耗时且无聊。现在 GitHub Copilot 可能帮编程者解决这个问题,将简单重复的代码编辑部分主动化:
在软件开发的过程中,除了编辑代码,软件尝试也是非常重要的,对一个代码项目起到支撑的作用。导入一个尝试包,其余的尝试代码 GitHub Copilot 就可能帮开发者完成。
在编程中,同一个函数常有多种兑现要领,编程者通常会根据代码的兑现后果和运行性能选择最合适的要领。编辑多种兑现需要花费时间和精力,现在利用 GitHub Copilot 一键就能搞定,如下图所示,点击 Next 和 Previous 就能查看多种兑现要领,点击 Accept 选中其中一种。
今天 GitHub 推出的 Copilot 手艺预览版本,还仅限于 Python、JavaScript、TypeScript、Ruby 和 Go 谈话。此外,开发团队表示,在努力使其变得更好的同时,GitHub Copilot 补全的代码应该像其他任何代码一样经过仔细审查和尝试。这些仍需要人类编程者的监督和优化,但 AI 主动编程的愿景已指日可待。参考链接:https://github.blog/2021-06-29-introducing-github-copilot-ai-pair-programmer/https://news.ycombinator.com/item?id=27676266https://www.reddit.com/r/MachineLearning/comments/oaambv/n_github_and_openai_release_copilot_an_ai_pair/https://www.theverge.com/2021/6/29/22555777/github-openai-ai-tool-autocomplete-code
原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/34741