GitHub 推出生成代码的 Copilot 机器学习系统

GitHub 宣布智能助手 GitHub Copilot 完成测试,能够在编写代码时生成标准结构。 该系统是与 OpenAI 项目联合开发的,并使用 OpenAI Codex 机器学习平台,并在公共 GitHub 存储库中托管的大量源代码上进行训练。 该服务对流行开源项目的维护者和学生免费。 对于其他类别的用户,访问 GitHub Copilot 需要付费(每月 10 美元或每年 100 美元),但提供 60 天的免费试用访问。

使用各种框架的编程语言 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++ 支持代码生成。 模块可用于将 GitHub Copilot 与 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code 开发环境集成。 从测试期间收集的遥测数据来看,该服务允许您生成相当高质量的代码 - 例如,GitHub Copilot 中提出的建议中有 26% 被开发人员按原样接受。

GitHub Copilot 与传统代码补全系统的不同之处在于,它能够生成相当复杂的代码块,甚至可以根据当前上下文合成现成的函数。 GitHub Copilot 适应开发人员编写代码的方式,并考虑到程序中使用的 API 和框架。 例如,如果评论中有一个 JSON 结构的示例,当您开始编写解析该结构的函数时,GitHub Copilot 将提供现成的代码,而在编写重复描述的例程列表时,它将生成剩余的代码职位。

GitHub 推出生成代码的 Copilot 机器学习系统

GitHub Copilot 生成现成代码块的能力引发了与潜在违反 Copyleft 许可证相关的争议。 在形成机器学习模型时,使用了来自 GitHub 上开源项目存储库的真实源文本。 其中许多项目都是根据 Copyleft 许可证提供的,例如 GPL,它要求衍生作品的代码在兼容许可证下分发。 通过按照 Copilot 的建议插入现有代码,开发人员可能会无意中违反借用代码的项目的许可证。

目前尚不清楚机器学习系统生成的工作是否可以被视为衍生作品。 还出现了这样的问题:机器学习模型是否受版权保护,如果是,谁拥有这些权利,以及它们与模型所基于的代码的权利有何关系。

一方面,生成的块可以重复现有项目中的文本段落,但另一方面,系统重新创建代码的结构,而不是复制代码本身。 根据 GitHub 的一项研究,只有 1% 的情况下,Copilot 推荐可能包含来自现有项目的长度超过 150 个字符的代码片段。 在大多数情况下,当 Copilot 无法正确确定上下文或提供问题的标准解决方案时,就会发生重复。

为了防止替换现有代码,Copilot 中添加了一个特殊的过滤器,不允许与现有项目交叉。 设置时,开发者可以自行决定激活或禁用此过滤器。 除其他问题外,合成代码可能会重复用于训练模型的代码中存在的错误和漏洞。

来源: opennet.ru

添加评论