主頁 >  其他 > 問鼎CodeXGLUE榜單,華為云UniXcoder-VESO-v1演算法取得突破

問鼎CodeXGLUE榜單,華為云UniXcoder-VESO-v1演算法取得突破

2023-05-16 12:18:17 其他

摘要:華為云PaaS技術創新團隊基于UniXcoder模型,在公開測驗資料集(CodeXGLUE)上的代碼搜索任務評測結果上取得突破,在CodeXGLUE榜單上排名中第一,

本文分享自華為云社區《代碼語意搜索演算法哪家強?華為云UniXcoder-VESO-v1演算法取得突破,問鼎CodeXGLUE榜單第一名》,作者:華為云軟體分析Lab ,

按照查詢陳述句的型別,代碼搜索可以分為代碼關鍵字搜索和代碼語意搜索,代碼關鍵字搜索主要通過索引代碼物體(如類、方法、變數等),查詢定位代碼物體的定義及參考;代碼語意搜索的目標是支持開發人員基于自然語言方式來描述代碼特性,從而進行相關代碼的推薦與搜索,在開發人員編程程序中幫助其查找最佳代碼示例實踐和庫使用示例,從而開發者可以通過功能描述搜索到代碼,

目前,大多數代碼搜索引擎僅支持代碼關鍵字搜索,這需要開發者了解他們正在搜索的代碼,例如類名、函式名、API呼叫等等,這具有很大的局限性,多數用戶通常通過搜索代碼示例來指導他們完成特定的編碼任務,他們更傾向于使用自然語言來描述待編碼實作的功能,從而借鑒開源社區中已存在的相關代碼片段,代碼語意搜索可以支持開發人員在不知道類或函式名稱的情況下使用自然語言方式來描述所需的代碼功能,借助于語言模型及不同自然語言之間的映射關系,開發者甚至可以基于中文描述搜索出包含英文功能描述的代碼片段,

隨著語言大模型(Large Language Model, LLM)技術的發展,一系列語言大模型(如BERT [1]、XLNet [2]、GPT [3]、RoBERTa [4]等)在自然語言處理任務上取得了巨大的成功,為源代碼處理任務提供了技識訓礎,這些模型已經應用于代碼摘要和代碼語意搜索,打敗了以前的最先進方法,語意搜索背后的想法是將語料庫中的所有條目,無論是句子、段落還是檔案,都編碼到向量空間中,在搜索時,查詢被編碼到相同的向量空間中,并找到語料庫中最近的向量,這些條目應與查詢具有高度的語意重疊,代碼語意搜索使用編碼大模型將查詢及代碼片段編碼成向量,使得語意相關或相近的代碼片段和查詢在向量空間內落在相近的位置,如下圖所示:

有很多演算法使用不同的編碼器對代碼片段和查詢進行編碼,最新和最有希望的研究集中在通用編碼器和解碼器上,這些編碼器和解碼器使用相同的神經網路來編碼所有編程語言代碼片段和文本,

Salza等人 [5]基于原始BERT[1]模型,用多種編程語言代碼預訓練一個新的BERT模型,并用兩個編碼器(一個處理自然語言,另一個處理代碼片段)精調該模型,首先證明了處理自然語言的基于Transformer架構的模型可以被直接應用到代碼搜索任務中,

CodeBERT [6]是在自然語言和編程語言序列資料上進行訓練的大型語言模型之一,它在代碼搜索方面表現較為出色,此外,還發展演化出RoBERTa [4]、TreeBERT [7]、GraphCodeBERT [8]、UniXcoder [9]等在代碼搜索方面表現出色的自然語言與編程語言結合訓練的模型,

