目錄
#模型框架
實驗結果
首頁 科技週邊 人工智慧 面向長程式碼序列的 Transformer 模型最佳化方法,提升長程式碼場景效能

面向長程式碼序列的 Transformer 模型最佳化方法,提升長程式碼場景效能

Apr 29, 2023 am 08:34 AM
模型 計算

阿里雲機器學習平台PAI與華東師範大學高明教授團隊合作在SIGIR2022上發表了結構感知的稀疏注意力Transformer模型SASA,這是面向長程式碼序列的Transformer模型優化方法,致力於提升長程式碼場景下的效果和性能。由於self-attention模組的複雜度隨序列長度呈次方增長,多數程式設計預訓練語言模型(Programming-based Pretrained Language Models, PPLM)採用序列截斷的方式處理程式碼序列。 SASA方法將self-attention的計算稀疏化,同時結合了程式碼的結構特性,從而提升了長序列任務的效能,也降低了記憶體和運算複雜度。

論文:Tingting Liu, Chengyu Wang, Cen Chen, Ming Gao, and Aoying Zhou. Understanding Long Programming Languages with Structure-Aware Sparse Attention. SIGIR 2022

#模型框架

#下圖展示了SASA的整體框架:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

其中,SASA主要包含兩個階段:預處理階段和Sparse Transformer訓練階段。在預處理階段得到兩個token之間的交互矩陣,一個是top-k frequency矩陣,一個是AST pattern矩陣。 Top-k frequency矩陣是利用程式碼預訓練語言模型在CodeSearchNet語料上學習token之間的attention交互頻率,AST pattern矩陣是解析程式碼的抽象語法樹(Abstract Syntax Tree,AST ),根據語法樹的連接關係得到token之間的互動訊息。 Sparse Transformer訓練階段以Transformer Encoder為基礎框架,將full self-attention替換為structure-aware sparse self-attention,在符合特定模式的token pair之間進行attention計算,從而降低計算複雜度。

SASA稀疏注意力總共包含以下四個模組:

  • Sliding window attention:僅在滑動視窗內的token之間計算self-attention,保留局部上下文的特徵,計算複雜度為,為序列長度,為滑動視窗大小。
  • Global attention:設定一定的global token,這些token將與序列中所有token進行attention計算,從而獲取序列的全局信息,計算複雜度為,為global token個數。
  • Top-k sparse attention:Transformer模型中的attention交互作用是稀疏且長尾的,對於每個token,僅與其attention交互最高的top-k個token計算attention,複雜度為。
  • AST-aware structure attention:程式碼不同於自然語言序列,有更強的結構特性,透過將程式碼解析成抽象語法樹(AST),然後根據語法樹中的連接關係確定attention計算的範圍。

為了適應現代硬體的平行計算特性,我們將序列分成若干block,而非以token為單位計算,每個query block與

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

個滑動視窗blocks和

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

個global blocks以及

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

個top-k和AST blocks計算attention,整體的計算複雜度為

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

b為block size。

每個sparse attention pattern 對應一個attention矩陣,以sliding window attention為例,其attention矩陣的計算為:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

ASA偽代碼:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

實驗結果

我們採用CodeXGLUE[1]提供的四個任務資料集進行評測,分別為code clone detection,defect detection,code search,code summarization。我們擷取其中的序列長度大於512的資料組成長序列資料集,實驗結果如下:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

#從實驗結果可以看出,SASA在三個資料集上的性能明顯超過所有Baseline。其中Roberta-base[2],CodeBERT[3],GraphCodeBERT[4]是採用截斷的方式處理長序列,這將損失一部分的上下文資訊。 Longformer[5]和BigBird[6]是在自然語言處理中用來處理長序列的方法,但未考慮程式碼的結構特性,直接遷移到程式碼任務上效果不佳。

為了驗證top-k sparse attention和AST-aware sparse attention模組的效果,我們在BigCloneBench和Defect Detection資料集上做了消融實驗,結果如下:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

#sparse attention模組不僅對於長程式碼的任務效能有提升,還可以大幅減少顯存使用,在同樣的裝置下,SASA可以設定更大的batch size,而full self-attention的模型則面臨out of memory的問題,具體顯存使用情況如下圖:

面向长代码序列的 Transformer 模型优化方法,提升长代码场景性能

