整理 | 禾木木

出品 | AI科技大本营(ID:rgznai100)

在近日发表的一篇论文中,研究人员对 GitHub Copilot 人工智能编程辅助工具进行了深入调查。结果发现,仍处于测试预览阶段的 Copilot 具有高达 40% 的错误代码率,意味着开发者必须在使用时对其保持清醒的认知。此外在多场景测试项目中,约 40% 都被发现包含了安全漏洞。

AI 编程神器 GitHub Copilot

此前,GitHub 和 OpenAI 推出一种新人工智能自动编程工具 Copilot ,能自动生成代码,供开发者参考使用。

官方宣传语为“你的 AI 结对编程助手”。

什么是结对编程呢?

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。

在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。

那么AI结对编程就是人机结对编程的升级版,具体来说 GitHub Copilot 由 OpenAI Codex 提供支持,可以从开发者已经编写的代码和注释中提取上下文,试图理解开发者意图,生成需要添加的一行、多行代码或整个函数,当程序员接受或拒绝建议时,模型就会学习越来越适应和匹配开发者的编程风格。

这使得程序员无需在写代码时去查阅大量文档或搜索相关示例,更加聚焦于开发工作本身。

正如 OpenAI 员工 Harri Edwards 所言:“用一种不熟悉的语言编写代码,用谷歌搜索所有东西,就像用一本短语手册去浏览一个外国国家。而使用 GitHub Copilot ,好比雇佣一名翻译。”

GitHub 首席执行官在 6 月 29 日的一篇博客文章中称:

OpenAI Codex 对人们如何使用代码有着广泛的了解,且在代码生成方面较 GPT-3 强大得多,部分原因是其在包含大量公共源码的数据集上展开了训练。

GitHub Copilot 适用于多种语言框架,但现阶段的技术预览版本更侧重于 Python、JavaScript、TypeScript、Ruby 和 Go 语言。

然而 Copilot 很快引发了多方争议,尤其涉及代码质量、法律与道德考量、替换人类开发者的可能性、以及引入安全漏洞的可能性。

GitHub Copilot 的代码质量如何呢?

近日,康奈尔大学的研究人员公布了一项数据,为了对 Copilot 的实际价值做出量化,他们为 GitHubCopilot 生成了 89 个不同的场景,生成了 1692 个程序。其中,大约 40% 的程序存在安全漏洞。

具体说来是,这项研究从三个维度展开了考量,分别是缺陷的多样性、prompt 的多样性、以及领域的多样性。

总体而言,头部 39.33% 和总体 40.48% 的项目易受攻击。从安全角度来看,Copilot 在测试场景中的表现也有好有坏。

对于新手来说,Copilot 借鉴的高质量代码还是相当值得推荐的。但若开源存储库中的某些错误相当明显,Copilot 也会更加频繁地重现。

研究人员表示,由于 Copilot 是利用 GitHub 上提供的开源代码进行训练的,因此可以推断,代码安全质量取决于 GitHub 社区的开源代码质量。

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

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

原因是有位程序员尝试了一下平方根倒数速算法(Fast Inverse Square Root),结果只是打出来这四个关键词。

floatQ_rsqrt( float number )
{
long i;
float x2, y;
constfloat threehalfs = 1.5F;x2 = number * 0.5F;y  = number;i  = * ( long * ) &y;                       // evil floating point bit level hackingi  = 0x5f3759df - ( i >> 1 );               // what the fuck? y  = * ( float * ) &i;y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//    y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
return y;
}

GitHub Copilot 就逐行“完美复刻”了当年那段神奇的算法,甚至连当时的原版注释都被保留下来。

甚至GitHub Copilot连当年那句“what the fuck”的注释也用上了。

这种现象引起了大量开发者的不满,这不禁让人细思极恐:难道这不侵犯版权吗?

结 语

关于 GitHub Copilot 代码的事情,在 Hacker News 论坛上引起热议。

一家科技公司的产品安全负责人明确表示:禁止员工使用GitHub Copilot。

不过,也有程序员表示,我用 AI 写的程序关我什么事,有责任那也是 GitHub 母公司微软的。

尽管 AI 编程有很多争议,但脚步从未停止。今年八月,OpenAI 宣布开发一种将自然语言转换为编程代码的人工智能系统 —— Codex。

