在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

編程神技來了!谷歌新研究根據(jù)已經(jīng)編輯好的代碼預(yù)測(cè)源代碼的 AI

5dy6_dushekeji ? 來源:YXQ ? 2019-04-18 15:47 ? 次閱讀

預(yù)測(cè)源代碼,聽著就是一件非常炫酷的事情。最近,谷歌大腦的研究人員就對(duì)此高難度任務(wù)發(fā)起了挑戰(zhàn),在構(gòu)建源代碼生成模型上實(shí)現(xiàn)了新突破!

編程神技來了!

根據(jù)已經(jīng)編輯好的代碼預(yù)測(cè)源代碼的AI,對(duì)程序員來說是一個(gè)非常寶貴的工具。

最近,谷歌大腦團(tuán)隊(duì)就對(duì)這項(xiàng)難度頗高的任務(wù)發(fā)起了挑戰(zhàn)。

論文地址:

https://arxiv.org/pdf/1904.02818.pdf

改代碼是程序員經(jīng)常要做的事,需求一變,甚至可能要重頭再來。然而,編輯模式(edit pattern)是無法僅僅根據(jù)要插入/刪除的內(nèi)容或者寫好內(nèi)容后的代碼狀態(tài)來被理解。

它需要根據(jù)變化與其所處狀態(tài)的關(guān)系來理解,準(zhǔn)確地對(duì)代碼序列進(jìn)行建模需要學(xué)習(xí)舊代碼的表示方法,這就允許模型可以概括一種模式且對(duì)未來要編寫的代碼內(nèi)容進(jìn)行預(yù)測(cè)。

舉個(gè)例子:

有兩個(gè)歷史記錄A和B,這兩段代碼序列在經(jīng)過2次編輯后,得到了相同狀態(tài),即“狀態(tài)2”。但是在這個(gè)過程當(dāng)中,歷史記錄A是在向foo函數(shù)添加參數(shù),而歷史記錄B是在從foo函數(shù)中刪除參數(shù)。

這項(xiàng)工作,就是希望根據(jù)“狀態(tài)0”和“編輯 1&2 ”,可以預(yù)測(cè)接下來“編輯3”的操作內(nèi)容

為了達(dá)到這個(gè)目的,他們首先開發(fā)了兩種表示方法來捕獲意圖信息,這些信息將隨著代碼序列的長(zhǎng)度“優(yōu)雅地”擴(kuò)展:

顯式表示方法:在序列中“實(shí)例化”代碼內(nèi)容;

隱式表示方法:用于實(shí)例化后續(xù)要編寫的代碼。

然后它們構(gòu)建了一個(gè)機(jī)器學(xué)習(xí)模型,這個(gè)模型可以捕獲原始代碼和預(yù)測(cè)代碼之間的上下文關(guān)系。

構(gòu)建源代碼生成模型新突破

近年來,構(gòu)建源代碼的生成模型成為十分受重視的核心任務(wù)。

然而,以前的生成模型總是根據(jù)生成代碼的靜態(tài)快照(static snapshot)來構(gòu)建的。而在這項(xiàng)工作中,研究人員將源代碼視為一個(gè)動(dòng)態(tài)對(duì)象(dynamic object),并處理軟件開發(fā)人員對(duì)源代碼文件進(jìn)行編輯的建模問題

對(duì)編輯序列建模的主要挑戰(zhàn)是如何開發(fā)良好的表示,既能捕獲有關(guān)意圖的所需信息,又能優(yōu)雅地對(duì)序列的長(zhǎng)度進(jìn)行擴(kuò)展。

正如上述,這項(xiàng)工作主要考慮編輯的兩種表示方法,一是顯式表示方法,二是隱式表示方法

顯式表示方法中,將分層循環(huán)指針網(wǎng)絡(luò)模型視為強(qiáng)大但計(jì)算成本較高的基線。在隱式表示方法中,考慮一個(gè)vanilla序列到序列模型,以及一個(gè)基于注意力的雙頭模型。這些模型展示了由不同問題公式產(chǎn)生的權(quán)衡,并為未來的編輯序列模型提供設(shè)計(jì)決策。

