网易首页 > 网易号 > 正文 申请入驻

AI根据代码内容自动起函数名,再也不怕命名不规范的同事了

0
分享至

梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI

有的人能把代码写成推理小说。

需要一个临时变量的时候就叫temp,需要多个就叫var1var2

甚至用拼音缩写当函数名,比如查询订单就叫cxdd

要想看懂这样的代码,得联系上下文反复推敲,还原每个部分的真实作用。

这个过程叫做反混淆(Deobfuscation)。

麻烦,着实麻烦。就没有省事儿点的办法吗?

AI来啊!

最近,Facebook就出了这样一个语言模型DOBF,专治代码混淆。

像下图这种,所有不影响运行的变量名、函数名、类名,都被替换成无意义的符号,AI都能做出猜测并尝试还原。

来看看和正确答案的对比,虽然不是完全一样,但AI的改法也大大提高了代码的可读性。

像FUNC_0,源代码中是“重置参数”,AI改成“初始化权重”,也完全说得通。

DOBF模型目前除了Python还支持C++和Java。

编码不规范的人毕竟是少数,这个模型更广泛的用途是恢复故意做混淆以保护知识产权的代码,比如这种:

代码写好后,把不影响编译运行的部分,批量替换成人类难以分辨的符号,给破译增加难度。

在这之前也有掩码语言模型(Masked Language Model)用于恢复被遮蔽的文本。

用于恢复代码的有哈工大&微软开发的CodeBERT和Facebook之前开发的TransCoder,但效果都不如最新的DOBF。

DOBF超过它们靠的不是模型架构上的创新或数据集的完善,而是提出了新的预训练任务

合理的任务指导AI学习

之前的掩码语言模型多是随机选择要掩蔽的部分,经常会选到括号逗号这种对AI来说没什么难度的。

DOBF的做法是指定遮蔽变量名、函数名和类名并让AI去恢复,这个任务难度更大,能迫使AI学到更深层的规律。

另外还用相同的符号替代多次出现的同一名称,这样可以防止AI发现有的名字可以复制粘贴之后学会偷懒走捷径。

像上图中的变量V3,AI从第3行的定义可以看出这个变量是List类型,再一看第5行调用的是pop(0)。

这不是先进先出嘛,AI就会命名成queue(队列)而不是stack(堆栈)了。

更厉害的还在后面,DOBF通过代码内容甚至能判断出相应函数是生成斐波那契数列做向量点积的。

DOBF在架构上其实没有特别的设计,只是为了公平对比分别训练了两个和CodeBERT、TransCoder层数一样的模型。

成功的关键之处就在于合理的训练任务。

微调一下能完成更多任务

验证了这个方法有效后,Facebook把这个训练任务提取出来称为DOBF任务,还可以用于训练其他语言模型。

比如在TransCoder模型上把DOBF作为预训练任务,再用CodeXGLUE基准测试中的下游任务进行微调。

结果在代码抄袭检测总结代码生成文档、和自然语言搜索代码片段这3个任务上,使用DOBF或MLM+DOBF预训练都取得了更好的成绩。

Facebook下一步还要以DOBF作为指导,看看能不能为自然语言设计更好的预训练目标。

不过代码上的事还不算完,人类在混淆代码上可是无所不用其极的。

期待着有一天,AI连国际C语言混乱代码大赛上的变态代码也能看懂。

Github地址:
https://github.com/facebookresearch/CodeGen/blob/master/docs/dobf.md

论文地址:
https://arxiv.org/abs/2102.07492

国际C语言混乱代码大赛:
http://www.ioccc.org/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
在啪啪前,怎样快速判断对方有没有性病?(成年人必读)

在啪啪前,怎样快速判断对方有没有性病?(成年人必读)

许超医生
2024-04-30 10:03:49
大妈妈沉默不漠视,李某生被查暗示收网启动,许敏的自信说明问题

大妈妈沉默不漠视,李某生被查暗示收网启动,许敏的自信说明问题

苗苗情感说
2024-05-11 10:37:45
女子将保时捷送去维修,却被员工卖掉,4S店:加38万,换一辆新的

女子将保时捷送去维修,却被员工卖掉,4S店:加38万,换一辆新的

坦然风云
2024-05-10 19:13:18
市场刚传来一大消息,2亿股民都惊呆了,下周该方向能成为主线?

市场刚传来一大消息,2亿股民都惊呆了,下周该方向能成为主线?

彩云的夕阳
2024-05-11 12:19:26
好家伙!《歌手2024》首播就被一星刷屏,观众的差评理由出奇一致

