Github的人工智能编程工具Copilot

Github的人工智能编程工具Copilot

2022-05-30    02'37''

主播: 英语小小孩

279 1

介绍:
去年6月,微软旗下的GitHub和OpenAI推出了Copilot,这项服务为微软Visual Studio等开发环境中的整行代码提供建议。Copilot以可下载的扩展形式提供,它由一个名为Codex的人工智能模型驱动,该模型在数十亿行公共代码的基础上进行了训练,可以根据现有代码的上下文推荐额外的代码行和功能。Copilot还可以利用其知识库和当前环境,针对开发者想要完成的描述(如 "说你好的世界"),浮出一个方法或解决方案。 微软在Build 2022大会上宣布,虽然Copilot以前是技术预览版,但从今年夏天的某个时候开始,它将变得普遍可用。Copilot也将免费提供给学生和 "经过验证的 "开源贡献者。关于后者,GitHub说它将在晚些时候分享更多信息。 Copilot的使用体验不会有太大变化。和以前一样,开发者将能够循环浏览Python、JavaScript、TypeScript、Ruby、Go和其他几十种编程语言的建议,接受、拒绝或手动编辑。Copilot将适应开发人员的编辑,匹配特定的编码风格,自动填充模板或重复的代码模式,并推荐与实施代码相匹配的单元测试。 除了Visual Studio Code之外,Copilot扩展将可用于Noevim和JetBrains,或者在GitHub Codespaces的云端。 与Copilot的全面发布相吻合的一个新功能是Copilot Explain,它可以将代码翻译成自然语言描述。这被描述为一个研究项目,目的是帮助新手开发者或那些不熟悉代码库的人。 "今年早些时候,我们推出了Copilot Labs,这是一个单独的Copilot扩展,作为机器学习实验应用的试验场,以改善开发者的体验,"GitHub的产品副总裁Ryan J. Salva在一次电子邮件采访中告诉TechCrunch。"作为Copilot实验室的一部分,我们推出了'解释这个代码'和'翻译这个代码'。这项工作符合我们正在测试的一类实验性能力,让你窥见各种可能性,并让我们探索用例。也许通过'解释这段代码',一个开发人员正在权衡一个陌生的代码库,并希望快速了解正在发生的事情。这个功能可以让你突出显示一个代码块,并要求Copilot用简单的语言来解释它。同样,Copilot实验室的目的是实验性的,所以可能会出现问题。实验室的实验可能会也可能不会发展成为Copilot的永久功能。" 由于人工智能模型的复杂性质,Copilot仍然是一个不完美的系统。GitHub警告说,它可能会产生不安全的编码模式、错误和对过时的API的引用,或反映其训练数据中不太完美的代码的习语。Copilot建议的代码可能并不总是编译、运行,甚至没有意义,因为它没有实际测试这些建议。此外,在极少数情况下,Copilot的建议可能包括个人数据,如姓名和电子邮件,逐字逐句地来自其训练集--更糟糕的是,"有偏见的、歧视性的、辱骂性的或攻击性的 "文本。 GitHub表示,它已经实施了过滤器,以阻止以标准格式显示的电子邮件和攻击性词语,并且它正在建立一个过滤器,以帮助检测和抑制从公共资源库中重复的代码。"Copilot网站上的免责声明写道:"虽然我们正在努力使Copilot变得更好,但由Copilot建议的代码应该像其他代码一样被仔细测试、审查和审核。 虽然Copilot自去年推出技术预览版以来可能已经有所改进,但目前还不清楚改进的程度。底层模型Codex--OpenAI的GPT-3的后代--的能力已经被DeepMind的AlphaCode和开源的PolyCoder等系统所匹配(甚至超越)。 "我们看到Copilot在生成更好的代码方面取得了进展......我们正在利用我们在[其他]工具方面的经验来提高Copilot建议的质量--例如,通过对CodeQL扫描的训练数据给予额外的权重,或者在运行时分析建议,"萨尔瓦断言--"CodeQL "指的是GitHub的代码分析引擎,用于自动化安全检查。"我们致力于帮助开发者提高生产力,同时也提高代码质量和安全性。从长远来看,我们相信Copilot写出的代码会比普通程序员更安全"。 缺乏透明度似乎并没有打击对Copilot的热情,微软今天说,这表明Java和Python等语言中大约35%的代码是由技术预览中的开发者生成的。该公司称,在整个预览过程中,有数万人经常使用该工具。 ​