GitHub 最近发布了Copilot,这是一个由人工智能驱动的结对程序员,旨在帮助开发人员更快、更轻松地编写代码。该服务从注释和现有代码中学习,建议新行和整个功能的实现。
由OpenAI创建的人工智能系统 Codex 提供支持,Copilot 可使用不同的框架和语言。GitHub 首席执行官 Nat Friedman表示,技术预览版更适用于 Python、JavaScript、TypeScript、Ruby 和 Go,但它也旨在理解其他编程语言。
Python 中 sortByKey 函数的 GitHub Copilot 实现。
Visual Studio Code 将开发人员键入的注释和代码发送到 GitHub Copilot 服务,后者会综合并建议实现。根据 GitHub 的说法,该服务针对具有有意义的参数名称的小函数进行了优化,如上面的sortByKey示例:
我们最近针对一组在开源存储库中具有良好测试覆盖率的 Python 函数进行了基准测试。我们清除了函数体并要求 GitHub Copilot 填充它们。模型在第一次尝试时有 43% 的时间正确,在允许 10 次尝试时有 57% 的时间正确。它一直在变得越来越聪明。
Python 中 returnRandomElement 函数的 GitHub Copilot 实现。
在“Bugs Faster than the Speed of Thought”一文中,Maxim Khailo评论道:
Copilot 不是魔术师,平均而言,其表现会比人类编码员差。如果它在 Github 项目的 1 亿个项目语料库上进行训练,那么每 1000 行代码肯定会有 50 个以上的错误。(...) 有了 Copilot,错误的传播速度将超过思维的速度。
虽然RedMonk 分析师兼联合创始人James Governor认为“GitHub Copilot 是新的 *”,但Archium 联合创始人Graham Lea认为这两种服务之间存在差异:
* 就像按需集成编程,有 2-30 名其他与您有类似问题但在不同上下文中的人。GitHub Copilot 看起来更像是与接管您的键盘并在不解释其功能或方式的情况下破解代码的人配对。
GitHub 表示“Copilot 是一种工具,就像编译器或笔一样”,但许多专家担心许可的影响,认为开源项目和许多公司可能会禁止 AI 驱动的编码。Simon de la Rouviere推文:
关于在先权利和衍生作品与衍生创作的另一个有趣问题。机器学习输出是否应该考虑进入模型的原始作品的权利?线在哪里?(...) 大公司会禁止 GitHub Copilot 因为担心它会生成已经存在的代码吗?
Flask 的创建者 Armin Ronacher以Quake的快速平方根反例为例强调了潜在的版权侵权。Epic Games 首席执行官兼创始人 Tim Sweeney评论道:
这个还没想好。并非所有存储库都是公开的。并非所有公共存储库都是开源许可的。并非所有开源存储库都获得许可。大多数获得许可的存储库不是公共领域,但有通知要求。
Copilot 已接受来自公开来源的英语语言和源代码的培训,并且不引用私有代码。GitHub 承认这一挑战:
在公开数据上训练机器学习模型被认为是整个机器学习社区的合理使用(...)但这是一个新领域,我们热衷于与开发人员就这些主题进行讨论,并引领行业制定适当的训练AI模型的标准。
该服务处于技术预览阶段,预计未来将推出商业版本。目前可以加入GitHub Copilot 候补名单。
相关实战:https://www.yunduoketang.com/article/xixjxug.html
https://www.yunduoketang.com/article/kapudkt.html
https://www.yunduoketang.com/article/zxwxzbxi.html
https://www.yunduoketang.com/article/jipjgyyi.html
https://www.yunduoketang.com/article/ksdjziz.html
https://www.yunduoketang.com/article/zhibjias.html