阿里雲機器學習平臺PAI與華東師範大學論文入選SIGIR 2022
阿里雲機器學習平臺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的整體框架:
其中,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,保留區域性上下文的特徵,計算複雜度為 O(n×w), n為序列長度, w是滑動視窗大小。
- Global attention:設定一定的global token,這些token將與序列中所有token進行attention計算,從而獲取序列的全域性資訊,計算複雜度為 O(n×g), g為global token個數。
- Top-k sparse attention:Transformer模型中的attention互動是稀疏且長尾的,對於每個token,僅與其attention互動最高的top-k個token計算attention,複雜度為 O(n×k)。
- AST-aware structure attention:程式碼不同於自然語言序列,有更強的結構特性,透過將程式碼解析成抽象語法樹(AST),然後根據語法樹中的連線關係確定attention計算的範圍。
為了適應現代硬體的平行計算特性,我們將序列劃分為若干block,而非以token為單位進行計算,每個query block與 w個滑動視窗blocks和 g個global blocks以及 k個top-k和AST blocks計算attention,總體的計算複雜度為 O(n(w+g+k)b), b為block size。
每個sparse attention pattern 對應一個attention矩陣,以sliding window attention為例,其attention矩陣的計算為:
ASA虛擬碼:
實驗結果
我們採用CodeXGLUE[1]提供的四個任務資料集進行評測,分別為code clone detection,defect detection,code search,code summarization。我們提取其中的序列長度大於512的資料組成長序列資料集,實驗結果如下:
從實驗結果可以看出,SASA在三個資料集上的效能明顯超過所有Baseline。其中Roberta-base[2],CodeBERT[3],GraphCodeBERT[4]是採用截斷的方式處理長序列,這將損失一部分的上下文資訊。Longformer[5]和BigBird[6]是在自然語言處理中用於處理長序列的方法,但未考慮程式碼的結構特性,直接遷移到程式碼任務上效果不佳。
為了驗證top-k sparse attention和AST-aware sparse attention模組的效果,我們在BigCloneBench和Defect Detection資料集上做了消融實驗,結果如下:
sparse attention模組不僅對於長程式碼的任務效能有提升,還可以大幅減少視訊記憶體使用,在同樣的裝置下,SASA可以設定更大的batch size,而full self-attention的模型則面臨out of memory的問題,具體視訊記憶體使用情況如下圖:
SASA作為一個sparse attention的模組,可以遷移到基於Transformer的其他預訓練模型上,用於處理長序列的自然語言處理任務,後續將整合到開源框架EasyNLP( )中,貢獻給開源社群。
論文連結:
參考文獻
[1] Shuai Lu, Daya Guo, Shuo Ren, Junjie Huang, Alexey Svyatkovskiy, Ambrosio Blanco, Colin B. Clement, Dawn Drain, Daxin Jiang, Duyu Tang, Ge Li, Lidong Zhou, Linjun Shou, Long Zhou, Michele Tufano, Ming Gong, Ming Zhou, Nan Duan, Neel Sundaresan, Shao Kun Deng, Shengyu Fu, Shujie Liu. CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation. NeurIPS Datasets and Benchmarks 2021
[2] 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)
[3] 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 2020
[4] 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
[5] Iz Beltagy, Matthew E. Peters, Arman Cohan. Longformer: The Long-Document Transformer. CoRR abs/2004.05150 (2020)
[6] Manzil Zaheer, Guru Guruganesh, Kumar Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontañón, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Amr Ahmed. Big Bird: Transformers for Longer Sequences. NeurIPS 2020
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004426/viewspace-2905107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 阿里雲機器學習平臺PAI與香港大學合作論文入選INFOCOM 2022阿里機器學習AI
- 阿里雲人工智慧平臺PAI多篇論文入選EMNLP 2023阿里人工智慧AI
- AI推理服務平臺升級,阿里雲機器學習PAI推出新規格AI阿里機器學習
- 機器學習PAI快速入門與業務實戰機器學習AI
- 機器學習PAI快速入門機器學習AI
- NIPS論文排行榜出爐,南大周志華5篇論文入選
- 機器學習研究與開發平臺的選擇機器學習
- SIGIR 2020 國內企業入圍論文清單
- SIGIR2017 滿分論文:IRGAN
- 微博收藏(機器學習課程與論文)(三)機器學習
- 3月29日雲棲精選夜讀:阿里“NASA”首個重磅武器亮相——機器學習平臺PAI2.0阿里機器學習AI
- 促進關鍵軟體高層次人才培養:平凱星辰與華東師範大學簽訂聯合博士培養合作協議協議
- Sigir2024 ranking相關論文速讀
- 華東師範大學與螞蟻集團OceanBase成立聯合實驗室,助推自研資料庫創新發展資料庫
- 資料庫大賽50強之「華東師範大學」:恰同學少年,程式碼激揚!資料庫
- 創歷屆最好成績 阿里雲6篇論文入選全球網路頂會SIGCOMM2022阿里GC
- 1人15篇入選?華人論文知多少?深度分析ICCV2019論文錄取背後的那些事兒!
- 華東師範大學副校長周傲英:未來,中國需要什麼樣的資料庫?資料庫
- MLFlow機器學習管理平臺入門教程一覽機器學習
- PAI:一站式雲原生AI平臺AI
- 華棲雲聯手阿里雲創首個媒體公共雲平臺阿里
- Mixtral 8X7B MoE模型基於阿里雲人工智慧平臺PAI實踐合集模型阿里人工智慧AI
- 論資料中心與資料平臺
- Endeavour的機器學習平臺機器學習
- Uber 機器學習平臺 — 米開朗基羅機器學習
- 華中師範大學:青少年沉迷遊戲與體育場面積過小有關遊戲
- 《機器學習導論》和《統計機器學習》學習資料:張志華教授機器學習
- 機器學習推薦的論文和文章機器學習
- 機器學習入門(二):工具與框架的選擇機器學習框架
- 阿里SIGIR 2017論文:GAN在資訊檢索領域的應用阿里
- 新聞源平臺:軟文推廣是什麼意思? 選錯了軟文平臺有多可怕
- 這幾款科研論文合作寫作平臺值得收藏
- 論文第4章:iOS繪圖平臺的實現iOS繪圖
- Hugging Face 論文平臺 Daily Papers 功能全解析Hugging FaceAI
- 商湯科技71篇論文入選CVPR 2022創新高,引領AI技術與產業創新發展AI產業
- 阿里雲機器學習PAI開源中文NLP演算法框架EasyNLP,助力NLP大模型落地阿里機器學習AI演算法框架大模型
- 【機器學習PAI實踐五】機器學習眼中的《人民的名義》機器學習AI
- 論文第5章:Android繪圖平臺的實現Android繪圖