国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

滅霸來了!微軟發(fā)布BugLab:無需標注,GAN掉Bug

新聞 Windows
最近微軟在 NeurIPS 2021 上帶來了一個好消息,研究人員設計了一個類似 GAN 的網絡,通過選擇器和檢測器來互相寫和改 bug,而且還不需要標注數據!

[[441860]]

程序員的死對頭就是各種 bug!最近微軟在 NeurIPS 2021 上帶來了一個好消息,研究人員設計了一個類似 GAN 的網絡,通過選擇器和檢測器來互相寫和改 bug,而且還不需要標注數據!

  常言道,「一杯茶,一包煙,一個 bug 改一天」。

  寫代碼是軟件工程師們每天的工作,但當你辛辛苦苦寫了一大堆代碼,卻發(fā)現無法運行的時候,內心一定是崩潰的。

  找 bug 不僅費時費力,最關鍵的是還經常找不著,并且有時候改了一個 bug 又會引入更多 bug,子子孫孫無窮盡也。

  簡直就是找 bug 找到吐血。

  隨著 AI 技術的發(fā)展,各大公司開發(fā)的代碼助手如 GitHub Copilot 等也能幫你少寫一些有 bug 的代碼。

  但這還遠遠不夠!

  深度學習要是能幫我把代碼里的 bug 也給修了,我上班只負責摸魚,豈不是美滋滋!

  微軟在 NeurIPS 2021 上還真發(fā)了一篇這樣的論文,其中提出了一個新的深度學習模型 BugLab,并通過自監(jiān)督的學習方法,可以在不借助任何標注數據的情況下檢測和修復代碼中的 bug,堪稱程序員的救世主!

  修 bug 難在哪?

  所謂的 bug,就是代碼的實際運行和自己的預期不符。

  該運行的沒運行,該輸出a,結果卻輸出個b,這種代碼故意找茬的行為都屬于 bug。

  所以想要找到并修復代碼中的 bug,不僅需要對代碼的結構進行推理,還需要理解軟件開發(fā)者在代碼注釋、變量名稱等方面留下的模糊的自然語言提示。

  例如一段程序的意圖是,如果名字的長度超過了 22 個字符,那就只截取前 22 個。但原始代碼中錯誤地把大于號寫成了小于號,導致條件判斷錯誤,程序運行結果和預期不符。

  這種小錯誤在寫代碼的過程也是太常見了,稍不注意就會把條件弄反。

  還有一種 bug 就是使用了錯誤的變量,例如下面的例子里面 write 和 read 弄錯了,就會導致條件判斷失敗,這種 bug 的修復只有在理解了變量名的意義后才能修復,傳統(tǒng)的修復手段對此是無能為力。

  這種錯誤看起來很簡單,但往往盯著看代碼的時候卻很難發(fā)現,屬于一改改一天的那種。

  并且每個程序員有自己的編程風格,比如不同的命名、縮進、判斷以及重構的方式,想讓代碼來給自己找 bug,一個字,難!

  對于微軟來說,好在有 GitHub 代碼庫可以用來訓練模型。但問題來了,GitHub 上帶 bug 的代碼有那么多嗎?有 bug 誰還 commit 啊?就算能找到代碼,也沒人來標注數據啊!

  微軟提出的 BugLab 使用了兩個相互競爭的模型,通過玩躲貓貓(hide and seek)游戲來學習,主要的靈感來源就是生成對抗網絡(GAN)。

  由于有大量的代碼實際上都是沒有 bug 的,所以需要設計一個 bug selector 來決定是否修改正確的代碼來引入一個 bug,以及以何種方式引入 bug(例如把減號改為加號等)。當選擇器確定了 bug 的類別后,就通過編輯源代碼的方式引入 bug。

  另一個用來對抗的是 bug detector,用來判斷一段代碼是否存在 bug,如果存在的話,它需要定位并修復這個 bug。

  選擇器和檢測器都能夠在沒有標記數據的情況下共同訓練,也就是說整個訓練過程都是以自監(jiān)督的方式進行,并成功在數百萬個代碼片段上訓練。

  selector 負責寫 bug,并把它藏(hide)起來,而 detector 負責找 bug,并修復,整個過程就像躲貓貓一樣。

  隨著訓練的進行,selector 寫 bug 越來越熟練,而 detector 也能夠應對更復雜的 bug。

  整個過程與 GAN 的訓練大體相似,但目的卻大不相同。GAN 的目的是獲得一個更好的生成器來修改圖片,但 BugLab 的目的是找到一個更好的檢測器(GAN 中的判別器)。

  并且整個訓練也可以看作是一個 teacher-student 模型,選擇器教會檢測器如何定位并修復 bug。

  為開源社區(qū)修 bug!

  雖然從理論上來說,使用這種 hide and seek 的方式可以訓練更復雜的 selector 來生成更多樣的 bug,從而 detector 的修 bug 能力也會更強。

  但以目前的 AI 發(fā)展水平來說,還無法教會 selector 寫更難的 bug。

  所以研究人員表示,我們需要集中精力關注那些更經常犯的錯誤,包括不正確的比較符,或者不正確的布爾運算符,錯誤的變量名引用等等其他一些簡單的 bug。并且為了簡單起見,實驗中只針對 python 代碼進行研究訓練。

  雖然這些解釋聽起來都像是借口。

  為了衡量模型的性能,研究人員從 Python 包索引中手動注釋了一個小型 bug 數據集,和其他替代方案(例如隨機插入 bug 的 selector)相比,使用 hide and seek 方法訓練的模型性能最多可以提高 30%

  并且實驗表明大約 26% 的 bug 都可以被發(fā)現并自動修復。在檢測器發(fā)現的 bug 中,有 19 個在現實生活中的開源 GitHub 代碼中都屬于是未知的 bug。

  但模型也會對正確的代碼報告存在 bug,所以這個模型在離實際部署上線還有一段距離。

  如果更深入地研究 selector 和 detector 模型的話,就會引出那個老生常談的問題:深度學習模型到底有沒有,又怎么樣去「理解」一段代碼的作用?

  過去的研究表明,將代碼表示為一個 token 序列就能夠產生次優(yōu)的(suboptimal)效果。

  但如果想要利用代碼中的結構,例如語法、數據、控制流等等,就需要將代碼中的語法節(jié)點、表達式、標識符、符號等等都表示為一個圖上的節(jié)點,并用邊來表示節(jié)點間的關系。

  有了圖以后就可以使用神經網絡來訓練 detector 和 selector 了。研究人員使用圖神經網絡(GNN)和 relational transformer 都進行了實驗,結果發(fā)現 GNN 總體上優(yōu)于 relational transformer。

  如何讓 AI 幫助人類來寫代碼和改 bug 一直都是人工智能研究中的一項基礎任務,任務過程中 AI 模型需要理解人類對程序代碼、變量名稱和注釋提供的上下文線索來理解代碼的意圖。

  雖然 BugLab 離真正解放程序員改 bug 還很遙遠,但距離我們消滅 bug 總算又向前走了一步!

 

 

責任編輯:張燕妮 來源: 新智元
相關推薦

2020-06-03 14:43:26

Java虛擬機JVM

2019-10-08 14:40:53

Java線程

2019-05-08 15:27:15

命令Windows微軟

2021-01-20 23:28:37

Windows 10Windows微軟

2019-05-14 05:26:11

自然語言NLP代碼

2021-06-29 06:41:11

Windows 11操作系統(tǒng)微軟

2020-10-21 09:04:53

iOS 14.1iPad OS 14.蘋果

2013-09-22 09:55:14

2013-05-06 09:51:10

2024-12-09 09:50:00

數據模型

2013-05-22 14:51:36

微軟云計算微軟公有云Windows Azu

2021-12-11 10:27:53

Windows 11操作系統(tǒng)微軟

2022-04-11 09:20:00

模型訓練

2021-10-24 06:42:45

微軟 Office 應用

2024-05-22 10:44:47

2023-06-16 14:11:00

研究監(jiān)督

2022-01-13 07:21:04

Windows 11操作系統(tǒng)微軟

2022-09-16 14:11:36

微軟Windows 10

2020-08-21 17:03:18

微軟WindowsWindows 10
點贊
收藏

51CTO技術棧公眾號

国产精品大片| 九七影院理论片| 国产视频一区二区三区在线观看 | 精品乱人伦小说| 97视频一区| 亚洲视频电影| 久久久久国色av免费看影院| 国产在线导航| 日韩小视频在线| 国产欧美日韩一区二区三区在线| 成人狠狠色综合| 在线看欧美日韩| 久久精品官网| 在线观看免费黄网站| 亚洲摸下面视频| 久久久久一区| 成人综合网址| 精品伦理精品一区| 亚洲精品黄色| 农村寡妇一区二区三区| 久久久久久久性| 9191在线播放| 亚洲一区久久久| 欧美韩日一区二区三区| 91福利在线视频| 欧美精品久久一区二区 | 欧美激情一区二区三区不卡| 在线能看的av网址| 欧美日韩精品免费观看| 91久久国产最好的精华液| 免费精品国产| 国产免费视频| 97在线视频一区| 国产精品久久久久久久浪潮网站| 色综合视频一区二区三区日韩| 亚洲精品成人a8198a| 7777精品伊人久久久大香线蕉的| 国产厕拍一区| 九热视频在线观看| 欧美一级片免费看| 国产一区日韩一区| 91在线视频| 久久天堂国产精品| 无码av免费一区二区三区试看 | 成人两性免费视频| 久久综合国产精品| 成入视频在线观看| 一区二区三区四区欧美日韩| 亚洲国产成人va在线观看天堂| 亚洲午夜剧场| 国产情侣第一页| 亚洲女在线观看| 成人av电影免费在线播放| 激情亚洲小说| 中文字幕在线亚洲精品| 尤物精品国产第一福利三区| 成人爽a毛片一区二区免费| 韩国精品主播一区二区在线观看| 久草热视频在线观看| 久久精品国产96久久久香蕉| 亚洲国产精品99久久久久久久久| 中文另类视频| heyzo国产| 超碰97人人做人人爱少妇| 国产一二三精品| a级影片在线观看| 香蕉久久夜色| 亚洲精品有码在线| 久久精品一区二区三区四区| 极品束缚调教一区二区网站| 成年人黄色电影| 69堂成人精品视频免费| 欧美一区二区视频观看视频| 久久久精品网| 男人最爱成人网| 日韩av黄色网址| 久久99久国产精品黄毛片入口| 国产精品一二三区在线| 久久人体大尺度| 亚洲欧洲精品一区二区| 337p亚洲精品色噜噜狠狠| 久久精品99国产精品| 黄色在线观看www| 亚洲一区影院| 久久手机免费视频| 日韩电影网1区2区| 日本视频在线观看| 91在线短视频| 亚洲欧洲偷拍精品| 国产欧美日韩综合| 亚洲自拍偷拍网| 韩日毛片在线观看| 天天干天天综合| 99精品欧美一区二区三区| 亚洲精品资源在线| 成人网在线播放| 国产精品毛片无码| 1024欧美极品| 国产91亚洲精品一区二区三区| 亚洲成人黄色网| 亚洲日本护士毛茸茸| 亚洲永久免费精品| 国产精品高潮久久| 爱情岛论坛vip永久入口| 成人国产亚洲精品a区天堂华泰| 欧美一级欧美三级在线观看| ww亚洲ww在线观看国产| 国产精品vip| 婷婷久久免费视频| 国产真实乱子伦| 欧美日本韩国一区二区三区| 一区二区三区成人| 欧美 日韩 亚洲 一区| 欧美在线免费观看| 91精品国产综合久久久久| 白白色 亚洲乱淫| 性欧美欧美巨大69| 欧美片第一页| 在线中文字幕资源| 中文字幕久精品免| 国产激情久久久| 亚洲精品国偷自产在线99热| 午夜精品久久久久久久蜜桃app | 2014亚洲精品| 亚洲国产精品久久久久秋霞不卡| 国产精品毛片久久久久久久| 日欧美一区二区| 香蕉视频一区二区三区| 黄色漫画在线免费看| 成人福利资源| 成人免费网站入口| 国产乱码精品一区二区三区中文| 国产一区二区三区在线视频| 91成人免费在线| 玉米视频成人免费看| 粉嫩嫩av羞羞动漫久久久| 亚洲国产日韩欧美在线| av网站在线看| 欧美裸体男粗大视频在线观看| 亚洲午夜电影网| 成人福利视频网站| 亚洲精品免费观看| 中文字幕亚洲影视| 国产精品亚洲欧美日韩一区在线| 成人午夜毛片| 久草中文在线观看| 国产精品欧美精品| 欧洲专线二区三区| 亚洲www啪成人一区二区| 国产在线高清| 成年人羞羞的网站| 日本特黄a级高清免费大片| 热99这里只有精品| 国产在线播放一区二区| 91传媒视频在线播放| 国产精品女主播在线观看| 国产乱码精品一区二区三区av| 午夜精品久久久久99热蜜桃导演 | 欧美激情论坛| 国产精品免费观看高清| 国产精品久久久91| 欧美亚洲国产一区在线观看网站| 北岛玲一区二区三区四区| 欧美aaa在线| 日韩电影在线免费观看| 日本欧美一区二区三区| 美女视频一区免费观看| 久久高清一区| 午夜亚洲性色视频| 美女日韩欧美| 成年人视频在线观看免费| 亚洲欧美在线第一页| 欧美日韩欧美一区二区| 欧美性jizz18性欧美| 亚洲成a人v欧美综合天堂下载| 一区二区三区国产豹纹内裤在线 | 91精品久久久久久久久青青| 91黑丝在线观看| 欧美成人午夜激情| 亚洲午夜精品久久久久久性色| 亚洲欧美激情在线视频| 国产亚洲精品美女久久久久 | 欧美伊人影院| 久久国产亚洲精品| 欧美猛男男男激情videos| 欧美91在线| 精品一区在线| 欧美激情在线免费| 黑丝一区二区三区| 99久久精品国产亚洲精品 | 日韩欧美国产高清| 日韩av在线免费观看| 亚洲免费视频网站| 免费91麻豆精品国产自产在线观看 | h视频在线观看免费| 色网址在线观看| 美女黄视频在线观看| 欧美少妇网站| 精品国产第一国产综合精品| 亚洲精品国模|