推广 热搜: page  数据  小红  红书  考试  论文  数据分析  关键词  哪些  搜索 

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

   日期:2025-01-01     移动:https://sicmodule.kub2b.com/mobile/quote/17808.html

梦晨 发自 凹非寺

量子位 报道 | 公众号 QbitAI

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

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

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

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

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

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

让AI来啊!

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

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

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

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

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

合理的任务指导AI学习

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

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

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

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

微调一下能完成更多任务

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

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

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

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

论文地址:

https://arxiv.org/abs/2102.07492

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

http://www.ioccc.org/

— 完 —

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

原标题:《AI根据代码内容自动起函数名,再也不怕命名不规范的同事了|开源》

本文地址:https://sicmodule.kub2b.com/quote/17808.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号