程序员用 AI 来写 AI 代码,“卷死”其他程序员?

  • 发表时间:
    , 文章来源:MyZaker, 新闻取自各大新闻媒体,新闻内容并不代表本网立场

    用 AI 算法帮程序员写 AI 算法?或许不少程序员 " 你已经是一个成熟的 AI 了,该学会自己补全代码了 " 的心愿就要实现。

    在今年 6 月份,GitHub 与 Open AI 一同合作,推出了一款名为 "GitHub Copilot" 的 AI 工具,Copilot 可以根据上下文自动补全代码,包括文档字符串、注释、函数名称、代码,只要编程者给出一定提示,这款 AI 工具就可以补全出完整的函数。

    *(photo:MyZaker)

    GitHub Copilot 官网

    令人震惊的是 Copilot 还在不断进化。在近日举行的 GitHub Universe 2021 开发者大会上,GitHub 官方表示 Copilot 已开始支持 Java、C、C++ 和 C# 等语言的多行代码完成,并增加了 Neovim 和 JetBrains IDE,包含开发者常用的 IntelliJ IDEA、PyCharm 等编辑器的支持。

    *(photo:MyZaker)

    Copilot 运行范例;来源 GitHub Copilot 官网

    GitHub 表示,如今新写的 30% 代码都是在 AI 编程工具 Copilot 的帮助下完成的,Copilot 真的如此强大吗?在社交网络中,已有不少早早拿到了 Copilot 试用资格的博主分享了他们使用 Copilot 的感受。

    *(photo:MyZaker)

    来源:微博截图

    当然,除了认真写 Copilot 使用体验的博主,还有偷偷摸鱼被抓个现着的程序员……

    *(photo:MyZaker)

    来源:微博截图

    Copilot 虽然强大,但就和大部分人工智能工具一样,它仍是建立在 OpenAI Codex 算法的基础上,需要通过海量的代码来训练其智能程度。这对同样有着微软血统的 OpenAI 以及 Github 来说不是问题,微软在 2018 年斥资 75 亿美元收购了全球约有 5000 万用户的代码共享网站 Github,这意味着 Copilot 所依托的 Codex 算法接受了数十亿行公共代码的训练。

    事实早在 Copilot 诞生之前,OpenAI 就推出 1750 亿参数的 AI 模型 GPT-3,GPT-3 耗费了千万美元对人类的诗歌、小说、新闻等海量自然语言进行训练(主要是英语),也因此 GPT-3 对自然语言具备了一定程度的理解能力。神经网络之父 Geoffrey Hinton 在 GPT-3 出现后,曾这样感慨:" 生命、宇宙和万物的答案,其实只是 4.398 万亿个参数而已。"

    *(photo:MyZaker)

    Codex 就是基于 GPT-3 进行训练,OpenAI 的联合创始人兼首席技术官 Greg Brockman 曾表示 Codex 是 GPT-3 的后代。因此 Codex 也具备了将部分指令清晰的英语翻译成代码的能力,甚至有部分媒体宣传 Codex 已经让程序员门槛降低到了只要会英语就能写代码的地步。

    *(photo:MyZaker)

    在官方示例的 Codex 效果展示中,程序员只需要在编辑界面写下 "Make it be smallish" 示例上图中的大型飞船就会如下图一般缩小,而在这个过程中程序员并不需要输入一行代码,Codex 会自动编写车程序。

    *(photo:MyZaker)

    如今,Codex 经过无数代码与金钱训练出来的强大能力应用到了 AI 工具 Copilot 上,这虽然造就了 Copilot 神奇的代码补全、给出函数建议等功能,但同时也使得 Copilot 陷入了系列舆论争议风波。

    当 Copilot 受到越来越多程序员的欢迎,GitHub 的 CEO Nat Friedman 兴奋地表示:" 每天都有数百名 GitHub 的开发者在使用 Copilot,如果预览版进展顺利的话,我们将计划在未来某个时候将其扩展为付费产品。"

    Nat Friedman 的这番话让 Copilot 一下没那么香了,这意味着经过 GitHub 和 OpenAI 的一波神操作后,收费的 Copilot 白嫖了全球最大的代码共享网站 GitHub5000 万用户的知识成果用来商业化。这其中引起争议的焦点就在于 Copilot 的版权存在开源代码衍生品商业化 GPL 版权问题。GPL(General Public License)即通用公共许可证,是一系列自由软件许可证的统称,它可以用来保证用户运行、研究、共享和修改软件的自由。与此对应的是,任何复制、迁移 GPL 版权的衍生作品都必须遵循相同或等效的许可条款。

    简单来说就是,我是开源软件、开源代码你随便用没问题,但你只要用了就也得支持开源,其它任何人也可以免费使用你的代码或软件。Copilot 引起 GitHub 社区人们公愤的关键就是其把开源代码洗成商业产品,无视了早期促进程序语言世界丰富、开放的开源精神,已有不少程序员在社交媒体上公开表示未来将不再使用 GitHub 来托管自己的代码。

    *(photo:MyZaker)

    GitHub 官方则解释 Copilot" 通常不会精确复制代码块 ",也有人认为 Copilot 通过海量代码 AI 训练最后得出来的结果就如同人类一样,人类前期也需要通过学习其他人的相关知识来内化成为自己的,很难把 AI 模型训练出来的代码简单的理解为复制粘贴。

    然而已有不少人否定了这个说法,在通过 Copilot 解决程序中的一些经典问题时,会发现 Copilot 几乎一字不差的复制粘贴了 GitHub 上的某段经典代码。这意味着在 Copilot 成为商业产品后,使用 Copilot 的用户在把其代码应用到自家产品时一不小心就会中招违反 GPL 协议,面临被人起诉的风险,因此,已有一些科技公司已明确要求禁止员工使用 Copilot。

    Copilot 在实际应用中面临的问题不止如此,随着程序员们对 Copilot 了解的逐步加深,他们发现 Copilot 并不完美,仍然存在着不少缺陷。Copilot 背后的 Codex 既经过大量文本语言训练,也吸收了网络世界中鱼龙混杂的海量代码,因此 Copilot 输出的部分代码或许看出去没有那么美好,有着隐私泄露、安全风险等问题。B 站大佬陈睿就躺枪了一次,虽然立刻有网友表示其中出生年月日信息有误。

    *(photo:MyZaker)

    也有网友表示 "Copilot 一时爽,调试火葬场 ",因为想要清楚、清晰的描述出目标函数想要实现的功能并不简单,同时在使用 Copilot 的过程中,需要不断去回顾检查 AI 生成的代码是否正确,这反而容易干扰到编程时的原有思路。

    *(photo:MyZaker)

    来源:微博截图

    目前,GitHub Copilot 还处于未收取任何费用的申请试用阶段,互联网上关于它的争论也还在继续,随着 AI 工具日益强大,人类将来面对的类似问题只会越来越多。