分享好友 资讯首页 频道列表

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

2021-08-02 12:007890

 本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

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

需要一个临时变量的时候就叫temp,需要多个就叫var1,var2。

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

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

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

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

让AI来啊!

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

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

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

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

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

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

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

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

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

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

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

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

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

合理的任务指导AI学习

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

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

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

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

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

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

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

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

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

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

微调一下能完成更多任务

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

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

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

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

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

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

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

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

Github地址:

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

论文地址:

https://arxiv.org/abs/2102.07492

国际C语言混乱代码大赛:

http://www.ioccc.org/

 

反对 0
举报 0
收藏 0
打赏 0
评论 0
盖茨称AI太强大,有可能造成10亿人死亡的事件
另一位Anthropic员工表示,他认为在未来十年内AI灭绝全人类的概率高于10%。

0评论2026-09-262260

华为手机销量能否超越苹果郭平:不以超越特定企业为目标
华为手机销量能否超越苹果郭平:不以超越特定企业为目标

0评论2026-09-161830

赛富时CEO贝尼奥夫呼吁:AI发展需兼顾安全伦理,科技巨头应担公共责任
赛富时CEO贝尼奥夫呼吁:AI发展需兼顾安全伦理,科技巨头应担公共责任

0评论2026-09-162803

OpenAI宣布GPT-5.5模型10月14日下线 用户需尽快切换至替代模型
OpenAI宣布GPT-5.5模型10月14日下线 用户需尽快切换至替代模型

0评论2026-09-162409

上纬新材旗下启元机器人9月20日上海发布新品 具身智能等战略规划同步揭晓
上纬新材旗下启元机器人9月20日上海发布新品 具身智能等战略规划同步揭晓

0评论2026-09-162011

量子位2026人工智能年度榜单启幕 寻AI真问题解决者与价值创造者
量子位2026人工智能年度榜单启幕 寻AI真问题解决者与价值创造者

0评论2026-09-161809

脉脉林凡:AI成职场新标配 2026年新发AI岗位量激增且薪资上涨
脉脉林凡:AI成职场新标配 2026年新发AI岗位量激增且薪资上涨

0评论2026-09-162814

优必选超级工厂投产:人形机器人量产启幕,中国智造再攀新高峰
优必选超级工厂投产:人形机器人量产启幕,中国智造再攀新高峰

0评论2026-09-162251

四川2026年1—8月工业成绩亮眼 锂离子电池等多领域产量显著增长
四川2026年1—8月工业成绩亮眼 锂离子电池等多领域产量显著增长

0评论2026-09-16658

对话蚂蚁灵波CEO朱兴:机器人还吃不了粗粮
对话蚂蚁灵波CEO朱兴:机器人还吃不了粗粮

0评论2026-09-162543