点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者 | 闫园园

日前,研究人员发现,GitHub Copilot 工具提供的代码建议中 有接近 40% 存在 bug。为了对 Copilot 的实际价值做出量化,研究人员创建了 89 个测试场景以考查其代码建议质量,编写出了 1600 多个程序。经过全面审查,研究人员发现其中近四成存在安全漏洞。

研究人员指出,造成这种问题的主要原因有两个:

1、GitHub Copilot 参考的开源代码良莠不齐。GitHub 的代码量虽然庞大,但大部分都是未经审查的,源代码就有问题,GitHub Copilot 生成的代码也会出现问题;

2、GitHub Copilot 分不清新代码和旧代码。我们常常提起“最佳实践”,但曾经的“最佳实践”,极有可能在几年后变成反面典型。GitHub Copilot 目前还分不清这种区别,照单全收,自然有问题。

1AI 编程神器 GitHub Copilot

作为一款 AI 结对编程工具,GitHub Copilot 的主要定位是提供代码补全与建议功能。它是 Visual Studio Code 的一个插件,可根据当前文件的内容和当前光标位置为你自动生成代码。

首先我们要理解 什么是 AI 结对编程

结对编程用来代指两个程序员在一个计算机上共同工作。通常来说,会有一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,而审查代码的人称作观察员。

那么 AI 结对编程,可以简单理解为人机结对编程的升级版。具体来说 GitHub Copilot 由 OpenAI Codex 提供支持,可从代码中提取上下文,并立即对单行代码甚至整个函数给出建议。而 OpenAI Codex 接受过公开源代码和自然语言的培训,能理解编程语言和人类语言。在工作时,GitHub Copilot 编辑器的扩展插件将程序员的注释和代码发送到 GitHub Copilot 服务,然后该服务使用 OpenAI Codex 来生成对代码的建议。

2跌落神坛只用了不到一周

在 GitHub Copilot 推出后,有关于它的负面消息这并不是第一次。

就在其发布不到一周的时间里,GitHub Copilot 就被推上了侵权的风口浪尖,引发了前所未有的争议。

原因是有位程序员尝试了一下平方根倒数速算法(Fast Inverse Square Root),结果只是打出来这四个关键词,GitHub Copilot 就逐行“完美复刻”了当年那段神奇的算法,甚至连当时的原版注释都被保留下来。

这种现象引起了大量开发者的不满,他们认为,GitHub Copilot 宣称的基于公开代码训练其实是在未遵循开源许可证的情况下,肆意“抄袭”开源代码,事情愈演愈烈,甚至个别比较激进的人为了抗议 GitHub 未经授权和许可便使用受版权保护的源代码作为 GitHub Copilot 的训练数据,宣布弃用 GitHub。

3在争议中前行的 AI 编程

尽管 AI 编程有诸多争议,但它的脚步仍未停止。当人们开始关注 GitHub Copilot 背后的技术支撑 OpenAI Codex 后,今年八月,OpenAI 宣布开发一种将自然语言转换为编程代码的人工智能系统 —— Codex。

Codex 更像是 OpenAI 的下一步产品。它建立在 Copilot 之上,前文说到 Copilot 是一种与 Microsoft 的 GitHub 代码存储库一起使用的工具,使用它可有助于完成代码行。但 Codex 通过接受用英语编写的句子并将它们翻译成可运行的代码,换句话说,它是可以将自然语言转换为代码的 AI 系统,这意味着 AI 编程的概念又往前进了一步。

对此,OpenAI 称 Codex 可让计算机能够更好地理解人们的意图,从而让每个人都可利用计算机来实现更多目的。

那么,AI 写代码究竟可行不可行呢

虽然对于开发者们来说,重复性的任务占据了软件开发的大部分时间,并且很容易出错,研究人工智来改进软件开发的确令人兴奋,但是我们也不难从 GitHub Copilot 身上看到,就目前来看,这个工具仍旧不建议大家使用。

第一,GitHub Copilot 既然可以逐行“完美复刻”平方根倒数速算法,那么我们又能如何判别它给我们的代码一定是没有受版权保护的呢?这种可能性,同样容易让我们背上“侵权”的法律风险。

第二,就连 GitHub 自己都表示 GitHub Copilot 建议的代码并不完美,有时候它提供的代码甚至毫无意义。因此,对于 GitHub Copilot 建议的代码来说,我们仍要小心其编码错误,还需要付出精力去审查,才能得到正确有效的代码。

因此总的来说,原则上,让 AI 学会写程序的确能为软件工程带来一次巨大的变革,但是就目前来看,现有的技术水平远远达不到预期。当前的 GitHub Copilot 已经是人工智能领域的一项重大的突破,但同时也存在诸多障碍,这一点还需要引起我们的注意。

参考链接:

https://www.solidot.org/story?sid=68736

https://www.techradar.com/news/github-autopilot-highly-likely-to-introduce-bugs-and-vulnerabilities-report-claims

点个在看 paper不断!

GitHub 的AI代码生成神器,其四成代码有漏洞,你还敢用吗相关推荐

  1. GitHub 遭抵制!AI 代码生成神器竟成“抄袭工具”?

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 上周,微软.GitHub.OpenAI 三方联手推出的 AI 代码生成神器 GitHub Copilot 一经官宣便引起巨大关注:试问哪 ...

  2. Facebook 低调开发 AI 技术工具:自动扫描代码找漏洞

    编辑 | 小智 本周要闻: 苹果和华为都声称第一款 7 纳米手机芯片:Facebook 开发 AI 技术工具,能自动扫描代码找漏洞:中国发布自己的域名系统基础软件 "红枫":李飞飞 ...

  3. 程序员提前下班的福音来了!GitHub、OpenAI 联手推出 AI 代码生成神器

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 编程门槛正在降低,编程效率正在提升,我们距离「人人都能成为开发者」的目标更近一步.这不,微软正式宣布发布了一个人工智能代码建议方案--Gi ...

  4. GitHub 又一开源神器!写代码、搜问题,全部都在「终端」完成!

    来自量子位 无论你是编程小白还是老司机,coding过程中总会遇到不懂的问题. 最常见的方法是去论坛询问.谷歌搜索,需要反复在网页和编译器页面切换,即使有两个很大的分屏,生产力也会受到影响. 但是现在 ...

  5. GitHub原生AI代码生成工具Copilot,官方支持Visual Studio 2022

    来源丨机器之心 编辑丨极市平台 现在,微软.OpenAI.GitHub 三家联合打造的 AI 编程辅助工具 GitHub Copilot 可用于 Visual Studio 2022 了. 去年 6 ...

  6. AI 编程“神器”国产化!华为耗时 8 个月,这个能用中文生成代码的模型诞生了...

    作者 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 作为近年来最火的科技突破之一,AI 的应用已逐渐渗透至方方面面.前有各类 AI 工具写小说.编剧本.画插图,后有 AI 代码生成神器 G ...

  7. 基于qtc++设计文本编辑器的代码_文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了...

    犹记前些日子,微软的记事本文本编辑器爆出了本地代码执行漏洞. Google Project Zero研究员Tavis Ormandy宣布在微软的记事本文本编辑器中发现代码执行漏洞. 可以看见,他在no ...

  8. 文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了

    犹记前些日子,微软的记事本文本编辑器爆出了本地代码执行漏洞. Google Project Zero研究员Tavis Ormandy宣布在微软的记事本文本编辑器中发现代码执行漏洞. 可以看见,他在no ...

  9. 《预训练周刊》第27期:谷歌发布最新看图说话模型、GitHub:平台上30%的新代码受益于AI助手Copilot...

    No.27 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了9篇预训练相关的论文,涉及少样本理解.图像检测.决策图.大模型微调.对话微调.分子建模.蛋白质结构预测 ...

最新文章

  1. [ZZ]好的测试应该具备哪些特质?
  2. AsyncTask 实现异步处理任务
  3. 生产订单新增按钮没权限
  4. 数据结构和算法:第七章 排序
  5. 02.elasticsearch bucket aggregation查询
  6. GridView中列表的“双击事件”
  7. 举例说明语言接触会造成哪些结果_语言学概论全真模拟演练(二)
  8. 查看欧拉系统服务器ip,euler os 查看center进程命令
  9. Service通信详解
  10. Label高度根据内容变化SnapKi
  11. Robot Framework installation not found. To run tests, you need to install Robot Framework separately
  12. 家用无线路由器WDS初始化失败解决方法
  13. 零基础学图形学(9) 几何知识——行向量和列向量
  14. 纯前端导出excel文件(包含设置样式)
  15. Win10在某些程序输入中文变成问号的解决方法
  16. layer数据表格换行
  17. Discuz论坛 创始人密码忘记解决办法!
  18. 寻迹小车代码_活动 | 代码日记—计算机编程培训(泰达校区)
  19. CSS--margin塌陷问题
  20. Linux中在命令行界面使用U盘数据

热门文章

  1. Discuz!的cookie机制
  2. Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception
  3. 【组队学习】【26期】图神经网络
  4. 我是如何组织“算法刻意练习活动”的?
  5. 怎么控制table的大小java_如何查询Table占用空间的大小
  6. 11 款可替代 top 命令的工具!
  7. AI 帮忙找 Bug ,英特尔开源代码编程工具 ControlFlag
  8. 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”
  9. 李彦宏AI布局又下一城,成立生命科学公司“百图生科”
  10. 想学新的编程语言?考虑下Go吧