好家伙!《歌手2024》首播就被一星刷屏,观众的差评理由出奇一致

电影侦探社
2024-05-11 09:51:00
刘雯的这两套造型太惊艳了,这才是时装周吧!

刘雯的这两套造型太惊艳了,这才是时装周吧!

白宸侃片
2024-05-10 19:06:39
反应真快!奥纳纳对阵伯恩利神扑,当选英超4月最佳扑救

反应真快!奥纳纳对阵伯恩利神扑,当选英超4月最佳扑救

直播吧
2024-05-10 21:13:01
湖南男子回前妻家拿东西,进门傻眼了:才离一年,我就成陌生人了

湖南男子回前妻家拿东西,进门傻眼了:才离一年,我就成陌生人了

雅清故事汇
2024-05-10 13:40:59
舒尔茨太不幸了!德国外长又爆神奇言论:“明天”将穿越台湾海峡

舒尔茨太不幸了!德国外长又爆神奇言论:“明天”将穿越台湾海峡

虎哥说航天
2024-05-11 08:00:02
辽宁一女子刚生完孩子,丈夫就冲入产房将其杀害:大快人心

辽宁一女子刚生完孩子,丈夫就冲入产房将其杀害:大快人心

一个人讲故事
2024-05-08 20:29:56
8000万人吃掉40%财政收入!上班拿5千退休拿1万的现状,必须改变

8000万人吃掉40%财政收入!上班拿5千退休拿1万的现状,必须改变

人物娱记
2023-11-28 13:00:03
**武田玲奈绝美写真大放送**

**武田玲奈绝美写真大放送**

娱乐圈酸柠檬
2024-05-11 14:57:23
大开眼界!陈浩民拥有1亿元的名表,蒋丽莎搬回香港后感叹生活累

大开眼界!陈浩民拥有1亿元的名表,蒋丽莎搬回香港后感叹生活累

鑫鑫说说
2024-05-10 11:58:00
詹姆斯21年赚了5.31亿,杜兰特15年赚了4.47亿,那库里14年多少亿

詹姆斯21年赚了5.31亿,杜兰特15年赚了4.47亿,那库里14年多少亿

天气如你
2024-05-11 01:45:51
市面上常会添加硼砂的5种食物,专家建议要少吃,很多人不在意

市面上常会添加硼砂的5种食物,专家建议要少吃,很多人不在意

简食记工作号
2024-05-09 10:51:41
变天了!为什么说美国在走下坡路?200年建立霸权却在20年崩溃?

变天了!为什么说美国在走下坡路?200年建立霸权却在20年崩溃?

史小纪
2024-05-10 13:51:35
一节课八万美金!奥拉朱旺的五大弟子,谁花钱打水漂了?

一节课八万美金!奥拉朱旺的五大弟子,谁花钱打水漂了?

篮球圈里的那些事
2024-05-09 20:12:59
奥林匹亚科斯球员晒大马丁领取金手套照片,脸部换成本队门将

奥林匹亚科斯球员晒大马丁领取金手套照片,脸部换成本队门将

直播吧
2024-05-11 07:16:14
大快人心!中国突围成功,美国制裁宣告失效了

大快人心!中国突围成功,美国制裁宣告失效了

虎哥说航天
2024-05-09 15:30:02
确定!7月1日起 强制实施!

确定!7月1日起 强制实施!

无锡eTV全媒体
2024-05-11 07:45:01
2024-05-11 16:02:44
量子位
量子位
追踪人工智能动态
9375文章数 175273关注度
往期回顾 全部

科技要闻

苹果高管体验ChatGPT后恐惧,砍掉汽车项目

头条要闻

创维汽车回应"创始人称开车能治病能延寿":恶意拼凑

头条要闻

创维汽车回应"创始人称开车能治病能延寿":恶意拼凑

体育要闻

你可曾听过,40岁“亚洲一叔”的传说

娱乐要闻

《歌手2024》首播排名出了,那英第三

财经要闻

多晶硅跌破成本价,光伏价格内卷何时休?

汽车要闻

e平台3.0 Evo首款车型 海狮07EV有啥不同

态度原创

本地
数码
时尚
公开课
军事航空

本地新闻

云游中国|哪吒小镇,潮玩新地标!

数码要闻

7800X3D太能打,高效稳定豪华游戏配置依旧选它

男人过了50岁后,还该不该打扮自己?看完3组素人对比图,就懂了

公开课

父亲年龄越大孩子越不聪明?

军事要闻

驻印大使徐飞洪:中印两军边界西段4点位实现脱离接触

无障碍浏览 进入关怀版