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

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.

相关推荐
热点推荐
中国连出两条公告,特朗普不敢回应!美盟友们急了:赶紧派人赴华

中国连出两条公告,特朗普不敢回应!美盟友们急了:赶紧派人赴华

军机Talk
2026-03-28 13:31:41
嫁大12岁中国老公,朝鲜姑娘直言:这辈子做得最对的决定

嫁大12岁中国老公,朝鲜姑娘直言:这辈子做得最对的决定

世界圈
2026-03-29 02:05:03
广州警方:已刑拘73人

广州警方:已刑拘73人

番禺台
2026-03-27 18:39:19
皇马乐坏了!英超天才中场闹离队,克罗斯接班人有着落了?

皇马乐坏了!英超天才中场闹离队,克罗斯接班人有着落了?

仰卧撑FTUer
2026-03-28 20:37:06
2005年《神话》重庆宣传,为争夺金喜善,文强与山西首富大打出手

2005年《神话》重庆宣传,为争夺金喜善,文强与山西首富大打出手

干史人
2026-03-27 10:00:07
iOS 紧急发布系统更新提醒,建议升级!

iOS 紧急发布系统更新提醒,建议升级!

花果科技
2026-03-29 00:02:21
张凌赫事件持续升级!官方点名怒批,粉丝正面硬刚,这下恐要凉凉

张凌赫事件持续升级!官方点名怒批,粉丝正面硬刚,这下恐要凉凉

阿晪美食
2026-03-28 15:03:17
马英九再提统一条件,岛内炸锅大陆沉默,他在帮谁说话?

马英九再提统一条件,岛内炸锅大陆沉默,他在帮谁说话?

娱乐的宅急便
2026-03-28 21:16:56
上班开粪车下班开奔驰的小伙今日大婚,当事人:吸粪车婚车队,全球第一个

上班开粪车下班开奔驰的小伙今日大婚,当事人:吸粪车婚车队,全球第一个

极目新闻
2026-03-28 08:51:05
文班和亚历山大谁夺得MVP?苏群很直接,NBA历史神迹可能要诞生了

文班和亚历山大谁夺得MVP?苏群很直接,NBA历史神迹可能要诞生了

小徐讲八卦
2026-03-29 05:45:08
血亏!曼联 1000 万贱卖弃将封神,已成新版巴尔韦德

血亏!曼联 1000 万贱卖弃将封神,已成新版巴尔韦德

奶盖熊本熊
2026-03-29 03:41:06
李现晒图直呼 “快折磨死我了”!不少人已中招

李现晒图直呼 “快折磨死我了”!不少人已中招

日照日报
2026-03-28 20:46:57
大马丁:这是我们踢得最差的比赛之一;这是一记及时的警钟

大马丁:这是我们踢得最差的比赛之一;这是一记及时的警钟

懂球帝
2026-03-28 11:03:16
欧洲议会投票通过附加安全条款的对美贸易协定

欧洲议会投票通过附加安全条款的对美贸易协定

参考消息
2026-03-28 15:39:05
厦门高崎机场关闭时间确定

厦门高崎机场关闭时间确定

新浪财经
2026-03-29 03:40:43
看了观众对何润东的评价,我才明白当年陈道明那番话的含金量

看了观众对何润东的评价,我才明白当年陈道明那番话的含金量

糊咖娱乐
2026-03-26 17:22:19
怪不得张雪峰说普通家庭的女孩不要学金融!

怪不得张雪峰说普通家庭的女孩不要学金融!

仰望星空的一粒沙子
2026-03-27 07:26:52
重磅!一大型上市企业总部已正式迁入茂名,老板:我要做新茂名人!

重磅!一大型上市企业总部已正式迁入茂名,老板:我要做新茂名人!

茂名油城圈
2026-03-29 00:08:27
狂丢149分!三分27中4!阿德巴约被全联盟针对

狂丢149分!三分27中4!阿德巴约被全联盟针对

篮球教学论坛
2026-03-28 10:41:52
暴跌25%!曾经一包难求的顶级奢侈品,如今五折甩卖都没人要?

暴跌25%!曾经一包难求的顶级奢侈品,如今五折甩卖都没人要?

青眼财经
2026-03-27 22:55:18
2026-03-29 08:15:00
量子位 incentive-icons
量子位
追踪人工智能动态
12360文章数 176427关注度
往期回顾 全部

科技要闻

华为盘古大模型负责人王云鹤确认离职

头条要闻

上海爷叔在家"打伞做饭" 自嘲掏空三代400万买了个啥

头条要闻

上海爷叔在家"打伞做饭" 自嘲掏空三代400万买了个啥

体育要闻

“我是全家最差劲的运动员”

娱乐要闻

陈牧驰陈冰官宣得子 晒一家三口握拳照

财经要闻

卧底"科技与狠活"培训:化工调味剂泛滥

汽车要闻

置换补贴价4.28万起 第五代宏光MINIEV正式上市

态度原创

教育
手机
数码
公开课
军事航空

教育要闻

“女孩家长心真大!”小男孩带女同学回家留宿,网友破防了!

手机要闻

首款骁龙8 Gen5小平板来了!OPPO Pad mini真机现身

数码要闻

2025中国耳机全渠道销量下降6.9% 线上销量占据9成份额

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

美军中东基地损失最新披露

无障碍浏览 进入关怀版