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

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

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

Facebook AI發(fā)布了一個包含編碼問題和代碼片段答案的數(shù)據(jù)集

倩倩 ? 來源:新經(jīng)網(wǎng) ? 2020-03-22 16:53 ? 次閱讀

Facebook AI發(fā)布了一個包含編碼問題和代碼片段答案的數(shù)據(jù)集,旨在評估基于AI的自然語言代碼搜索系統(tǒng)。該版本還包括Facebook自己的幾種代碼搜索模型的基準測試結(jié)果,以及來自24,000個GitHub存儲庫的超過400萬種Java方法的訓(xùn)練語料庫。

在arXiv上發(fā)表的一篇論文中,研究人員描述了他們收集數(shù)據(jù)的技術(shù)。訓(xùn)練數(shù)據(jù)語料庫是從最受歡迎的GitHub Android代碼存儲庫中收集的,按星數(shù)排序。解析存儲庫中的每個Java文件,以標識各個方法。Facebook在培訓(xùn)代碼搜索系統(tǒng)的研究中使用了所得的語料庫。為了創(chuàng)建評估數(shù)據(jù)集,他們從Stack Overflow 的問答數(shù)據(jù)轉(zhuǎn)儲開始,僅選擇同時具有“ Java”和“ Android”的問題研究人員說:“其中,他們只保留答案被投票的問題,這些問題也與訓(xùn)練數(shù)據(jù)語料庫中確定的一種方法相匹配。結(jié)果將518個問題手動過濾為最終的287個問題。研究人員表示:

我們的數(shù)據(jù)集不僅是當前可用于Java的最大數(shù)據(jù)集,而且還是唯一以自動化(一致)方式針對Stack Overflow的真實答案進行驗證的數(shù)據(jù)集。

Facebook最近發(fā)表了幾篇關(guān)于神經(jīng)代碼搜索的論文,這是一種用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)回答“如何”編碼問題的機器學(xué)習(xí)技術(shù)。軟件開發(fā)人員通常會使用Stack Overflow來學(xué)習(xí)如何解決特定的編碼問題,例如,如何解決 Android應(yīng)用程序中的錯誤。但是,在處理使用專有API或較不常見的編程語言的代碼時,這不是一個選擇。在這種情況下,程序員自己的組織之外的專家很少(或沒有)。相反,F(xiàn)acebook和其他公司探索了使用源代碼本身作為培訓(xùn)數(shù)據(jù)來產(chǎn)生可以回答編碼問題的自然語言處理(NLP)系統(tǒng)的想法。

去年,F(xiàn)acebook發(fā)表了一篇關(guān)于無監(jiān)督學(xué)習(xí)方法的論文,稱為神經(jīng)代碼搜索(NCS),該方法接受了從GitHub收集的數(shù)據(jù)的培訓(xùn)。該技術(shù)從源代碼中提取單詞,并學(xué)習(xí)將每個單詞映射到高維空間中的向量的嵌入。嵌入通常具有向量的性質(zhì),向量在向量空間中彼此“接近”,表示具有相似含義的詞,并且詞之間的關(guān)系可用向量算術(shù)表示。一個例子是在Wikipedia上訓(xùn)練的word2vec模型,當給定向量表達式“ Paris-France + Spain”時,該模型將返回“ Madrid”。

學(xué)習(xí)了嵌入之后,使用“ 詞袋 ”模型將語料庫中的每個Java方法轉(zhuǎn)換為嵌入空間中的向量;通過嵌入將代碼中的每個單詞轉(zhuǎn)換為向量,并將向量的加權(quán)總和分配給該方法作為其索引。這會將每個Java方法映射到嵌入空間中的一個點。為了回答編碼問題,通過將查詢中的每個單詞都通過嵌入轉(zhuǎn)換并產(chǎn)生加權(quán)和,可以將該問題類似地映射到嵌入空間中的某個點。問題的“答案”是Java方法,其索引最接近該點。關(guān)鍵思想是查詢和代碼都使用相同的嵌入,并且訓(xùn)練不需要在輸入數(shù)據(jù)中出現(xiàn)任何問題;它僅從源代碼中學(xué)習(xí)。

