AI根据代码内容自动起函数名,再也不怕命名不规范的同事了
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
有的人能把代码写成推理小说。
需要一个临时变量的时候就叫temp,需要多个就叫var1,var2。
甚至用拼音AI缩写当函数名,比如查询订单就叫cxdd。
要想看懂这样的代码,得联系上下文反复推敲,还原每个部分的真实作用。
这个过程叫做反混淆(Deobfuscation)。
麻烦,着实麻烦。就没有省事儿点的办法吗根据?
让AI来啊!
最近,Facebook就出了这样一个语言模型DOBF,专治代码混淆。
像下图这种,所有不影响运行的变量名、函数名、类名,都被替换成无意义的符号,AI都能作出猜测并尝试还原。
来看看和正确答案的对代码比,虽然不是完全一样,但AI的改法也大大提高了代码的可读性。
像FUNC_0,源代码中是“重置参数”,AI改成“初始化权重”,也完全说得通。
DOBF模型目前除了Python还支持C++和Java。
编内容码不规范的人毕竟是少数,这个模型更广泛的用途是恢复故意做混淆以保护知识产权的代码,比如这种:
代码写好后,把不影响编译运行的部分,批量替换成人类难以分辨的符号,给破译增加难度。
在这之前也有掩码语言模型自动(Masked Language Model)用于恢复被遮蔽的文本。
用于恢复代码的有哈工大&微软开发的CodeBERT和Facebook之前开发的TransCoder,但效果都不如最新的DOBF起函。
DOBF超过它们靠的不是模型架构上的创新或数据集的完善,而是提出了新的预训练任务。
合理的任务指导AI学习
之前的掩码语言模型多是随机选择要掩蔽的部分,经常会选到括号逗号这种对AI来说没什么难度的。
DOB数名F的做法是指定遮蔽变量名、函数名和类名并让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
论文地址:
http事了s://arxiv.org/abs/2102.07492
国际C语言混乱代码大赛:
http://www.ioccc.org/
- ·标签: 红果短剧 王凯沐 徐轸轸 字节跳动
- ·标签: 宇树科技 A股上市 王兴兴 机器人
- ·如何避免数据迁移陷阱
- ·谷歌Pixel Buds震撼升级:AI手势控制引领耳机革命,130美元就能拥有降噪黑科技
- ·丹佛斯报告提出数据中心从“能耗大户”迈向“新型能源资产”的系统性方案
- ·标签: 安世半导体 闻泰科技 荷兰政府 芯片短缺
- ·吃菠萝不加盐会怎么样
- ·专利申请显示苹果研究如何将显示屏集成到智能扬声器的织物中
- ·Anthropic Mythos AI 模型遭黑客入侵,安全性引发质疑
- ·泰勒·斯威夫特新专寻宝游戏引争议:粉丝质疑推广视频系 AI 生成
- ·标签: 死了么 APP 仿冒
- ·数组,你不一定了解的全面
- ·贝叶斯深度学习:一个统一深度学习和概率图模型的框架
- ·英伟达市值突破 4.5 万亿美元,AI 基础设施交易频频达成
- ·微软Azure云计算平台第二财季营收同比增长率不及上一财年同期
- ·标签: 三星电子 SK海力士 台积电 苹果
- ·https://www.televes.com/es/catalogsearch/result/?q=外推留痕软件【tg:seogoogle987】,tZl
- ·https://store.line.me/search/sticker/ja?q=外推留痕软件【tg:seogoogle987】h15
- ·https://www.losgatoschamber.com/list/search?action=SEARCH&q=外推留痕软件【tg:seogoogle987】,Zwg
- ·https://www.southmeadows.co.uk/2019/07/?s=外推留痕软件【tg:seogoogle987】,9eS
- ·https://www.nbm.org/?action=QUERY&s=外推留痕软件【tg:seogoogle987】,VJT
- ·https://www.wmfe.org/?s=外推留痕软件【tg:seogoogle987】,bWF
- ·https://www.selfsufficientish.com/main/?s=外推留痕软件【tg:seogoogle987】,bnf
- ·https://www.ussalabama.com/?action=CHECK&s=外推留痕软件【tg:seogoogle987】,kgp
- ·https://www.metalmensales.com/?action=QUERY&s=外推留痕软件【tg:seogoogle987】,8ZO
- ·https://www.military-history.org/?s=外推留痕软件【tg:seogoogle987】,sZ5
- ·标签: 华境S iPhoneFold REDMIK90Max 华为乾崑
- ·标签: OceanBase 国产数据库
- ·云计算开发:Python内置函数-open() 函数详解
- ·云安全日报210317:Ubuntu Linux内核发现拒绝服务漏洞,需要尽快升级
- ·Twitter将推出订阅服务:用户为独家内容付费
- ·标签: DeepSeek V3.2 Speciale Gemini-3.0-Pro
- ·标签: 图达通 激光雷达 蔚来 港股上市
- ·Pax8近日宣布收购Wirehive,利于全球数字化转型
- ·突发利空?“吹嘘”iPhone这项功能,万亿苹果被罚近8000万元
- ·云计算核心技术Docker教程:Docker 守护进程dockerd默认的CGROUP父级