在精心設(shè)計(jì)的合成數(shù)據(jù)和對(duì)Python源代碼進(jìn)行細(xì)粒度編輯的大型數(shù)據(jù)集上,研究人員評(píng)估了模型的可伸縮性和準(zhǔn)確性,以及模型觀察以往編輯序列并預(yù)測(cè)未來編輯內(nèi)容的能力。

實(shí)驗(yàn)表明,雙頭注意力模型特別適合實(shí)現(xiàn)對(duì)真實(shí)數(shù)據(jù)的高精度、校準(zhǔn)良好的置信度和良好的可擴(kuò)展性。

總之,這項(xiàng)工作形式化了從編輯序列中學(xué)習(xí)和預(yù)測(cè)編輯序列的問題,提供了對(duì)模型空間的初步探索,并演示了從開發(fā)人員對(duì)源代碼進(jìn)行的編輯中學(xué)習(xí)的實(shí)際問題的適用性。

問題定義:如何表示編輯序列數(shù)據(jù)

隱式和顯式數(shù)據(jù)表示

第一個(gè)問題是如何表示編輯序列數(shù)據(jù)。我們定義了兩種具有不同權(quán)衡的數(shù)據(jù)格式。

顯式格式 (圖 2 (a)) 將編輯序列表示為 2D 網(wǎng)格中 tokens 序列的序列。內(nèi)部序列對(duì)文件中的 tokens 建立索引,外部序列對(duì)時(shí)間建立索引。任務(wù)是消耗前 t 行并預(yù)測(cè)在時(shí)間 t 進(jìn)行的編輯的位置和內(nèi)容。

隱式格式 (圖 2 (b)) 將初始狀態(tài)表示為 tokens 序列,將編輯表示為 (position, content) 對(duì)的序列。

圖 2:將 “BACA” 轉(zhuǎn)換為 “BABBCACC” 的編輯序列的顯式表示 (a) 和隱式表示 (b)。

問題描述

顯式問題的目標(biāo)是學(xué)習(xí)一個(gè)模型,該模型使給定的可能性最大化;隱式問題是學(xué)習(xí)一個(gè)模型,該模型使給定所有 t 的的?

基線模型

基線顯式模型 (Baseline Explicit Model)

基線顯式模型是一個(gè)兩級(jí)長(zhǎng)短時(shí)記憶 (LSTM) 神經(jīng)網(wǎng)絡(luò),類似于 Serban 等人 (2016) 的分層 RNN 模型。

基線隱式模型 (Baseline Implicit Model)

sequence-to-sequence 框架的自然應(yīng)用是使用編碼器的初始狀態(tài) s (0),并在解碼器中生成 (p (t) i, c (t)) 對(duì)的序列。編碼器是一個(gè)標(biāo)準(zhǔn)的 LSTM。解碼器不太標(biāo)準(zhǔn),因?yàn)槊總€(gè)動(dòng)作都是成對(duì)的。為了將對(duì)作為輸入處理,我們將 p (t) i 的嵌入與 c (t) 的嵌入連接起來。為了產(chǎn)生成對(duì)的輸出,我們先預(yù)測(cè)位置,然后給出給定位置的內(nèi)容。

隱式注意力模型

我們開發(fā)了一個(gè)模型,它對(duì)隱式表示進(jìn)行操作,但是能夠更好地捕獲編輯內(nèi)容與編輯上下文之間關(guān)系的序列。

該模型深受 Vaswani 等人 (2017) 的啟發(fā)。在訓(xùn)練時(shí),編輯的完整序列在單個(gè)前向傳遞中被預(yù)測(cè)。

有一個(gè)編碼器計(jì)算初始狀態(tài)和所有編輯的隱藏表示,然后有兩個(gè) decoder heads:第一個(gè)解碼每個(gè)編輯的位置,第二個(gè)解碼給定位置的每個(gè)編輯的內(nèi)容。

圖 3 (b, c) 對(duì)模型的整體結(jié)構(gòu)進(jìn)行了概述。

圖 3:(a) 基線顯式模型;(b, c) 隱式注意力模型

實(shí)驗(yàn)和結(jié)果:模型可以解決幾乎所有任務(wù)

實(shí)驗(yàn)的目的是了解上述模型的能力和局限性,并在實(shí)際數(shù)據(jù)上進(jìn)行評(píng)估。

