社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub Copilot拒绝“以色列”和“女人”,遇到这些屏蔽词,它就罢工了

量子位 • 4 年前 • 593 次点击  
梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI

GitHub的AI代码生成插件Copilot发布才两个多月,就闯下不少大祸

照搬过开源代码,还有生成的内容包含用户隐私和歧视性语言等。

GitHub的对策也够粗暴——拉清单。

觉得不合适的词统统列入敏感词,现在连Boy和Girl都不能用了

大神的平方根倒数速算法连代码带注释里的“what the f**k?”就被Copilot原样照搬

这事被曝光后,Github悄悄把能召唤出这段经典代码的“q rsqrt”提示词加入了黑名单,顺便把f**k相关词也给加进去了。

 Copilot照搬大神代码作案现场

发现这事的是纽约大学的副教授Brendan Dolan-Gavitt,他最近一项研究就是找出Copilot加密敏感词列表中的上千个词。

翻过他的履历后才发现,这位破解大师还因为找敏感词这事在IEEE上发过论文。

以色列和性别词汇都不让用

Brendan发现Copilot敏感词列表就在VS Code的插件包里,只不过是加密的。

加密后的敏感词是32位Hash值,逆运算解密不太可能。

不过这位大哥在敏感词领域颇有经验,直接用以前搜集到的常见敏感词挨个碰撞

常见的都尝试过以后,剩下的就暴力穷举

穷举法最大的难点在于同一个Hash值可能对应许多词,他举例“-1223469448”就对应80万个11位字母数字的组合。

于是Brendon搞了个GPT-2模型用来判断哪种组合最像英语。

就这样遇到困难解决苦难,破解方法从最开始的简单穷举,最后都用上了GPU加速和Z3解约束算法(Constraint Solver)

最终现存的1170个敏感词他找出了1168个,只剩最后两个算出来的结果实在没有长得像人话的,只好放弃了。

通过对Copilot插件每一个版本分析,他还能跟踪具体哪个敏感词是在哪次更新中添加的。

至于找出来的敏感词具体有哪些,有的不说你也能猜出来,比如脏话、暴力色情、种族歧视等,他觉得屏蔽这些是应该的。

不过也有一些不算攻击性但可能出现争议的,比如Israel(以色列)和Palestan(巴勒斯坦),还有Man、Women、Girl、Boy这些常见的性别称谓。

敏感词对用户输入的提示词和Copilot给出的建议结果都有效。

他测试让Copilot生成一个国家列表,按字母顺序生成到伊朗、伊拉克,下一个讲道理是以色列的时候就卡住了。

Debug日志给出的信息是检测到了slur(侮辱性语言)

Brendon认为列敏感词的方法只能算一个80分的临时措施,并不能真正解决问题,毕竟真正解决需要仔细核查训练数据,还挺花时间的。

顺便说一下,Github知道这事以后打算把敏感词列表从插件包里挪到服务器端,增加破解的难度。

在IEEE发过敏感词论文

Brendon此举吸引了大量关注,他也借机宣传了一下之前的研究。

欢迎新来的老铁,你们可能同样会喜欢我去年在IEEE S&P发的论文,我们用自动方法提取了手机App里的敏感词列表和其他秘密。

在这篇论文中,他和团队测试了15万个安卓App,其中4000多个存在敏感词列表。

这些App分别来自谷歌商店,百度手机助手和三星手机预装App。

他们把敏感词分了9大类25小类。

然后重点测试了几个App,列了一个表,黑点代表存在该类的敏感词。

列几个有趣的结论:

  • 被屏蔽最多的是下流话(13)和恐吓威胁(11)。

  • 有的App屏蔽了简单密码,比如1234这种。

  • 中文App的敏感词数量显著多于英文和韩文的。

最后,团队还把找到的所有敏感词汇总成一个大表,英文、中文和韩文部分都有。

但是由于里面的词实在太辣眼,根本不适合公开发表,论文最终版里这张大表被移除了。

除了敏感词以外,他们还发现了很多App存在秘密入口,比如NBC Sports里点击13次版本号,输入密码后就能进入隐藏的Debug界面,苹果版还和安卓版密码一样。

密码是“UUDDLRLRBASS”

有点“上上下下左右左右BABA”那味了。

IEEE论文地址:
https://panda.moyix.net/~moyix/papers/inputscope_oakland20.pdf

参考链接:
[1]
https://www.theregister.com/2021/09/02/github_copilot_banned_words_cracked/
[2]https://twitter.com/moyix

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

「智能汽车」交流群招募中!

欢迎关注智能汽车、自动驾驶的小伙伴们加入社群,与行业大咖交流、切磋,不错过智能汽车行业发展&技术进展。加好友请务必备注您的姓名-公司-职位 哦~



点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/119503