SASA作為一個sparse attention的模組,可以遷移到基於Transformer的其他預訓練模型上,用於處理長序列的自然語言處理任務,後續將整合到開源框架EasyNLP(https://github.com/alibaba/EasyNLP)中,貢獻給開源社群。

論文連結:
https://arxiv.org/abs/2205.13730

以上是面向長程式碼序列的 Transformer 模型最佳化方法,提升長程式碼場景效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1249
24
CUDA之通用矩陣乘法:從入門到熟練! CUDA之通用矩陣乘法:從入門到熟練! Mar 25, 2024 pm 12:30 PM

通用矩陣乘法(GeneralMatrixMultiplication,GEMM)是許多應用程式和演算法中至關重要的一部分,也是評估電腦硬體效能的重要指標之一。透過深入研究和優化GEMM的實現,可以幫助我們更好地理解高效能運算以及軟硬體系統之間的關係。在電腦科學中,對GEMM進行有效的最佳化可以提高運算速度並節省資源,這對於提高電腦系統的整體效能至關重要。深入了解GEMM的工作原理和最佳化方法,有助於我們更好地利用現代計算硬體的潛力,並為各種複雜計算任務提供更有效率的解決方案。透過對GEMM性能的優

全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 全球最強開源 MoE 模型來了,中文能力比肩 GPT-4,價格僅 GPT-4-Turbo 的近百分之一 May 07, 2024 pm 04:13 PM

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Google狂喜:JAX性能超越Pytorch、TensorFlow!或成GPU推理訓練最快選擇 Apr 01, 2024 pm 07:46 PM

谷歌力推的JAX在最近的基準測試中表現已經超過Pytorch和TensorFlow,7項指標排名第一。而且測試並不是JAX性能表現最好的TPU上完成的。雖然現在在開發者中,Pytorch依然比Tensorflow更受歡迎。但未來,也許有更多的大型模型會基於JAX平台進行訓練和運行。模型最近,Keras團隊為三個後端(TensorFlow、JAX、PyTorch)與原生PyTorch實作以及搭配TensorFlow的Keras2進行了基準測試。首先,他們為生成式和非生成式人工智慧任務選擇了一組主流

AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 AI顛覆數學研究!菲爾茲獎得主、華裔數學家領銜11篇頂刊論文|陶哲軒轉贊 Apr 09, 2024 am 11:52 AM

AI,的確正在改變數學。最近,一直十分關注這個議題的陶哲軒,轉發了最近一期的《美國數學學會通報》(BulletinoftheAmericanMathematicalSociety)。圍繞著「機器會改變數學嗎?」這個話題,許多數學家發表了自己的觀點,全程火花四射,內容硬核,精彩紛呈。作者陣容強大,包括菲爾茲獎得主AkshayVenkatesh、華裔數學家鄭樂雋、紐大電腦科學家ErnestDavis等多位業界知名學者。 AI的世界已經發生了天翻地覆的變化,要知道,其中許多文章是在一年前提交的,而在這一

替代MLP的KAN,被開源專案擴展到卷積了 替代MLP的KAN,被開源專案擴展到卷積了 Jun 01, 2024 pm 10:03 PM

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 你好,電動Atlas!波士頓動力機器人復活,180度詭異動作嚇到馬斯克 Apr 18, 2024 pm 07:58 PM

波士頓動力Atlas,正式進入電動機器人時代!昨天,液壓Atlas剛「含淚」退出歷史舞台,今天波士頓動力就宣布:電動Atlas上崗。看來,在商用人形機器人領域,波士頓動力是下定決心要跟特斯拉硬剛一把了。新影片放出後,短短十幾小時內,就已經有一百多萬觀看。舊人離去,新角色登場,這是歷史的必然。毫無疑問,今年是人形機器人的爆發年。網友銳評:機器人的進步,讓今年看起來像人類的開幕式動作、自由度遠超人類,但這真不是恐怖片?影片一開始,Atlas平靜地躺在地上,看起來應該是仰面朝天。接下來,讓人驚掉下巴

特斯拉機器人進廠打工,馬斯克:手的自由度今年將達到22個! 特斯拉機器人進廠打工,馬斯克:手的自由度今年將達到22個! May 06, 2024 pm 04:13 PM

特斯拉機器人Optimus最新影片出爐,已經可以在工廠裡打工了。正常速度下,它分揀電池(特斯拉的4680電池)是這樣的:官方還放出了20倍速下的樣子——在小小的「工位」上,揀啊揀啊揀:這次放出的影片亮點之一在於Optimus在廠子裡完成這項工作,是完全自主的,全程沒有人為的干預。而且在Optimus的視角之下,它還可以把放歪了的電池重新撿起來放置,主打一個自動糾錯:對於Optimus的手,英偉達科學家JimFan給出了高度的評價:Optimus的手是全球五指機器人裡最靈巧的之一。它的手不僅有觸覺

DualBEV:大幅超越BEVFormer、BEVDet4D,開卷! DualBEV:大幅超越BEVFormer、BEVDet4D,開卷! Mar 21, 2024 pm 05:21 PM

這篇論文探討了在自動駕駛中,從不同視角(如透視圖和鳥瞰圖)準確檢測物體的問題,特別是如何有效地從透視圖(PV)到鳥瞰圖(BEV)空間轉換特徵,這一轉換是透過視覺轉換(VT)模組實施的。現有的方法大致分為兩種策略:2D到3D和3D到2D轉換。 2D到3D的方法透過預測深度機率來提升密集的2D特徵,但深度預測的固有不確定性,尤其是在遠處區域,可能會引入不準確性。而3D到2D的方法通常使用3D查詢來採樣2D特徵,並透過Transformer學習3D和2D特徵之間對應關係的注意力權重,這增加了計算和部署的

See all articles