華為云PaaS技術創新團隊基于UniXcoder模型,通過混淆代碼片段、增加海量開源代碼作為訓練集、提高批尺寸等精調方法,實作了UniXcoder-VESO-v1演算法,該演算法在公開測驗資料集(CodeXGLUE [10])上的代碼搜索任務評測結果上取得突破:平均倒數排序值(MRR)達到0.58,CodeXGLUE榜單上排名中第一(如下圖所示: UniXcoder-VESO-v1, 詳見https://microsoft.github.io/CodeXGLUE/),  我們將持續推進該作業的技術創新與突破,會選擇合適方式披露內部技術細節,如感興趣,歡迎持續關注我們的訂閱號文章,

文章來自:PaaS技術創新Lab,PaaS技術創新Lab隸屬于華為云,致力于綜合利用軟體分析、資料挖掘、機器學習等技術,為軟體研發人員提供下一代智能研發工具服務的核心引擎和智慧大腦,我們將聚焦軟體工程領域硬核能力,不斷構筑研發利器,持續交付高價值商業特性!加入我們,一起開創研發新“境界”!(詳情歡迎聯系 [email protected][email protected])

PaaS技術創新Lab主頁鏈接:https://www.huaweicloud.com/lab/paas/home.html

參考文獻

  • [1]. Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL-HLT (1) 2019: 4171-4186
  • [2]. Zhilin Yang, Zihang Dai, Yiming Yang, Jaime G. Carbonell, Ruslan Salakhutdinov, Quoc V. Le: XLNet: Generalized Autoregressive Pretraining for Language Understanding. NeurIPS 2019: 5754-5764
  • [3]. Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, Dario Amodei: Language Models are Few-Shot Learners. NeurIPS 2020
  • [4]. Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov: RoBERTa: A Robustly Optimized BERT Pretraining Approach. CoRR abs/1907.11692 (2019)
  • [5]. Pasquale Salza, Christoph Schwizer, Jian Gu, Harald C. Gall: On the Effectiveness of Transfer Learning for Code Search. IEEE Trans. Software Eng. 49(4): 1804-1822 (2023)
  • [6]. Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaocheng Feng, Ming Gong, Linjun Shou, Bing Qin, Ting Liu, Daxin Jiang, Ming Zhou: CodeBERT: A Pre-Trained Model for Programming and Natural Languages. EMNLP (Findings) 2020: 1536-1547
  • [7]. Xue Jiang, Zhuoran Zheng, Chen Lyu, Liang Li, Lei Lyu: TreeBERT: A tree-based pre-trained model for programming language. UAI 2021: 54-63
  • [8]. Daya Guo, Shuo Ren, Shuai Lu, Zhangyin Feng, Duyu Tang, Shujie Liu, Long Zhou, Nan Duan, Alexey Svyatkovskiy, Shengyu Fu, Michele Tufano, Shao Kun Deng, Colin B. Clement, Dawn Drain, Neel Sundaresan, Jian Yin, Daxin Jiang, Ming Zhou: GraphCodeBERT: Pre-training Code Representations with Data Flow. ICLR 2021
  • [9]. Daya Guo, Shuai Lu, Nan Duan, Yanlin Wang, Ming Zhou, Jian Yin: UniXcoder: Unified Cross-Modal Pre-training for Code Representation. ACL (1) 2022: 7212-7225
  • [10]. https://microsoft.github.io/CodeXGLUE/

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552517.html

標籤:其他

上一篇:百度飛槳(PaddlePaddle) - PaddleOCR 文字識別簡單使用

下一篇:返回列表

標籤雲
其他(159076) Python(38137) JavaScript(25421) Java(18044) C(15226) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7186) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1973) 功能(1967) Web開發(1951) HtmlCss(1936) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1876) .NETCore(1860) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 問鼎CodeXGLUE榜單,華為云UniXcoder-VESO-v1演算法取得突破

    摘要:華為云PaaS技術創新團隊基于UniXcoder模型,在公開測驗資料集(CodeXGLUE)上的代碼搜索任務評測結果上取得突破,在CodeXGLUE榜單上排名中第一。 本文分享自華為云社區《代碼語意搜索演算法哪家強?華為云UniXcoder-VESO-v1演算法取得突破,問鼎CodeXGLUE榜單 ......

    uj5u.com 2023-05-16 12:18:17 more
  • 百度飛槳(PaddlePaddle) - PaddleOCR 文字識別簡單使用

    百度飛槳(PaddlePaddle)安裝 OCR 文字檢測(Differentiable Binarization DB) OCR的技術路線 PaddleHub 預訓練模型的網路結構是 DB + CRNN, 可微的二值化模塊(Differentiable Binarization,簡稱DB) CRN ......

    uj5u.com 2023-05-16 12:12:45 more
  • 云原生周刊:GitOps 的 4 條核心原則

    日前在溫哥華舉行的 cdCON + GitOpsCon 上,分享內容以 GitOps 原則為特色: GitOps 是宣告式的; GitOps 應用程式是版本化的和不可變的; 自動拉取 GitOps 應用程式; GitOps 應用程式不斷協調。 原文鏈接:https://thenewstack.io/ ......

    uj5u.com 2023-05-16 12:06:17 more
  • 玩轉服務器之環境篇:PHP和Python環境部署指南

    前幾篇文章中講解了如何搭建docker和Java Web環境的方法,本篇文章來教大家搭建一個好的PHP和Python環境,可以幫助開發和運行PHP和Python應用程式,使其更加高效和穩定。 一、 PHP環境介紹 好的開發環境無疑會大大提升編碼效率,近日鉆研了一下Python環境安裝的問題,稍加總結 ......

    uj5u.com 2023-05-16 12:06:12 more
  • 華為云云原生視窗:一文回顧Q1精彩瞬間

    摘要:一文速覽2023年Q1期間華為云云原生相關動態資訊。 華為云云原生動態 華為云海外首發CCI Serverless容器服務 在MWC23 巴展期間,華為云海外首發CCI Serverless容器服務正式上線。其具備聚焦應用免運維、極致計算性能、智能統籌彈性等優勢…… Serverless容器構 ......

    uj5u.com 2023-05-16 12:06:01 more
  • 寶蘭德應用服務器軟體與華為云GaussDB完成兼容互認證

    摘要:北京寶蘭德軟體股份有限公司攜手華為云完成寶蘭德應用服務器軟體9.5與GaussDB資料庫兼容性測驗,并獲得華為云授予的技術認證書。 本文分享自華為云社區《寶蘭德應用服務器軟體與華為云GaussDB完成兼容互認證》,作者:GaussDB 資料庫。 近日,北京寶蘭德軟體股份有限公司(簡稱:寶蘭德) ......

    uj5u.com 2023-05-16 12:05:43 more
  • KubeSphere 社區雙周報 | 開源之夏已啟動 | 2023.04.28-05.11

    KubeSphere 社區雙周報主要整理展示新增的貢獻者名單和證書、新增的講師證書以及兩周內提交過 commit 的貢獻者,并對近期重要的 PR 進行決議,同時還包含了線上/線下活動和布道推廣等一系列社區動態。 本次雙周報涵蓋時間為:2023.04.28-2023.05.11。 貢獻者名單 新晉 K ......

    uj5u.com 2023-05-16 12:05:25 more
  • ET框架6.0分析三、網路通信

    概述 ET框架的訊息機制貫徹始終,包含Entity訊息(Awake,Update ...),自定義(Customer)訊息,網路訊息等。而ET系統的行程包含了客戶端、Gate等各種型別的服務器,行程包含各種服務器客戶端之間通過網路訊息進行通信進行作業。 ET框架訊息結構 結構圖為了更加明確整體關系, ......

    uj5u.com 2023-05-16 12:05:01 more
  • 一種通用的業務監控觸發方案設計

    業務監控是指通過技術手段監控業務代碼執行的最終結果或者狀態是否符合預期,實作業務監控主要分成兩步:一、在業務系統中選擇節點發送訊息觸發業務監控;二、系統在接收到mq訊息或者定時任務調度時,根據訊息中或者任務中的業務資料查詢業務執行的結果或狀態并與業務預期的結果相對比。目前供銷系統的方案如下: ......

    uj5u.com 2023-05-16 12:04:09 more
  • 基于Sentinel自研組件的系統限流、降級、負載保護最佳實踐探索

    作者:京東物流 楊建民 一、Sentinel簡介 Sentinel 以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。 Sentinel 具有以下特征: 豐富的應用場景:秒殺(即突發流量控制在系統容量可以承受的范圍)、訊息削峰填谷、集群流量控制、實時熔斷下游不可用應用等。 ......

    uj5u.com 2023-05-16 12:04:05 more