實(shí)驗(yàn)有兩個(gè)主要因素,一是模型如何準(zhǔn)確地學(xué)習(xí)識(shí)別編輯序列中的模式,二是模型如何擴(kuò)展到大數(shù)據(jù)。

在第一組實(shí)驗(yàn)中,我們?cè)谝粋€(gè)簡(jiǎn)單的環(huán)境中研究了這些問題;在第二組實(shí)驗(yàn)中,我們根據(jù)真實(shí)數(shù)據(jù)進(jìn)行了評(píng)估。

本節(jié)中,我們?cè)u(píng)估了三種方法:顯式模型縮寫為 E,隱式 RNN 模型縮寫為 IR,隱式注意力模型縮寫為 IA。

表 1:在合成數(shù)據(jù)集上的準(zhǔn)確性

表 1 報(bào)告了產(chǎn)生最佳開發(fā)性能的超參數(shù)設(shè)置和步驟的測(cè)試性能。結(jié)果表明,顯式模型和改進(jìn)的隱式模型可以解決幾乎所有的任務(wù),甚至包括那些涉及元字符和相對(duì)較長(zhǎng)的替換序列的任務(wù)。

圖 4:(a)-(c) 在訓(xùn)練期間處理序列所需的時(shí)間,跨越不同插入數(shù) (10,50,100) 的 n-gram 問題。(d) 當(dāng)將預(yù)測(cè)限制在模型最有信心的上下文中時(shí),實(shí)際數(shù)據(jù)集的 token 級(jí)精度。

如圖 4 (d) 所示,顯式模型始終比隱式模型成本更高,并且隨著數(shù)據(jù)大小的增加,這種差距也會(huì)增大。長(zhǎng)度為 100 的插入序列比實(shí)際數(shù)據(jù)集中的序列小十倍,但在運(yùn)行時(shí)已經(jīng)存在一個(gè)數(shù)量級(jí)的差異。注意力模型通常占隱式 RNN 模型的 50% ~ 75% 的時(shí)間。

結(jié)論和未來研究

在這項(xiàng)工作中,我們提出了從過去的編輯中學(xué)習(xí),以預(yù)測(cè)未來編輯的問題,開發(fā)了具有很強(qiáng)泛化能力的編輯序列模型,并證明了該方案對(duì)大規(guī)模源代碼編輯數(shù)據(jù)的適用性。

我們做了一個(gè)不切實(shí)際的假設(shè),即快照之間的編輯是按從左到右的順序執(zhí)行的。另一種值得探索的方案是,將其視為從弱監(jiān)督中學(xué)習(xí)。可以想象這樣一個(gè)公式,其中快照之間的編輯順序是一個(gè)潛在變量,必須在學(xué)習(xí)過程中推斷出來。

