- 简介代码语言模型已经在各种软件工程和源代码分析任务中展示出最先进的性能。然而,它们对计算资源的要求和由此产生的环境足迹仍然是重大挑战。本文介绍了一种名为ALPINE的自适应编程语言无关剪枝技术,旨在大幅降低这些模型的计算开销。所提出的方法提供了一个可插入的层,可以与所有基于Transformer的模型集成。通过ALPINE,输入序列在整个管道中进行自适应压缩,达到了最初大小的$\times 3$,从而显著减少了计算负载。我们在两个软件工程任务上进行了实验,缺陷预测和代码克隆检测,涉及三个语言模型CodeBERT,GraphCodeBERT和UniXCoder,结果表明,ALPINE平均可以实现FLOPs降低50%,内存占用减少58.1%,吞吐量提高28.1%。这导致CO2排放量最高减少了44.85%。重要的是,它在保持原始预测性能的同时实现了计算资源的减少高达98.1%。这些发现突显了ALPINE在使代码语言模型更具资源效率和可访问性方面的潜力,同时保持其性能,有助于采用语言模型进行软件开发的整体可持续性。此外,它还揭示了源代码分析语料库中冗余和噪声信息,如ALPINE所实现的大量序列压缩所示。
- 图表
- 解决问题本论文旨在解决语言模型在软件工程和源代码分析任务中需要消耗大量计算资源的问题,提出了一种自适应的编程语言无关的剪枝技术ALPINE,以显著降低这些模型的计算开销。
- 关键思路ALPINE提供了一个可插拔的层,可与所有基于Transformer的模型集成。该方法通过自适应压缩管道中的输入序列,将其大小压缩至原始大小的3倍,从而显著降低计算负载。
- 其它亮点实验结果表明,ALPINE在两个软件工程任务(缺陷预测和代码克隆检测)上,对CodeBERT、GraphCodeBERT和UniXCoder三种语言模型的FLOPs减少了50%,内存占用减少了58.1%,吞吐量平均提高了28.1%,同时减少了44.85%的CO2排放量。此外,ALPINE在保持原始预测性能的情况下,实现了计算资源的降低。
- 近年来,许多研究致力于提高语言模型在软件工程和源代码分析任务中的性能和效率。例如,CodeBERT、GraphCodeBERT和UniXCoder等语言模型已经被广泛应用。此外,还有一些研究关注于减少模型的计算负载和环境足迹,如模型压缩和剪枝技术。
沙发等你来抢
去评论
评论
沙发等你来抢