当前位置:   article > 正文

GitHub的AI程序员“抄袭”算法大神代码!连原版注释都抄上了

抄袭了别人的软件源码

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

晓查 发自 凹非寺 
来源:量子位(QbitAI)

本周GitHub官方和OpenAI联合发布了一款代码神器AI——GitHub Copilot,只需输入注释,即可自动生成代码,堪称一位“AI程序员”。真人程序们表示非常激动。

它究竟有多厉害呢?有位程序员尝试了一下平方根倒数速算法(Fast Inverse Square Root),结果出人意料。

只是打出来这四个关键词,GitHub Copilot就逐行“完美复刻”了当年那段神奇的算法。

这是当年在游戏《雷神之锤3》(Quake 3)中使用的一段代码,用于计算归一化向量,因其算法之简洁快速而闻名,也被叫做Quake代码。

我们再对比一下这两串代码,不能说是十分相似,只能说是一模一样。

  1. float Q_rsqrt( float number )
  2. {
  3.     long i;
  4.     float x2, y;
  5.     const float threehalfs = 1.5F;
  6.     x2 = number * 0.5F;
  7.     y  = number;
  8.     i  = * ( long * ) &y;                       // evil floating point bit level hacking
  9.     i  = 0x5f3759df - ( i >> 1 );               // what the fuck? 
  10.     y  = * ( float * ) &i;
  11.     y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
  12. //    y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
  13.     return y;
  14. }
 原版平方根倒数速算法

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

这不禁让人细思极恐:难道这不侵犯版权吗?

还真是!这位程序员发现,GitHub Copilot好像忘了开源许可证,这就尴尬了。

而Quake代码十年前就在GitHub上开源了,在Readme文档中,原作者明确表示使用的是GPL开源许可证。

GPL许可证要求:如果分发包含GPL代码的新版程序,则需要向每个人都提供免费获得的完整源代码。

所以这位程序员只好在代码前手动加入了几行注释,算是给他人的警示吧。

使用Copilot有抄袭风险

关于GitHub Copilot直接“抄袭”Quake代码的事情,在Hacker News论坛上引起热议。

对此,程序员表示,如果贸然使用GitHub Copilot,而忽略了代码背后开源许可证,那么你有可能会被起诉。

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

如果不开源的商用软件使用GitHub Copilot开发的代码,而没有按照开源许可证的要求执行,就会给公司招来法律风险。

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

但是在GitHub Copilot下载页面中并没有相关法律风险的提示,而且GitHub还表示这个AI不是一个“背题家”,它生成的绝大多数代码都是唯一的。

在0.1%的情况下,GitHub Copilot建议可能包含一些来自训练集的逐字片段。

结果GitHub Copilot却把人家整段的代码都抄来了,而且连注释都附带上。

还有程序员表示,不用太担心。其实GitHub Copilot的这种行为,和某些程序员直接抄Stack Overflow的代码没有啥区别,因为很多Stack Overflow上的代码也没有给出许可证信息。很多直接搬运Stack Overflow代码的行为也没有被起诉。

但是谨慎起见,用GitHub Copilot还是长点心吧。

One More Thing

最后关于Quake代码这件事,还值得再说两句。

由于当年显卡等图形渲染硬件的配置较低,为了能实现更好的光照效果,必须对算法进行极致优化,而求平方根倒数是绕不开的一项运算,每秒要进行上百万次。

因此就有一位算法大神,通过浮点数与整型的转换,以及移位操作,成功将求平方根倒数压缩到短短几次操作。(详细原理可参照维基百科介绍)

关于这个算法究竟是谁发明的,一直众说纷纭,没有定论。但那句注释让Quake代码更加出名。

当年开发《雷神之锤3》的程序员使用了大神的算法,却没有看懂其中的精髓:“i = 0x5f3759df - ( i >> 1 ); ”这一句 ,所以只好在注释里写下了“what the fuck”。

没想到近20年后,AI还是和人一样成了复读机,只能膜拜算法大神了。(手动狗头)

参考链接:
[1]https://twitter.com/mitsuhiko/status/1410886329924194309
[2]https://news.ycombinator.com/item?id=27710287
[3]https://github.com/id-Software/Quake
[4]https://en.wikipedia.org/wiki/Fast_inverse_square_root#History

  1. CVPR和Transformer资料下载
  2. 后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
  3. 后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF
  4. CVer-Transformer交流群成立
  5. 扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
  6. 一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
  7. ▲长按加小助手微信,进交流群▲点击上方卡片,关注CVer公众号
  8. 整理不易,请给CVer点赞和在看
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/328031
推荐阅读
相关标签
  

闽ICP备14008679号