該研究有多種可能的應(yīng)用。在開發(fā)人員工具的背景中,我們特別感興趣的是調(diào)整過去的編輯以做出其他類型的預(yù)測(cè)。例如,我們還可以設(shè)置光標(biāo)位置的條件,并研究如何使用編輯歷史來改進(jìn)忽略編輯歷史的傳統(tǒng)自動(dòng)完成系統(tǒng)。另一個(gè)例子是,根據(jù)開發(fā)人員最近的編輯,預(yù)測(cè)他們接下來會(huì)發(fā)出哪些代碼搜索查詢。一般來說,我們希望預(yù)測(cè)開發(fā)人員接下來要做的事情。我們認(rèn)為,編輯歷史包含了重要的有用信息,在這項(xiàng)工作中提出的公式和模型是學(xué)習(xí)使用這些信息的良好起點(diǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6228

    瀏覽量

    107753
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3686

    瀏覽量

    94975

原文標(biāo)題:程序員再也不怕需求改來改去!谷歌大腦新突破:AI預(yù)測(cè)源代碼

文章出處:【微信號(hào):dushekeji,微信公眾號(hào):毒舌科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    代碼革命的先鋒:aiXcoder-7B模型介紹

    ? ? 國(guó)內(nèi)開源代碼大模型 4月9日aiXcoder宣布正式開源其7B模型Base版,僅僅過去一個(gè)禮拜,aiXcoder-7B在軟件源代碼托管服務(wù)平臺(tái)GitHub上的Star數(shù)已超過2k。同時(shí)躋身
    的頭像 發(fā)表于 05-20 14:41 ?181次閱讀
    <b class='flag-5'>代碼</b>革命的先鋒:aiXcoder-7B模型介紹

    從初學(xué)到進(jìn)階:樹莓派上最適合你的代碼編輯器推薦!

    之前,你需要安裝一些必備工具,代碼編輯器便是其中之一。樹莓派系統(tǒng)自帶了一些代碼編輯器,它們功能良好,足以滿足基本需求。不過,如果你需要更高級(jí)的功能,就必須探索其他
    的頭像 發(fā)表于 05-15 16:20 ?160次閱讀
    從初學(xué)到進(jìn)階:樹莓派上最適合你的<b class='flag-5'>代碼</b><b class='flag-5'>編輯</b>器推薦!

    使用FX3 SDK發(fā)布源代碼是否違反許可?

    使用 FX3 SDK 發(fā)布源代碼是否違反許可? CYPRESS?EZ-USB? FX3 SDK1.3licenselicense.txt ”4. 專有權(quán)利; 到“您同意對(duì)源代碼保密。” 那里寫著一句話,所以我想問一下以確定。
    發(fā)表于 05-08 06:54

    如何獲取用于開發(fā)fx2的sdk和示例源代碼

    大家 我正在使用 FX2 設(shè)備,以前也使用過 FX3 設(shè)備。 使用 FX3 設(shè)備 SDK,當(dāng)我下載它時(shí),我在安裝文件夾中獲得了許多示例源代碼,但是它沒有 FX2 的示例源代碼,我如何獲取用于開發(fā) fx2 的 sdk 和示例
    發(fā)表于 05-07 07:25

    27個(gè)FPGA實(shí)例源代碼

    本資料收集匯總了27個(gè)FPGA實(shí)例源代碼,有需要的可以下載學(xué)習(xí)! 獲取完整文檔資料可下載附件哦!!!!如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~
    發(fā)表于 03-14 17:31

    MaaS 應(yīng)用系列 MaaS X Cursor:基于 DeepSeek API 快速構(gòu)建代碼編輯

    Cursor 是一款基于人工智能技術(shù)的現(xiàn)代化代碼編輯器,專為開發(fā)者設(shè)計(jì)。它結(jié)合了傳統(tǒng)編輯器(如 VS Code)的強(qiáng)大功能與 AI 驅(qū)動(dòng)的智能編程
    的頭像 發(fā)表于 03-08 16:43 ?1167次閱讀
    MaaS 應(yīng)用系列 MaaS X Cursor:基于 DeepSeek API 快速構(gòu)建<b class='flag-5'>代碼</b><b class='flag-5'>編輯</b>器

    源代碼加密、源代碼防泄漏c/c++與git服務(wù)器開發(fā)環(huán)境

    源代碼加密對(duì)于很多研發(fā)性單位來說是至關(guān)重要的,當(dāng)然每家企業(yè)的業(yè)務(wù)需求不同所用的開發(fā)環(huán)境及開發(fā)語言也不盡相同,今天主要來講一下c++及git開發(fā)環(huán)境的源代碼防泄密保護(hù)方案。企業(yè)源代碼泄密場(chǎng)景一、在很多
    的頭像 發(fā)表于 02-12 15:26 ?482次閱讀
    <b class='flag-5'>源代碼</b>加密、<b class='flag-5'>源代碼</b>防泄漏c/c++與git服務(wù)器開發(fā)環(huán)境

    單片機(jī)學(xué)習(xí)—C51源代碼和Proteus仿真文件

    單片機(jī)學(xué)習(xí)—C51源代碼和Proteus仿真文件.zip, 有各種例子
    發(fā)表于 02-10 13:46 ?1次下載

    騰訊申請(qǐng)注冊(cè)“騰訊云AI代碼助手”商標(biāo)

    致力于提升編程效率的智能工具。其主要功能包括代碼的智能補(bǔ)全和自動(dòng)生成,旨在幫助開發(fā)者更加高效地進(jìn)行編程工作。這款工具的出現(xiàn),標(biāo)志著騰訊在人工智能和云計(jì)算領(lǐng)域的技術(shù)實(shí)力得到了進(jìn)一步的提升。 值得注意的是,騰訊云
    的頭像 發(fā)表于 12-13 10:28 ?632次閱讀

    Gmapping源代碼

    Gmapping源代碼.docx
    發(fā)表于 11-16 13:42 ?0次下載

    源代碼解析工具與自動(dòng)化流程圖生成解決方案

    ? 摘要:CasePlayer2是一款強(qiáng)大的源代碼解析工具,專門設(shè)計(jì)用于分析ANSI C、C、C++以及匯編語言源代碼,并自動(dòng)化地生成流程圖等文件。該工具集成了多種功能,包括MISRA-C規(guī)范檢查
    的頭像 發(fā)表于 10-10 13:40 ?848次閱讀

    谷歌發(fā)布安卓15源代碼,為開發(fā)者與Pixel用戶鋪就新路徑

    9月4日最新消息,谷歌公司已在昨日(9月3日)宣布了一項(xiàng)重要舉措,正式將安卓15的源代碼推送至安卓開源項(xiàng)目(AOSP),這一動(dòng)作標(biāo)志著安卓操作系統(tǒng)的又一次重要更新即將全面展開。谷歌同時(shí)透露,符合升級(jí)條件的Pixel設(shè)備將在接下來
    的頭像 發(fā)表于 09-04 15:40 ?999次閱讀

    java反編譯的代碼可以修改么

    的影響。 1. Java反編譯工具 在Java反編譯領(lǐng)域,有一些知名的工具可以幫助開發(fā)者將字節(jié)碼轉(zhuǎn)換回源代碼。這些工具包括: JD-GUI :一個(gè)圖形界面的反編譯工具,可以查看反編譯后的代碼并進(jìn)行簡(jiǎn)單的編輯。 CFR :一個(gè)命令
    的頭像 發(fā)表于 09-02 11:00 ?1195次閱讀

    hex可以轉(zhuǎn)成源代碼

    Hex文件可以轉(zhuǎn)換成源代碼的近似形式,但無法直接還原為原始的、完全相同的源代碼 。這是因?yàn)镠ex文件是二進(jìn)制文件,包含了程序編譯后的機(jī)器碼,這些機(jī)器碼與原始的源代碼在結(jié)構(gòu)和表達(dá)上存在顯著的差異。不過
    的頭像 發(fā)表于 09-02 10:41 ?2143次閱讀

    國(guó)內(nèi)低代碼平臺(tái)推薦--萬界星空科技低代碼平臺(tái)

    代碼平臺(tái)是一種應(yīng)用程序,它為編程提供圖形用戶界面,從而以極快的速度開發(fā)代碼,減少傳統(tǒng)編程工作。 這些工具有助于快速開發(fā)代碼,最大限度
    的頭像 發(fā)表于 07-18 15:39 ?544次閱讀
    國(guó)內(nèi)低<b class='flag-5'>代碼</b>平臺(tái)推薦--萬界星空科技低<b class='flag-5'>代碼</b>平臺(tái)
    主站蜘蛛池模板: 免费观看色视频 | 在线观看免费xx高清视频 | 国产精品久久久亚洲 | 国产成人精品一区二区仙踪林 | 亚洲美国avcom | 爱综合网| 老司机亚洲精品影院在线 | h在线观看视频 | 国产一区二区三区美女在线观看 | 永久精品免费影院在线观看网站 | 成人永久免费视频网站在线观看 | 加勒比在线一区 | 巨大欧美黑人xxxxbbbb | 狠狠干夜夜 | 国产h视频在线 | 人成网站在线观看 | 一级 黄 色 毛片 | 九九99久久精品午夜剧场免费 | 久久综合久久精品 | 夜夜爽爽 | 国产农村女人一级毛片了 | 婷婷色香五月激情综合2020 | 狠狠狠| 操视频网站 | 猫色网站 | 久久亚洲免费视频 | 伊人久久网站 | 天天干视频网 | 日本大片免aaa费观看视频 | 中文字幕自拍 | 四虎影院黄色片 | 日本黄色视 | 特级全黄大片 | 免费一级毛片在线播放 | 九色国产在视频线精品视频 | 免费福利影院 | tom影院亚洲国产日本一区 | 狠狠天天| 手机在线小视频 | 夜夜春宵翁熄性放纵古代 | 亚洲国产精品第一页 |