女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

編程神技來了!谷歌新研究根據已經編輯好的代碼預測源代碼的 AI

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

預測源代碼,聽著就是一件非常炫酷的事情。最近,谷歌大腦的研究人員就對此高難度任務發起了挑戰,在構建源代碼生成模型上實現了新突破!

編程神技來了!

根據已經編輯好的代碼預測源代碼的AI,對程序員來說是一個非常寶貴的工具。

最近,谷歌大腦團隊就對這項難度頗高的任務發起了挑戰。

論文地址:

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

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

它需要根據變化與其所處狀態的關系來理解,準確地對代碼序列進行建模需要學習舊代碼的表示方法,這就允許模型可以概括一種模式且對未來要編寫的代碼內容進行預測。

舉個例子:

有兩個歷史記錄A和B,這兩段代碼序列在經過2次編輯后,得到了相同狀態,即“狀態2”。但是在這個過程當中,歷史記錄A是在向foo函數添加參數,而歷史記錄B是在從foo函數中刪除參數。

這項工作,就是希望根據“狀態0”和“編輯 1&2 ”,可以預測接下來“編輯3”的操作內容

為了達到這個目的,他們首先開發了兩種表示方法來捕獲意圖信息,這些信息將隨著代碼序列的長度“優雅地”擴展:

顯式表示方法:在序列中“實例化”代碼內容;

隱式表示方法:用于實例化后續要編寫的代碼。

然后它們構建了一個機器學習模型,這個模型可以捕獲原始代碼和預測代碼之間的上下文關系。

構建源代碼生成模型新突破

近年來,構建源代碼的生成模型成為十分受重視的核心任務。

然而,以前的生成模型總是根據生成代碼的靜態快照(static snapshot)來構建的。而在這項工作中,研究人員將源代碼視為一個動態對象(dynamic object),并處理軟件開發人員對源代碼文件進行編輯的建模問題

對編輯序列建模的主要挑戰是如何開發良好的表示,既能捕獲有關意圖的所需信息,又能優雅地對序列的長度進行擴展。

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

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

在精心設計的合成數據和對Python源代碼進行細粒度編輯的大型數據集上,研究人員評估了模型的可伸縮性和準確性,以及模型觀察以往編輯序列并預測未來編輯內容的能力。

實驗表明,雙頭注意力模型特別適合實現對真實數據的高精度、校準良好的置信度和良好的可擴展性。

總之,這項工作形式化了從編輯序列中學習和預測編輯序列的問題,提供了對模型空間的初步探索,并演示了從開發人員對源代碼進行的編輯中學習的實際問題的適用性。

問題定義:如何表示編輯序列數據

隱式和顯式數據表示

第一個問題是如何表示編輯序列數據。我們定義了兩種具有不同權衡的數據格式。

顯式格式 (圖 2 (a)) 將編輯序列表示為 2D 網格中 tokens 序列的序列。內部序列對文件中的 tokens 建立索引,外部序列對時間建立索引。任務是消耗前 t 行并預測在時間 t 進行的編輯的位置和內容。

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

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

問題描述

顯式問題的目標是學習一個模型,該模型使給定的可能性最大化;隱式問題是學習一個模型,該模型使給定所有 t 的的?

基線模型

基線顯式模型 (Baseline Explicit Model)

基線顯式模型是一個兩級長短時記憶 (LSTM) 神經網絡,類似于 Serban 等人 (2016) 的分層 RNN 模型。

基線隱式模型 (Baseline Implicit Model)

sequence-to-sequence 框架的自然應用是使用編碼器的初始狀態 s (0),并在解碼器中生成 (p (t) i, c (t)) 對的序列。編碼器是一個標準的 LSTM。解碼器不太標準,因為每個動作都是成對的。為了將對作為輸入處理,我們將 p (t) i 的嵌入與 c (t) 的嵌入連接起來。為了產生成對的輸出,我們先預測位置,然后給出給定位置的內容。

隱式注意力模型

我們開發了一個模型,它對隱式表示進行操作,但是能夠更好地捕獲編輯內容與編輯上下文之間關系的序列。

該模型深受 Vaswani 等人 (2017) 的啟發。在訓練時,編輯的完整序列在單個前向傳遞中被預測。

有一個編碼器計算初始狀態和所有編輯的隱藏表示,然后有兩個 decoder heads:第一個解碼每個編輯的位置,第二個解碼給定位置的每個編輯的內容。

圖 3 (b, c) 對模型的整體結構進行了概述。

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

實驗和結果:模型可以解決幾乎所有任務

實驗的目的是了解上述模型的能力和局限性,并在實際數據上進行評估。

實驗有兩個主要因素,一是模型如何準確地學習識別編輯序列中的模式,二是模型如何擴展到大數據。

