Language models of code have demonstrated state-of-the-art performance across various software engineering and source code analysis tasks. However, their demanding computational resource requirements and consequential environmental footprint remain as significant challenges. This work introduces ALPINE, an adaptive programming language-agnostic pruning technique designed to substantially reduce these models' computational overhead. The proposed method offers a pluggable layer that can be integrated with all Transformer-based models. With ALPINE, input sequences undergo adaptive compression throughout the pipeline, reaching a size up to $\times 3$ less their initial size, resulting in significantly reduced computational load. Our experiments on two software engineering tasks, defect prediction and code clone detection across three language models CodeBERT, GraphCodeBERT and UniXCoder show that ALPINE achieves up to a 50% reduction in FLOPs, a 58.1% decrease in memory footprint, and a 28.1% improvement in throughput on average. This led to a reduction in CO2 by up to $44.85$%. Importantly, it achieves the reduction in computation resources while maintaining up to 98.1% of the original predictive performance. These findings highlight the potential of ALPINE in making language models of code more resource-efficient and accessible while preserving their performance, contributing to the overall sustainability of adopting language models in software development. Also, it sheds light on redundant and noisy information in source code analysis corpora, as shown by the substantial sequence compression achieved by ALPINE.


翻译:代码语言模型在各种软件工程和源代码分析任务中展现出最先进的性能。然而,其高昂的计算资源需求和随之而来的环境足迹仍然是重大挑战。本文提出了ALPINE,一种自适应、编程语言无关的剪枝技术,旨在显著降低这些模型的计算开销。该方法提供了一个可插拔层,可与所有基于Transformer的模型集成。通过ALPINE,输入序列在整个处理流程中经历自适应压缩,尺寸最多可缩减至初始大小的$\times 3$,从而显著降低计算负载。我们在缺陷预测和代码克隆检测两项软件工程任务上,针对CodeBERT、GraphCodeBERT和UniXCoder三种语言模型进行了实验。结果表明,ALPINE平均可实现高达50%的浮点运算量(FLOPs)减少、58.1%的内存占用降低以及28.1%的吞吐量提升,同时使二氧化碳排放量最多减少$44.85$%。重要的是,这些计算资源的减少是在保持高达98.1%原始预测性能的前提下实现的。这些发现凸显了ALPINE在保持性能的同时,使代码语言模型更具资源效率和可访问性的潜力,有助于提升在软件开发中采用语言模型的整体可持续性。此外,ALPINE实现的显著序列压缩也揭示了源代码分析语料库中存在的冗余与噪声信息。

0
下载
关闭预览

相关内容

最新《Transformers模型》教程,64页ppt
专知会员服务
326+阅读 · 2020年11月26日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
40+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
学习自然语言处理路线图
专知会员服务
140+阅读 · 2019年9月24日
RL解决'BipedalWalkerHardcore-v2' (SOTA)
CreateAMind
31+阅读 · 2019年7月17日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
CVE-2018-7600 - Drupal 7.x 远程代码执行exp
黑客工具箱
14+阅读 · 2018年4月17日
国家自然科学基金
18+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
Optimization for deep learning: theory and algorithms
Arxiv
106+阅读 · 2019年12月19日
Arxiv
11+阅读 · 2018年7月31日
VIP会员
最新内容
【NTU博士论文】3D人体动作生成
专知会员服务
1+阅读 · 今天14:48
以色列军事技术对美国军力发展的持续性赋能
专知会员服务
7+阅读 · 今天8:46
《深度强化学习在兵棋推演中的应用》40页报告
专知会员服务
9+阅读 · 今天5:37
《多域作战面临复杂现实》
专知会员服务
7+阅读 · 今天5:35
《印度的多域作战:条令与能力发展》报告
专知会员服务
3+阅读 · 今天5:24
相关资讯
RL解决'BipedalWalkerHardcore-v2' (SOTA)
CreateAMind
31+阅读 · 2019年7月17日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
CVE-2018-7600 - Drupal 7.x 远程代码执行exp
黑客工具箱
14+阅读 · 2018年4月17日
相关基金
国家自然科学基金
18+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员