您现在的位置是:貌合心离网 > 热点
AI根据代码内容自动起函数名,再也不怕命名不规范的同事了
貌合心离网2026-11-14【热点】{固定数字1}人已围观
简介谷歌外推【tg:seogoogle987】
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
有的人能把代码写成推理小说。
需要一个临时变量的时候就叫temp,需要多个就叫var1,var2。
甚至用拼音AI缩写当函数名,比如查询订单就叫cxdd。
要想看懂这样的代码,得联系上下文反复推敲,还原每个部分的真实作用。
这个过程叫做反混淆(Deobfuscation)。
麻烦,着实麻烦。就没有省事儿点的办法吗?
让根据AI来啊!
最近,Facebook就出了这样一个语言模型DOBF,专治代码混淆。
像下图这种,所有不影响运行的变量名、函数名、类名,都被替换成无意义的符号,AI都能作出猜测并尝试还原。
来看看和正确答代码案的对比,虽然不是完全一样,但AI的改法也大大提高了代码的可读性。
像FUNC_0,源代码中是“重置参数”,AI改成“初始化权重”,也完全说得通。
DOBF模型目前除了Python还支持C++和Java。
编内容码不规范的人毕竟是少数,这个模型更广泛的用途是恢复故意做混淆以保护知识产权的代码,比如这种:
代码写好后,把不影响编译运行的部分,批量替换成人类难以分辨的符号,给破译增加难度。
在这之前也有掩码语言模型(M自动asked Language Model)用于恢复被遮蔽的文本。
用于恢复代码的有哈工大&微软开发的CodeBERT和Facebook之前开发的TransCoder,但效果都不如最新的DOBF。
DOB起函F超过它们靠的不是模型架构上的创新或数据集的完善,而是提出了新的预训练任务。
合理的任务指导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预训练都取得了更好的成绩。
Fac规范ebook下一步还要以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/
很赞哦!(62138)
相关文章
- 大数据可视化应用于哪些现实场景
- 云计算核心技术Docker教程:Docker在容器中运行多个服务
- 云计算开发实例:Python3移除字典点键值(key/value)对
- 标签: 张雪峰 心脏骤停 升学规划 家庭教育
- 研究揭示:AI 使用让我们高估认知能力
- 云安全日报210823:XStream Java序列化库发现执行任意代码漏洞,需要尽快升级
- 标签: 谷歌 Alphabet Intersect Power 数据中心
- 2025云栖大会剧透来了!今年有这些AI新看点
- Twitter将于2月10日发布2020年第四季度及全年财报
- 标签: 苹果 Apple Intelligence Gemini Siri
站长推荐
友情链接
- 标签: 康师傅
- https://www.rostaing.com/catalogsearch/result/?cat=22&q=谷歌外推【tg:seogoogle987】,3Sj
- https://www.losgatoschamber.com/list/search?action=SEARCH&q=谷歌外推【tg:seogoogle987】,0uV
- https://www.parriscues.com/catalogsearch/result/?q=谷歌外推【tg:seogoogle987】,KrT
- https://www.mdbg.net/chinese/dictionary?page=worddict&wdrst=0&wdqb=谷歌外推【tg:seogoogle987】,uBp
- https://www.lyrics.com/lyrics/kkk3谷歌外推【tg:seogoogle987】,8kX
- https://www.lyrics.com/lyrics/谷歌外推【tg:seogoogle987】,sR9
- https://www.lenovo.com/gb/en/search?action=SEARCH&text=谷歌外推【tg:seogoogle987】,4CL
- https://www.qylaws.com/search/谷歌外推【tg:seogoogle987】,FYI
- https://www.wilsonart.com/catalogsearch/result/?action=CHECK&q=谷歌外推【tg:seogoogle987】,4Mt
- https://www.maafushidive.com?collections?vendors?q=谷歌外推【tg:seogoogle987】,Ysi
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌外推【tg:seogoogle987】FU3
- https://www.remit.co.jp/vi/?s=谷歌外推【tg:seogoogle987】,2hY
- https://www.jusoen.com/addreng.asp?p1=谷歌外推【tg:seogoogle987】KUZ
- https://www.nyif.com/catalogsearch/result/index/?f=sarbanesoxleyU&index=me_cms_pe&lit=20&mode=list&p=1&q=谷歌外推【tg:seogoogle987】,jmD
- https://www.olx.ba/pretraga?trazilica=谷歌外推【tg:seogoogle987】,p7n
- https://www.nss.nhs.scot/search?q=谷歌外推【tg:seogoogle987】,DmG
- https://www.unclefossil.com/search/谷歌外推【tg:seogoogle987】gad_source=1&gclid=Cj0KCQjw_-GxBhC1ARIsADGgDjsNKplUXa2F6YGlHBK2sHDQ88cgsJBb05DyO99TV9jNq_cT0kGMqyQaAgHQEALw_wcB
- https://www.tiktok.com/tag/谷歌外推【tg:seogoogle987】,fSO
- https://www.youtube.com/hashtag/谷歌外推【tg:seogoogle987】,HjG
- https://www.lauben.com/de/?s=谷歌外推【tg:seogoogle987】,dR2
- https://www.reginatangoshoes.com/en/catalogsearch/result/index/?T=1686132113407&q=谷歌外推【tg:seogoogle987】,6ah
- https://www.oprny.com/search.php?search_query=谷歌外推【tg:seogoogle987】,ruU
- https://www.pearson.com/en-us/search.html?aq=谷歌外推【tg:seogoogle987】,uyS
- https://www.tombow.com/search/谷歌外推【tg:seogoogle987】,YxC
- https://www.nyif.com/catalogsearch/result/?q=谷歌外推【tg:seogoogle987】,9N6
- https://www.youtube.com/results?search_query=谷歌外推【tg:seogoogle987】,HvN
- https://www.televes.com/es/catalogsearch/result/?q=谷歌外推【tg:seogoogle987】,gCY
- https://www.shopping.com/search.html?keyword=谷歌外推【tg:seogoogle987】,eso
- https://www.lgnewsroom.com/search/谷歌外推【tg:seogoogle987】,qS2
- https://www.roberthalf.com/us/en/jobs/all/谷歌外推【tg:seogoogle987】4UL
- https://www.seagrant.wisc.edu/?page=63&s=谷歌外推【tg:seogoogle987】,7hH
- https://www.maigoo.com/search/?block=&q=谷歌外推【tg:seogoogle987】,BSW
- https://www.sdcard.org/ja/?s=谷歌外推【tg:seogoogle987】,wTI
- https://m.shoppinghow.kakao.com/m/search/q/谷歌外推【tg:seogoogle987】rRw
- https://www.revere.org/search?action=SEARCH&q=谷歌外推【tg:seogoogle987】,0i0
- https://www.msrenewal.com/search/谷歌外推【tg:seogoogle987】,5FE
- https://www.target.com/s?searchTerm=谷歌外推【tg:seogoogle987】,VHh
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌外推【tg:seogoogle987】,QR2
- https://www.temu.com/search_result.html?search_key=谷歌外推【tg:seogoogle987】gvo
- https://www.sensorshop24.de/catalogsearch/result/index/?type=132&q=谷歌外推【tg:seogoogle987】,ueP
- https://www.ons.gov.uk/search?q=谷歌外推【tg:seogoogle987】,Q3O
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=谷歌外推【tg:seogoogle987】,1vP
- https://www.ng-slo.si/si/iskanje?cat=114&q=谷歌外推【tg:seogoogle987】,5CZ
- https://www.ussalabama.com/?action=CHECK&s=谷歌外推【tg:seogoogle987】,pFc
- https://www.ucycle.com/search/=谷歌外推【tg:seogoogle987】,lmc
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌外推【tg:seogoogle987】,vhX
- https://www.sbaad.no/?s=谷歌外推【tg:seogoogle987】,37E
- https://www.luxurysociety.com/en/search?q=谷歌外推【tg:seogoogle987】,RN4
- https://www.kissthekangaroo.com.au/index.php?route=product/search&tag=谷歌外推【tg:seogoogle987】,n6v
- https://www.lneg.pt/en/?s=谷歌外推【tg:seogoogle987】,NlC