Codex 是建立在 Copilot 之上,Codex 通过接收用英语编写的句子并将它们翻译成可运行的代码,换句话说,它是可以将自然语言转换为代码的 AI 系统,这意味着 AI 编程的概念又往前进了一步。

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

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

参考链接:

https://news.ycombinator.com/item?id=27710287

https://github.com/id-Software/Quake

https://arxiv.org/abs/2108.09293

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

GitHub 的 AI 编程工具漏洞高达 40% ,再次陷入争议……相关推荐

  1. 微软 Github AI 编程工具 Copilot 正式上线,学生免费使用

    2022年6月22日,微软 GitHub AI 编程工具 Copilot 在经过了近一年测试后,已正式上线,定价每月 10 美元(约 66.9 元人民币)或每年 100 美元(约 669 元人民币), ...

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

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

  3. 和AI结对编程!OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

    作者 | 琰琰.青暮 比GPT-3更强大! 昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为程序员自动编写下 ...

  4. 地表最强AI 辅助编程工具——GitHub Copilot安装教程

    GitHub Copilot 文章目录 GitHub Copilot 一.GitHub Copilot 介绍 二.GitHub Copilot 通行证注册流程 1.打开GitHub Copilot [ ...

  5. AI编程 亚马逊 CodeWhisperer VS GitHub Copilot

    在AI 编程里,各大公司都推出自己AI 编程工具,亚马逊 CodeWhisperer  . GitHub Copilot等,由机器学习(ML)驱动的服务.通过开发者的注释和代码来生成代码建议,帮助开发 ...

  6. OpenAI与GitHub联手推出AI代码生成工具,比GPT-3更强大

    来源:AI科技评论 作者:琰琰.青暮 比GPT-3更强大! 昨日,微软与OpenAI共同推出了一款AI编程工具GitHub Copilot,这款工具基于GitHub及其他网站的源代码,可根据上文提示为 ...

  7. 挑战微软 + GitHub!谷歌联手 Replit,升级 AI 编程“神器”:曾拒绝微软 10 亿美元的收购...

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 自从 ChatGPT 问世,微软和谷歌之间就悄然掀起了一场 AI 大战.随着时间推移,其中的硝烟味愈发浓烈. 谷歌:你有 OpenAI ...

  8. GitHub Copilot 已上线,AI 编程这等来啦!

    点击蓝字 关注我们 在人工智能高速发展的时代,AI 撰稿.AI 语音等技术已经相对成熟,在无数个熬夜写代码和排 bug 的日子里,你有没有 dream 过 AI 编程? GitHub copilot ...

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

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

最新文章

  1. STM32中关于RCC时钟的理解
  2. leetcode算法题--最小路径和
  3. BAPI_PO_CHANGE修改NETPRICE
  4. 北斗导航 | 多模多频实时GNSS软件接收机
  5. ARP协议,以及ARP欺骗
  6. 代理ARP协议(Proxy ARP)
  7. VirtualBox在win10下安装一个manjaro linux操作系统的教程
  8. 高性能mysql 第5章 创建高可用的索引
  9. mac使用php-version切换PHP版本
  10. 网络棋牌游戏成为网游主流力量
  11. vs2019配置glfw、glad等环境
  12. Android 通讯录的实现,根据拼音首字母快速索引到名字
  13. html css 忽略,HTML与CSS中易被忽略的基础知识点
  14. 持久化存储系统本版号
  15. 「学习笔记」黑马面面布局开发
  16. 怎么证明:向量组A1,A2…As可由向量组B1,B2…Bt线性表出,且s>t,那么A…As线性相关?
  17. 你的房间总是一团乱吗?
  18. Unity Animation动画时间设置
  19. C语言学习:编程、源文件、源代码是什么?一文带你搞定它!
  20. 遨博协作机器人ROS开发 - 机器人手眼标定原理

热门文章

  1. python re模块_Python re模块
  2. 深入研究ConcurrentHashMap 源码从7到8的变迁
  3. 怎样做才是最优雅方式切换 web 项目数据源 ?
  4. Myeclipse快捷键的使用
  5. javascript通过json数据按格式生成一个按字母分类排序的分类信息表
  6. linux下网卡状态,linux-网络状态
  7. tidb mysql 协议_TiDB源码阅读(二) TiDB中的MySQL协议
  8. Matlab姿态表示
  9. Spring Cloud 微服务实战笔记
  10. URL编码转义,冒号和/不转,否则导致http链接失效