在第一組實驗中,我們在一個簡單的環境中研究了這些問題;在第二組實驗中,我們根據真實數據進行了評估。

本節中,我們評估了三種方法:顯式模型縮寫為 E,隱式 RNN 模型縮寫為 IR,隱式注意力模型縮寫為 IA。

表 1:在合成數據集上的準確性

表 1 報告了產生最佳開發性能的超參數設置和步驟的測試性能。結果表明,顯式模型和改進的隱式模型可以解決幾乎所有的任務,甚至包括那些涉及元字符和相對較長的替換序列的任務。

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

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

結論和未來研究

在這項工作中,我們提出了從過去的編輯中學習,以預測未來編輯的問題,開發了具有很強泛化能力的編輯序列模型,并證明了該方案對大規模源代碼編輯數據的適用性。

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

該研究有多種可能的應用。在開發人員工具的背景中,我們特別感興趣的是調整過去的編輯以做出其他類型的預測。例如,我們還可以設置光標位置的條件,并研究如何使用編輯歷史來改進忽略編輯歷史的傳統自動完成系統。另一個例子是,根據開發人員最近的編輯,預測他們接下來會發出哪些代碼搜索查詢。一般來說,我們希望預測開發人員接下來要做的事情。我們認為,編輯歷史包含了重要的有用信息,在這項工作中提出的公式和模型是學習使用這些信息的良好起點。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 谷歌
    +關注

    關注

    27

    文章

    6223

    瀏覽量

    107520
  • 編程
    +關注

    關注

    88

    文章

    3679

    瀏覽量

    94864

原文標題:程序員再也不怕需求改來改去!谷歌大腦新突破:AI預測源代碼

文章出處:【微信號:dushekeji,微信公眾號:毒舌科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    從初學到進階:樹莓派上最適合你的代碼編輯器推薦!

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

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

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

    27個FPGA實例源代碼

    本資料收集匯總了27個FPGA實例源代碼,有需要的可以下載學習! 獲取完整文檔資料可下載附件哦!!!!如果內容有幫助可以關注、點贊、評論支持一下哦~
    發表于 03-14 17:31

    MaaS 應用系列 MaaS X Cursor:基于 DeepSeek API 快速構建代碼編輯

    Cursor 是一款基于人工智能技術的現代化代碼編輯器,專為開發者設計。它結合了傳統編輯器(如 VS Code)的強大功能與 AI 驅動的智能編程
    的頭像 發表于 03-08 16:43 ?983次閱讀
    MaaS 應用系列 MaaS X Cursor:基于 DeepSeek API 快速構建<b class='flag-5'>代碼</b><b class='flag-5'>編輯</b>器

    源代碼加密、源代碼防泄漏c/c++與git服務器開發環境

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

    單片機學習—C51源代碼和Proteus仿真文件

    單片機學習—C51源代碼和Proteus仿真文件.zip, 有各種例子
    發表于 02-10 13:46 ?1次下載

    騰訊申請注冊“騰訊云AI代碼助手”商標

    致力于提升編程效率的智能工具。其主要功能包括代碼的智能補全和自動生成,旨在幫助開發者更加高效地進行編程工作。這款工具的出現,標志著騰訊在人工智能和云計算領域的技術實力得到了進一步的提升。 值得注意的是,騰訊云
    的頭像 發表于 12-13 10:28 ?602次閱讀

    Gmapping源代碼

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

    源代碼解析工具與自動化流程圖生成解決方案

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

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

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

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

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

    hex可以轉成源代碼

    Hex文件可以轉換成源代碼的近似形式,但無法直接還原為原始的、完全相同的源代碼 。這是因為Hex文件是二進制文件,包含了程序編譯后的機器碼,這些機器碼與原始的源代碼在結構和表達上存在顯著的差異。不過
    的頭像 發表于 09-02 10:41 ?2027次閱讀

    國內低代碼平臺推薦--萬界星空科技低代碼平臺

    代碼平臺是一種應用程序,它為編程提供圖形用戶界面,從而以極快的速度開發代碼,減少傳統編程工作。 這些工具有助于快速開發代碼,最大限度
    的頭像 發表于 07-18 15:39 ?523次閱讀
    國內低<b class='flag-5'>代碼</b>平臺推薦--萬界星空科技低<b class='flag-5'>代碼</b>平臺

    探討AI編寫代碼技術,以及提高代碼質量的關鍵:靜態代碼分析工具Perforce Helix QAC &amp; Klocwork

    令軟件開發人員夜不能寐的事情比比皆是。如今,他們最關心的問題不再是如何用自己喜歡的語言(C、C++、Erlang、Java 等)表達最新的算法,而是人工智能(AI)。 本文中,我們將介紹AI編寫代碼
    的頭像 發表于 06-05 14:10 ?710次閱讀