這種技術(shù)的一個缺點是它不會學(xué)習(xí)源代碼中沒有的單詞的嵌入。Facebook研究人員發(fā)現(xiàn),在Stack Overflow上,有問題的單詞中也只有不到一半的單詞包含在源代碼中。這促使研究人員通過監(jiān)督學(xué)習(xí)擴展了NCS,“以彌合自然語言單詞和源代碼單詞之間的鴻溝”。產(chǎn)生的系統(tǒng)稱為嵌入統(tǒng)一(UNIF),學(xué)習(xí)查詢詞的單獨嵌入。在此培訓(xùn)過程中,團隊使用類似于收集基準數(shù)據(jù)集的過程從Stack Overflow中提取了一組問題標題和代碼段。該訓(xùn)練數(shù)據(jù)集包含451k個問題-答案對,但都不在基準測試中。在基準上進行評估時,對這一數(shù)據(jù)進行培訓(xùn)的聯(lián)合國系統(tǒng)的性能略優(yōu)于NCS。兩種系統(tǒng)都以大約三分之一的時間作為最高結(jié)果返回“正確”答案,并以一半的時間以“前五項”結(jié)果返回“正確”答案。

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

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54799
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4796

    瀏覽量

    68706
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24727
收藏 人收藏

    評論

    相關(guān)推薦

    三星貼片電容識別容值代碼方法

    三星貼片電容的容值代碼識別方法主要基于其型號編碼中的特定部分。以下是詳細的識別步驟和說明: ? ?、識別容值
    的頭像 發(fā)表于 12-13 16:17 ?190次閱讀
    三星貼片電容識別容值<b class='flag-5'>代碼</b>方法

    base64編碼和解碼的使用方法

    Base64編碼種基于64可打印字符來表示二進制數(shù)據(jù)編碼方法。它將每3字節(jié)的二進制
    的頭像 發(fā)表于 11-10 10:48 ?1220次閱讀

    學(xué)習(xí)RV32GC對比X86-32指令的優(yōu)勢思考

    : 擁有32通用寄存器(x0~x31),其中x0固定為0,這為編譯器和程序員提供更多的寄存器資源。 指令提供三寄存器操作數(shù),而不是像X86-32那樣讓源操作數(shù)和目的操作數(shù)共享一個
    發(fā)表于 10-31 21:47

    AI大模型的訓(xùn)練數(shù)據(jù)來源分析

    學(xué)術(shù)機構(gòu)、政府組織或企業(yè)公開發(fā)布,涵蓋了各種類型的數(shù)據(jù),如圖像、文本、音頻、視頻等。例如: ImageNet :廣泛用于圖像識別任務(wù)的大規(guī)模圖像
    的頭像 發(fā)表于 10-23 15:32 ?720次閱讀

    AI for Science:人工智能驅(qū)動科學(xué)創(chuàng)新》第二章AI for Science的技術(shù)支撐學(xué)習(xí)心得

    for Science的技術(shù)支撐”的學(xué)習(xí)心得,可以從以下幾個方面進行歸納和總結(jié): 1. 技術(shù)基礎(chǔ)的深入理解 在閱讀第二章的過程中,我對于AI for Science所需的技術(shù)基礎(chǔ)有更加深入的理解。這章詳細闡述
    發(fā)表于 10-14 09:16

    NVIDIA為AI城市挑戰(zhàn)賽構(gòu)建合成數(shù)據(jù)

    一年一度的 AI 城市挑戰(zhàn)賽中,來自世界各地的數(shù)百支參賽隊伍在 NVIDIA Omniverse 生成的基于物理學(xué)的數(shù)據(jù)上測試了他們的 AI
    的頭像 發(fā)表于 09-09 10:04 ?495次閱讀

    C2000 DCSM ROM代碼片段/ROP漏洞

    電子發(fā)燒友網(wǎng)站提供《C2000 DCSM ROM代碼片段/ROP漏洞.pdf》資料免費下載
    發(fā)表于 08-28 09:39 ?0次下載
    C2000 DCSM ROM<b class='flag-5'>代碼</b><b class='flag-5'>片段</b>/ROP漏洞

    AI模擬器

    用戶問題數(shù)據(jù),然后在數(shù)據(jù)庫中對比,調(diào)用Search_HidingHeadVerseFun()回調(diào)函數(shù),獲取答案數(shù)據(jù)信息。 總的來說,這段代碼
    發(fā)表于 08-22 17:28

    哪夠?是時候讓AI替你打工

    大模型的下一個突破方向是什么?斯坦福大學(xué)教授吳恩達的答案AI智能體工作流。在今年4月的次演講中,吳恩提到多個智能體起工作,分配任務(wù)并討
    的頭像 發(fā)表于 06-08 08:04 ?121次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>哪夠?是時候讓<b class='flag-5'>一</b>群<b class='flag-5'>AI</b>替你打工<b class='flag-5'>了</b>

    請問NanoEdge AI數(shù)據(jù)該如何構(gòu)建?

    我想用NanoEdge來識別異常的聲音,但我目前沒有辦法生成模型,我感覺可能是數(shù)據(jù)的問題,請問我該怎么構(gòu)建數(shù)據(jù)?或者生成模型失敗還會有哪些原因?
    發(fā)表于 05-28 07:27

    利用神經(jīng)網(wǎng)絡(luò)對腦電圖(EEG)降噪

    )信號中的眼電圖(EOG)噪聲。EEGdenoiseNet數(shù)據(jù)包含4514干凈的EEG片段和3400
    發(fā)表于 04-30 20:40

    RAG系統(tǒng)中答案無關(guān)片段對LLMs生成結(jié)果的影響分析

    與常見語義無關(guān)的答案無關(guān)片段相比,LLMs更容易受到高度語義相關(guān)的答案無關(guān)片段的影響;
    發(fā)表于 04-15 09:49 ?394次閱讀
    RAG系統(tǒng)中<b class='flag-5'>答案</b>無關(guān)<b class='flag-5'>片段</b>對LLMs生成結(jié)果的影響分析

    【國產(chǎn)FPGA+OMAPL138開發(fā)板體驗】(原創(chuàng))5.FPGA的AI加速源代碼

    復(fù)雜的數(shù)據(jù)依賴關(guān)系等問題。編寫FPGA用于AI加速的程序可不是件簡單的事,它涉及到硬件描述語言和并行計算的知識。下面我的目標是加速簡單
    發(fā)表于 02-12 16:18

    云從科技發(fā)布國內(nèi)首款AI原生數(shù)據(jù)分析產(chǎn)品DataGPT

    云從科技,家專注于AI技術(shù)研發(fā)和應(yīng)用的公司,近日正式發(fā)布國內(nèi)首款AI原生數(shù)據(jù)分析產(chǎn)品——Da
    的頭像 發(fā)表于 02-03 10:28 ?1000次閱讀

    ARM中的編碼方式與尋址方式有何不同?

    數(shù)據(jù)讀寫時起到了不同的作用。 編碼方式指的是將指令轉(zhuǎn)換為機器碼的過程。ARM指令包含多種編碼方式,包括基本指令、分支指令、
    的頭像 發(fā)表于 01-29 18:10 ?708次閱讀