赞
踩
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
本周GitHub官方和OpenAI联合发布了一款代码神器AI——GitHub Copilot,只需输入注释,即可自动生成代码,堪称一位“AI程序员”。真人程序们表示非常激动。
它究竟有多厉害呢?有位程序员尝试了一下平方根倒数速算法(Fast Inverse Square Root),结果出人意料。
只是打出来这四个关键词,GitHub Copilot就逐行“完美复刻”了当年那段神奇的算法。
这是当年在游戏《雷神之锤3》(Quake 3)中使用的一段代码,用于计算归一化向量,因其算法之简洁快速而闻名,也被叫做Quake代码。
我们再对比一下这两串代码,不能说是十分相似,只能说是一模一样。
- float Q_rsqrt( float number )
- {
- long i;
- float x2, y;
- const float threehalfs = 1.5F;
-
- x2 = number * 0.5F;
- y = number;
- i = * ( long * ) &y; // evil floating point bit level hacking
- i = 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连当年那句“what the fuck”的注释也用上了。
这不禁让人细思极恐:难道这不侵犯版权吗?
还真是!这位程序员发现,GitHub Copilot好像忘了开源许可证,这就尴尬了。
而Quake代码十年前就在GitHub上开源了,在Readme文档中,原作者明确表示使用的是GPL开源许可证。
GPL许可证要求:如果分发包含GPL代码的新版程序,则需要向每个人都提供免费获得的完整源代码。
所以这位程序员只好在代码前手动加入了几行注释,算是给他人的警示吧。
关于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还是长点心吧。
最后关于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
- CVPR和Transformer资料下载
-
- 后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集
- 后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF
- CVer-Transformer交流群成立
- 扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。
- 一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
- ▲长按加小助手微信,进交流群▲点击上方卡片,关注CVer公众号
- 整理不易,请给CVer点赞和在看
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。