重磅消息:GitHub官方推出原生 AI 代码生成工具,堪称程序员的「小秘」
共 3367字,需浏览 7分钟
·
2021-07-04 12:45
loonggg
读完需要
速读仅需 3 分钟
大家好,我是校长。
这几天微软和 GitHub 推出了一款 AI 程序员智能插件,它自己会编程,会自动生成代码,有人说:
软件开发领域的「第三次工业革命」似乎正缓缓揭开序幕。
01
GitHub、OpenAI、微软联合打造了一个全新的代码生成 AI:GitHub Copilot ,堪称为程序员们送上的编程神器。
以后,我们再也不用面向搜索引擎编程了,未来或许我们也不需要再复制和粘贴了。
Copilot 目前作为 Visual Studio Code 插件,支持在本地或 GitHub Codespaces 上使用。
也就是目前我们可以在 VS Code 上安装这款插件,让它帮我们辅助编程,有人调侃目前 Copilot 就像是程序员的小秘书。
我们程序员这个工作真的是挺好的,累了有程序员鼓励师,现在写代码也来了智能小秘。照这个劲头发展下去,未来,我们程序员可能就被这么舒服的哄着,躺在舒适区丧失了编程技能,从而要被淘汰了,哈哈。
简单来说,Copilot 可以根据程序员的注释写代码,自动补全代码,提供与代码匹配的测试,还能生成多个备选方案的代码供选择。GitHub 表示,Copilot 生成的代码大部分是原创的。
是不是看着很厉害呢?
你确实没看错,它不仅可以自动补全代码,还可以根据你的注释,自动生成你所需要的代码,而且还可以根据你的测试需求,生成测试需要的代码。
02
我之所以说,Copilot 是我们程序员的小秘书,是因为 GitHub 给 Copilot 的官方定义是「AI 结对编程员」。「结对编程」(pair programming)是一种软件开发方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员。两个程序员经常互换角色。
GitHub 认为 Copilot 是进化版的「结对编程」,在未来帮程序员查缺补漏的,将会换成 AI。
目前,Github Copilot 作为 Visual Studio Code 插件,它适用于多种框架和语言,在 Python、JavaScript、TypeScript、Rudy、Go 几种语言上的表现格外突出。
1、它会自动补全,甚至会根据你的代码,提前猜测和预知你要写什么,帮你自动补全代码。
2、根据注释自动生成代码,什么意思呢?就是它能够根据你注释当中描述的意思生成你想要的代码,只需描述出你想要执行的命令,GitHub Copilot 就能自动为你组装代码。
而且,在注释中用简单的英语描述一个函数,Copilot 也可以将其转换为实际代码。
3、模仿能力也很强,可以根据你写的代码例子,快速生成模板和重复的代码。
4、根据测试包,匹配生成测试所需要的代码,就是你只要导入单元测试包,GitHub Copilot 就能给出与代码匹配的测试,真的是很牛逼啊。
5、既然能够做到自动补全和自动提示,当然了,人家也会在你写代码的时候,根据你写代码的情况,提供好几个备选方案的代码供程序员选择,看看哪个更符合你的要求,你就可以使用,减少你的代码量。
此外,据说 Copilot 还能辅导新手写代码,可以帮助他们找出错误、学习新框架,省去大量查资料的时间。
03
GitHub Copilot 由 OpenAI Codex 提供支持,可以理解为 GPT-3 的改进版。
科普一下 GPT-3,GPT-3 这个自然语言处理 AI 在去年就已经很出名了,被公认是继 AlphaGo 之后人工智能史上又一里程碑式的东西。
据说它在互联网上阅读了 5000 亿词,模型达到 1750 亿参数,从而变得很通用。
而 OpenAI 则是在 GPT-3 的基础上生成的 Codex 算法,Codex 在从 GitHub 那里提取出来的 TB(terabyte)级公开代码以及英语语言示例中得到训练。基于 Codex 算法,编程 AI Copilot 诞生了。
OpenAI Codex 对于人们的代码使用习惯有着广泛了解,而且它在训练中接触到的大量公共源代码数据集,所以在代码生成能力上远远超过 GPT-3。
GitHub Copilot 会把程序员给出的命令或代码发送到服务器,然后服务器使用 OpenAI Codex 来给出代码或建议。
根据官网所说,它是用数十亿行的代码训练后,才达到了现在的效果。
04
就目前来看,Copilot 提供建议的准确率似乎不高。
GitHub 对一组 Python 函数进行了基准测试,测试团队清除了函数并要求 Copilot 填充它们。模型在第一次尝试正确率是 43%,经过 10 次尝试后,正确率达到了 57%。团队表示,之后 Copilot 还将进行多次训练和测试,准确率会进一步提升。
据一些程序员的说法,这种自动生成的代码工具要「好用」有个前提,就是能精确描述了函数需要实现的功能,不然后续的调试会是更耗时的工作。所以,要想让 Copilot 好用,程序员的描述能力,文字功底要到家。
目前据 GitHub 内部的使用情况来看,GitHub 的数百名开发者在编码时,整天都在使用 Copilot 功能,他们中的大多数人都接受了 AI 的建议,没有关闭该功能。
所以,GitHub Copilot 能达到的效果还是十分可观的,许多用过的程序员都说好。
就目前释放的功能来看,取代程序员还是不太现实,但是未来取代初级程序员我感觉还是很有可能的。
但是,对于我们程序员来讲,现在的 Copilot 绝对是一个好帮手,程序员的好秘书。因为,有了它,我们可能再也不要面向搜索引擎编程了,再也不用去 StackOverflow 找答案,去复制粘贴了。
我们都知道,我们程序员很大一部分的时间和精力都浪费到面向搜索引擎,面向 Google 编程上了,大量的在网上复制和粘贴代码。
有了 GitHub Copilot ,真的是可以大大提高我们程序员的生产力。
就目前来讲,是一个好事。
但是,在未来,随着科技的发展,我感觉可能有点不妙,至少初级程序员的生存空间可能就没有了。但是高级程序员应该会很高兴,有了它效率大大提高了,可能拥有了它之后,就不用 996 加班了,可以提前下班了。
GitHub CEO Nat Friedman 在 Hacker News 写道:
软件开发正迎来自己的『第三次工业革命』。第一次革命是编译器、调试器、垃圾收集器以及语言等工具的出现,极大提升了开发者的工作效率;第二次革命则以开源为契机,全球开发者社区得以汇聚起来,并在彼此的开发成果基础之上不断推进;第三次革命就在现在,业界尝试在编程当中使用 AI 技术。在发展成熟之后,开发人员的日常工作将有巨大改变 —— 但仍然有很多工作可做、也只能由人类开发者完成,因此不用太担心。
所以,通过 GitHub CEO 的话我们也可以看出,未来的程序员只有两种:
一种你只需要会操作就行,不需要你写,这种程序员就像是车间的操作工,身价会大大降低;
另外一种就是高级程序员,就像是解决难题的技术专家,这事 AI 干不来,只能人来,就像是车间的那种老师傅,少林寺的扫地僧。这种人的价值由于 AI 的帮忙,效率会大大提升,价值也会大大增加。
你们认为呢?
安装地址:https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
最后,推荐一下,我刚刚做的一个新的公众号「涩郎」,只分享知识类, 认知类的文章,都是高质量的干货,目前已经更新了很多文章了,最近几篇如下: