在线欧美精品国产综合五月_国产精品免费久久久久影院_国产精品久久久久无码av_a级毛片黄免费a级毛片

首頁 > 新聞 > 智能 > 正文

環球新動態:來自 Google 開發者的一手實戰:使用機器學習解決代碼審查評論

2023-05-30 15:22:37來源:ZAKER科技  

【CSDN 編者按】代碼審查是大規模軟件開發過程中的一個重要部分,占用了代碼提交人員和代碼審查員的大量時間。Google 也不例外,為此,他們采用了最近在序列模型中的先進技術,以自動解決 Google 日常開發工作流程中的代碼審查評論。


(資料圖片僅供參考)

原文地址:https://ai.googleblog.com/2023/05/resolving-code-review-comments-with-ml.html

作者 | Alexander Fr mmgen,Lera Kharatyan,谷歌核心系統和體驗團隊

譯者 | 明明如月

出品 | CSDN(ID:CSDNnews)

在代碼審查過程中,審查員會審查代碼中的問題并編寫評論要求作者進行代碼更改。在 Google,我們每年看到數百萬條審查員的評論,作者們需要花費大約 60 分鐘的時間來應對這些評論,并根據評論的文本提出代碼更改。我們研究發現,代碼作者為解決審查員評論必須付出的工作時間幾乎隨評論數量線性增長。然而,借助機器學習(ML),我們可以自動化并簡化代碼審查過程,例如,根據代碼審查評論自動給出對應的代碼變更。

今天,我們采用了最近在序列模型中的先進技術,以自動解決 Google 日常開發工作流程中的代碼審查評論(即將發布)。截止今天,Google 的工程師已經可以通過應用 ML 建議的修改來處理大量的代碼審查員評審建議。我們預計這將每年為 Google 節省數十萬小時的代碼審查時間。我們收到了很多非常積極的反饋,說明了機器學習建議的代碼修改確實提高了 Google 開發人員的生產力 , 能夠讓他們專注于更有創造力和復雜的任務。

預測代碼修改

我們首先訓練了一個模型來預測解決評論所需的代碼修改。該模型在各種編碼任務和相關的開發者活動 ( 例如 , 重命名一個變量 , 解決構建過程中的錯誤 , 編輯一個文件 ) 上進行了預訓練。然后,使用審查過的代碼修改、審查員的評論以及作者執行的解決這些評論的修改,對該模型進行特定任務的微調。

這是一個基于 ML 建議進行代碼重構的一個實例

Google 使用一個單體倉庫(monorepo),這是一種源代碼管理策略,所有的代碼和資源都存儲在同一個倉庫中,而不是分散在多個倉庫中。這種策略有許多優點,包括代碼共享和重用、大規模重構、協作和依賴管理等。這使得我們的訓練數據集能夠包含用于構建 Google 最新軟件及其之前版本的海量代碼。

為了改進模型質量,我們不斷迭代訓練數據集。例如,我們比較了包含每個文件的單個審查員評論的數據集與每個文件的多個評論的數據集的模型性能,并使用分類器根據一個小型、精心策劃的數據集來清理訓練數據,以選擇具有最佳離線精度和召回率指標的模型。

服務基礎設施和用戶體驗

我們在訓練好的模型的基礎上設計和實現了這個功能,重點關注整體用戶體驗和開發者效率。作為其中一部分,我們通過一系列用戶研究,探索了不同的用戶體驗(UX)替代方案。然后,我們根據來自內部測試版(即,開發中的功能測試)的洞察,包括用戶反饋(例如,在建議的編輯旁邊 加入 " 這有幫助嗎?(Was this helpful)" 按鈕),對功能進行了優化。

最終的模型被校準為目標 準確率為 50%。也就是說,我們調整了模型和建議過濾,以使我們的評估數據集中 50% 的建議修改是正確的。一般來說,提高目標準確率會減少顯示的建議編輯的數量,降低目標準確率會導致更多的錯誤建議編輯。錯誤的建議編輯會占用開發者的時間,降低開發者對該功能的信任。我們發現,目標準確率為 50% 提供了一個良好的平衡。

在較高層次上,對于每個新的審查員評論,我們以與訓練相同的格式生成模型輸入,查詢模型,并生成建議的代碼修改。如果模型對預測有信心,并且滿足了一些額外的啟發式規則,我們就會將建議的修改發送到下游系統。下游系統,即代碼審查前端和集成開發環境(IDE),向用戶展示建議的編輯,并記錄用戶交互,如預覽和應用事件。一個專門的管道收集這些日志,并生成匯總洞察,例如,本博客文章中報告的總體接受率。

ML 建議編輯(ML-suggested edits)基礎設施的架構。我們處理來自多個服務的代碼和基礎設施,獲取模型預測并在代碼審查工具和 IDE 中顯示預測結果

開發者在代碼審查工具和 IDE 中與 ML 建議的編輯進行交互。根據用戶研究的洞察,集成到代碼審查工具中最適合于流線型的審查體驗。IDE 集成提供了額外的功能,并支持在審查過的代碼狀態(右圖)上有沖突的本地更改情況下,對 ML 建議的編輯(左圖)進行三方合并,合并到合并結果(中圖)。

IDE 中的三向合并的演示

結果

離線評估表明,模型以 50% 的目標精確度解決了 52% 的評論。測試版和完整內部發布的在線指標確認了這些離線指標,也就是說,我們看到約 50% 的所有相關審查員評論上,模型建議的信心超過了我們的目標模型信心。代碼作者應用了所有預覽過的建議編輯的 40% 到 50%。

在測試版期間,我們利用 " 沒有幫助(not helpful)" 的反饋來識別模型的常見失敗模式。我們實施了服務時間啟發式規則來過濾這些,并因此減少了顯示的錯誤預測的數量。通過這些更改,我們用質量換取了數量,并觀察到現實世界接受率的增加。我們的測試版推出顯示出一個潛在的問題:代碼作者只預覽了約所有生成的建議編輯的 20%。我們優化了用戶體驗,在審查員評論旁邊引入了一個顯眼的 " 顯示 ML 編輯(Show ML-edit)" 按鈕(參見上圖),在發布時的總預覽率約提升到了 40%。我們還發現,由于作者在審查過程中進行了沖突的更改,代碼審查工具中的建議編輯經常不適用。我們用一個按鈕解決了這個問題,這個按鈕在代碼審查工具中打開了一個合并視圖,用于建議的編輯。我們現在觀察到,這些中有超過 70% 的在代碼審查工具中應用,不到 30% 的在 IDE 中應用。所有這些改變使我們能夠將采用 ML 建議編輯解決的審查員評論的總體比例增加了兩倍,從測試版到完全內部發布。在 Google 可以幫助我們每年自動解決幾十萬條評論。建議過濾漏斗

我們看到 ML 建議的編輯在生產中解決了審查員評論的廣泛范圍。這包括簡單的局部重構和在代碼中分散的重構,如上述博客文章中的示例所示。該功能解決了需要代碼生成、重構和導入的較長和非正式措辭的評論。

一個需要代碼生成、重構和導入的較長且代碼評審建議的示例

模型也可以回應復雜的評論并產生較大范圍的代碼修改(如下所示)。生成的測試案例遵循現有的單元測試模式,同時更改評論中描述的細節。此外,編輯建議了一個全面的測試名稱,反映了測試的語義。

模型回應復雜評論并生成大量代碼修改的能力的示例

結論和未來工作

在這篇文章中,我們介紹了一個機器學習( ML)輔助功能,以減少在代碼審查相關修改上花費的時間。目前,在 Google 使用的編程語言中,大量的所有可操作的代碼審查評論都可以通過應用 ML 建議的編輯來解決。我們將在所有 Google 開發人員中進行的為期 12 周的 A/B 實驗將進一步衡量該功能對整體開發者生產力的影響。

我們正在全面優化整個技術棧。這包括提高模型的質量和召回率,給開發者提供更流暢的使用體驗,通過改進發現性(提供清晰的界面和導航,以幫助用戶快速找到他們所需的功能,而無需花費過多的時間和精力)來提升整個審查過程的體驗。作為其中的一部分,我們正在研究在審查員草擬評論時顯示 ML 建議的編輯的功能,并將功能集成到 IDE 中,以便代碼變更的作者能夠在獲取審查人員的描述時就可以獲得 ML 的代碼修改建議。

致謝

這是 Google 核心系統和體驗團隊、Google Research 和 DeepMind 的許多人的共同研究成果。我們特別感謝 Peter Choy 為我們的合作提供支持,以及我們團隊所有成員的關鍵貢獻和有益建議,包括 Marcus Revaj、Gabriela Surita、Maxim Tabachnyk、Jacob Austin、Nimesh Ghelani、Dan Zheng、Peter Josling、Mariana Stariolo、Chris Gorgolewski、Sascha Varkevisser、Katja Gr ü nwedel、Alberto Elizondo、Tobias Welp、Paige Bailey、Pierre-Antoine Manzagol、Pascal Lamblin、Chenjie Gu、Petros Maniatis、Henryk Michalewski、Sara Wiltberger、Ambar Murillo、Satish Chandra、Madhura Dudhgaonkar、Niranjan Tulpule、Zoubin Ghahramani、Juanjo Carin、Danny Tarlow、Kevin Villela、Stoyan Nikolov、David Tattersall、Boris Bokowski、Kathy Nix、Mehdi Ghissassi、Luis C. Cobo、Yujia Li、David Choi、Krist ó f Moln á r、Vahid Meimand、Amit Patel、Brett Wiltshire、Laurent Le Brun、Mingpan Guo、Hermann Loose、Jonas Mattes、Savinee Dancs。

關鍵詞:

責任編輯:hnmd003

相關閱讀

相關閱讀

推薦閱讀

在线欧美精品国产综合五月_国产精品免费久久久久影院_国产精品久久久久无码av_a级毛片黄免费a级毛片

      
      

        日韩av二区在线播放| 国产精品午夜春色av| 一区二区三区久久| 日韩午夜电影av| 亚洲日本电影在线| 国产一区二区在线观看视频| 国产日产亚洲精品系列| 91九色最新地址| 亚洲国产精品ⅴa在线观看| 日韩av在线免费观看不卡| 2022国产精品视频| 色婷婷综合久久久久中文一区二区 | 国产精品盗摄一区二区三区| 欧美精品自拍偷拍| 亚洲精品自拍动漫在线| 国产在线观看一区二区| 中文字幕在线观看一区二区| 欧美日韩久久久久久| 亚洲欧美韩国综合色| 国产高清久久久久| 亚洲一二三区不卡| 亚洲1区2区3区4区| 成人免费黄色大片| 亚洲国产综合91精品麻豆| 久久综合九色综合97婷婷女人| 丝袜亚洲另类欧美综合| 国产亚洲美州欧州综合国| 精品视频1区2区| 亚洲另类春色国产| 91在线精品秘密一区二区| 色天使久久综合网天天| 国产精品久久久久一区二区三区| 国产精品一区二区三区99| 亚洲免费在线播放| 久久久青草青青国产亚洲免观| 日本成人中文字幕| 亚洲视频香蕉人妖| 久久婷婷综合激情| 久久草av在线| 伊人婷婷欧美激情| 国产欧美一区二区精品仙草咪| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品日产精品乱码不卡| 国产日韩精品一区| 福利一区福利二区| 日本高清不卡视频| 亚洲一区二区视频在线| 国产亚洲成aⅴ人片在线观看| 欧美精品vⅰdeose4hd| 日韩不卡一二三区| 亚洲人成影院在线观看| 欧美国产精品v| 成人福利视频在线看| 欧美在线免费观看视频| 亚洲一区二区三区视频在线播放 | 26uuu精品一区二区三区四区在线| 男男成人高潮片免费网站| 亚洲免费色视频| 国产精品久久久久久久久晋中| 成人福利视频在线| 欧美女孩性生活视频| 日韩国产精品久久久久久亚洲| 亚洲欧洲美洲综合色网| 国产欧美日本一区二区三区| 成人免费视频app| 欧美日韩久久不卡| 蜜臀av一级做a爰片久久| 亚洲综合区在线| 亚洲美女区一区| 中文字幕乱码久久午夜不卡| 26uuu精品一区二区在线观看| 国产盗摄视频一区二区三区| 在线观看成人小视频| 日韩国产欧美在线播放| 亚洲福利视频一区二区| 亚洲综合999| 专区另类欧美日韩| 成人欧美一区二区三区黑人麻豆| 久久尤物电影视频在线观看| 欧美成人a视频| 国产+成+人+亚洲欧洲自线| 欧美久久一二三四区| 国内一区二区视频| 欧美日韩视频在线第一区 | 欧美精品一区二区不卡| 成人免费毛片app| 日韩欧美激情在线| 国产suv精品一区二区三区| 337p亚洲精品色噜噜| 国产福利一区二区| 91精品国产综合久久久蜜臀粉嫩| 国产精品综合在线视频| 欧美日韩激情在线| 国产一区二区三区美女| 欧美日韩国产系列| 国产剧情av麻豆香蕉精品| 欧美精品亚洲二区| 国产高清精品久久久久| 日韩欧美亚洲另类制服综合在线| 国产精品一区二区视频| 欧美一区二区三区男人的天堂| 丰满少妇在线播放bd日韩电影| 日韩午夜av电影| www.欧美色图| 久久影院视频免费| 久久九九影视网| 国产精品无遮挡| 中文字幕在线免费不卡| 亚洲制服丝袜av| 一本到高清视频免费精品| 日本不卡123| 欧美三级午夜理伦三级中视频| 久久精工是国产品牌吗| 欧美群妇大交群中文字幕| 国产福利一区二区| 久久久久久久精| 国产日产欧美一区二区三区| 亚洲人成网站精品片在线观看| 一区二区三区自拍| 日韩av中文字幕一区二区| 欧美理论片在线| 99久久精品国产一区| 中日韩免费视频中文字幕| 亚洲色图视频网站| 日日夜夜精品视频天天综合网| 在线观看日韩一区| 国产成人精品一区二区三区四区| 精品福利av导航| 欧美激情一区二区| 亚洲一卡二卡三卡四卡五卡| 在线视频一区二区三| 国产成人精品免费| 国产亚洲女人久久久久毛片| 中文字幕一区三区| 午夜免费欧美电影| 欧美精品在线一区二区三区| 91丝袜美女网| 亚洲天堂成人网| 午夜日韩在线观看| 粉嫩嫩av羞羞动漫久久久| 久久精品亚洲乱码伦伦中文| 18涩涩午夜精品.www| 免费在线欧美视频| 精品日韩欧美一区二区| 国产精品女主播在线观看| 日韩精品1区2区3区| 日韩欧美的一区二区| 国产精品美女一区二区在线观看| 亚洲va欧美va天堂v国产综合| 欧美日韩免费高清一区色橹橹| av在线一区二区| 一区二区三区四区精品在线视频| 在线视频你懂得一区| 91在线视频官网| 亚洲资源在线观看| 69堂成人精品免费视频| 国产三区在线成人av| 亚洲自拍偷拍九九九| 69堂国产成人免费视频| 中文字幕国产一区| 久久99国产精品尤物| 久久久久久麻豆| 亚洲一二三四区不卡| 成人精品国产一区二区4080| 亚洲色图制服丝袜| 欧美日韩一二三| 中文字幕第一区综合| 美国av一区二区| 国产亚洲一区二区三区| 亚洲一区二区视频| 高潮精品一区videoshd| 亚洲码国产岛国毛片在线| 欧美区一区二区三区| 国产精品天天看| 久99久精品视频免费观看| 欧美激情一区二区三区不卡| 色偷偷久久人人79超碰人人澡| 96av麻豆蜜桃一区二区| 偷拍亚洲欧洲综合| 国产午夜亚洲精品午夜鲁丝片| 午夜电影网一区| 26uuu精品一区二区| 日本不卡在线视频| 国产精品伦理一区二区| 欧美日韩精品一区二区三区四区| 国产精品亲子伦对白| 国产酒店精品激情| 亚洲综合无码一区二区| 日韩一区二区精品| 一区二区成人在线| 91色在线porny| 免费欧美高清视频| 亚洲欧洲韩国日本视频| 欧美疯狂性受xxxxx喷水图片| 国产精品福利一区二区三区| 国产成人av一区二区| 亚洲成人综合在线| 国产色产综合色产在线视频| 欧美性生活大片视频| 自拍偷拍欧美精品|