成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AI根據代碼內容自動起函數名,再也不怕命名不規范的同事了

新聞 人工智能
最近,Facebook就出了這樣一個語言模型DOBF,專治代碼混淆。所有不影響運行的變量名、函數名、類名,都被替換成無意義的符號,AI都能作出猜測并嘗試還原。

 [[414747]]

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

有的人能把代碼寫成推理小說。

需要一個臨時變量的時候就叫temp,需要多個就叫var1var2

甚至用拼音縮寫當函數名,比如查詢訂單就叫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/

 

 

責任編輯:張燕妮 來源: 量子位
相關推薦

2020-01-21 21:15:16

WiFi網絡WiFi6

2020-04-20 15:00:22

DevOps工具代碼

2021-08-12 11:05:07

C++語言內存泄露

2022-04-14 10:22:30

NginxLinux

2020-05-07 09:05:22

電腦Python代碼

2019-12-26 09:38:57

GitHub工具 wxpy

2025-02-28 09:47:36

2020-05-07 16:08:28

Linuxshell命令

2021-05-08 07:53:33

面試線程池系統

2021-03-19 09:55:15

Linuxshell命令

2019-08-19 14:59:49

GitHub代碼開發者

2022-09-20 14:30:24

腳本工具SQL數據庫

2018-05-18 14:39:46

華為 華為云

2014-07-18 15:54:04

goTenna:隨身無

2024-06-20 12:51:37

PythonTermcolor

2025-06-04 08:50:00

LambdaC++編程

2025-04-25 10:00:00

2021-03-26 15:18:11

代碼工具Mockoon

2020-07-14 20:03:55

Windows 10Windows微軟

2023-11-28 17:49:51

watch?computed?性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费在线观看成年人视频 | 欧美日韩国产一区二区三区 | 国产精品欧美一区二区三区 | chengrenzaixian| 一级片毛片 | 欧美一级二级视频 | 久久久久久九九九九九九 | 成人做爰999 | 在线观看av网站永久 | 久久一本 | 欧美激情精品久久久久 | 亚洲一区二区在线播放 | 日韩在线视频一区二区三区 | 九九精品久久久 | 日韩欧美综合在线视频 | 国产免费一区二区三区 | aaa一区| 91精品国产色综合久久 | 日韩综合一区 | 91麻豆精品国产91久久久更新资源速度超快 | 日韩中文字幕一区二区 | 国产精品免费在线 | 美国a级毛片免费视频 | 国产资源在线观看 | 午夜影院 | 亚洲欧美在线视频 | 免费一级淫片aaa片毛片a级 | 一区二区三区视频在线 | av黄色在线 | 91久久北条麻妃一区二区三区 | 91中文字幕 | 精品视频在线观看 | caoporn国产精品免费公开 | 欧美日韩精品亚洲 | 日本不卡一区二区三区在线观看 | 97色伦网| 不卡的av在线 | 国产羞羞视频在线观看 | 在线观看视频91 | 亚洲成人免费视频 | 午夜噜噜噜|