这也是令许多工程师印象深刻的一点。有时Copilot仿佛预言家,能准确预判开发者接下来想输入什么,相当节省码字时间。
开发者可以写一个注释来描述自己想要的逻辑,让GitHub Copilot来生成代码。
GitHub Copilot还非常适合快速生成模板和重复的代码模式,给它提供几个示例,它就能自动生成余下的重复模式代码。
GitHub Copilot自动补全绘制散点图代码
GitHub最近对一组Python函数进行的基准测试显示,如果删除函数,并让GitHub Copilot来重新填充,首次尝试时,该模型的准确率为43%,尝试10次后,其准确率上升至57%,它一直在变得更聪明。
二、技术预览版试用名额有限,未来推商业产品根据项目网站,GitHub的数百名工程师每天都在编码时使用Copilot,这改变了他们的工作方式。
OpenAI联合创始人兼CTO Greg Brockman说,编程包括提出一个如何做某件事的想法,然后实现它,GitHub Copilot擅长第二部分。“你不想去阅读Twilio的API文档。它(Copilot)知道所有这些东西。这实际上相当可靠。”
“这可以让我不必为了用某个工具而查阅一大堆文档,这对提高工作效率非常有益。”微软首席技术官Kevin Scott亦称赞道。
“这是我见过的机器学习(ML)最令人兴奋的应用。”Instagram联合创始人Mike Krieger感慨说:“在第一天,GitHub Copilot已经教会了我Javascript对象比较的细微差别,并且和我一样适应我们的数据库模式。”
由于GitHub Copilot需要用到最先进的人工智能硬件,因此在技术预览期间,GitHub将为有限数量的测试者免费提供GitHub Copilot。如果技术预览版是成功的,下一步,GitHub拟构建相应的商业版本。
注册地址:https://github.com/features/copilot/signup
GitHub Copilot目前仅出现在微软的免费开源产品Visual Studio Code中,微软计划在未来将其纳入商业Visual Studio产品中。
三、幕后功臣:OpenAI GPT-3的后代CodexOpenAI是一家现在由Y Combinator总裁Sam Altman领导的研究公司。自Altman掌权以来,OpenAI已从非营利模式转向“有限盈利”(capped-profit)模式,接受了微软的投资,并开始授权其GPT-3算法。
GitHub Copilot基于一种名为OpenAI Codex的新型AI算法,借助了许多编程语言的大量代码和微软Azure云计算能力。
OpenAI Codex接受过从GitHub提取的数十亿行公开可用代码以及英语语言示例的训练,能将人类自然语言翻译成机器可理解的编程代码,Brockman将Codex描述为超大规模语言模型GPT-3的后代。
GPT-3是OpenAI的旗舰语言生成算法,参数规模达1750亿。它可以生成有时无法与人类书写区分的文本。GPT-3生成语言,Codex则生成代码。
这不是微软第一次借助OpenAI提供智能软件。上个月,微软展示了它将如何更新Power Apps Studio应用程序,非技术人员能借此来编写应用程序,用户可以输入描述他们想要添加元素的单词,并让GPT-3显示必要代码的选项。
OpenAI认识到在GPT-3中生成代码的潜力。它在网站上写道,提供GPT-3的在线服务可以处理“代码补全”(code completion)。
但Brockman说,当OpenAI刚开始训练该模型时,并没有打算教它如何帮助编写代码。它更像是一种通用语言模型,可以生成文章、修复错误的语法以及将一种语言翻译成另一种语言。
在接下来的几个月里,人们用这个模型做实验,看看它能做什么,有的很有用,有的则显得有些蠢。比如,一位工程师制作了一个网站,可以设计一个看起来像西瓜的按钮。Brockman联系了GitHub首席执行官Nat Friedman,当时他在运行一个有数百万程序员在编写代码的“key destination”,新的故事即从那里开始。
OpenAI预告将于今年夏天晚些时候通过其API发布Codex模型,供第三方开发人员将其融入自己的应用程序。
四、已设立许多安全机制,但还不完美GitHub员工试图确保GitHub Copilot生成安全、高质量的代码,但并非所有使用的代码都经过了漏洞、不安全实践或个人数据的审查。
“我们已经为Copilot建立了许多安全机制,我们认为这些机制在减少在各个领域出错的机会方面是先进的,但它们绝对不是完美的。”Friedman透露。
使用GitHub Copilot时,所有数据都安全地传输和存储,其遥测技术的使用被严格限制在个人需要知道的基础上。GitHub承诺不会将任何开发者的私有代码引用到为其他用户生成代码。
Copilot的网站写道:“由于底层技术的预发布性质,GitHub Copilot有时可能生成不希望的输出,包括有偏见、歧视、辱骂或攻击性的输出。”
鉴于对GPT-3偏见和滥用语言模式的批评,OpenAI似乎还没有找到阻止算法继承其训练数据最坏元素的方法。
GitHub还警告说,该模型可能会显示电子邮件地址、API密钥或电话号码,但这种情况很罕见,而且发现数据是由该算法合成或伪随机生成的。
不过,Copilot生成的代码在很大程度上是原创的。GitHub进行的一项测试发现,在训练集中只能找到0.1%的Copilot生成代码。
这不是第一个尝试自动生成代码来帮助程序员的项目。去年10月,美国初创公司Kite已经推出了一个类似的功能,借助AI帮开发者自动补全代码片段,该功能支持16个代码编辑器。
结语:或有助于扩大开发者阵容Copilot的问世凸显了OpenAI与其投资者微软之间日益密切的关系。除了用OpenAI提供的AI软件来理解开发者编程外,微软也在使用OpenAI的GPT-3语言模型,让非开发人员可以使用语音命令而非代码来构建应用程序。
开发者是微软企业战略的一大核心。发展GitHub使用的工具,降低了经验不足的程序员的开发门槛,能帮助微软进一步扩大其开发者队伍。
不过,GitHub Copilot只是一个辅助工具,开发者仍需仔细地测试、审查自己的代码。随着智能系统的优化,这一工具不仅有助于提高现有工程师的开发效率,也有潜力让更多人开始探索软件开发。
来源:GitHub、CNBC、The Verge
花粉社群VIP加油站
猜你喜欢