关于标记合并对预训练代码模型的影响
软件工程
2025-07-22 v1
摘要
标记化是代码语言模型的基本组成部分,涉及将输入分解为单元,这些单元随后传递给语言模型堆栈以学习用于各种上下文(从分类到生成)的高维表示。然而,这些标记化器的输出往往比传统上用于编译器和解释器的输出更长。这可能导致不希望的效果,例如增加计算开销。在本工作中,我们研究了合并属于同一语义单元(例如形成单个标识符的子标记)的隐藏表示的影响。我们提出了两种策略:一种基于对表示进行平均,另一种利用基于学习的方法。这两种方法可以无缝集成到现有的用于代码的语言模型中。我们使用六个用于代码的语言模型:CodeBERT、GraphCodeBERT、UniXCoder、CdoeT5、CodeT5+(220M)和 CodeT5+(770M),并在三个软件工程任务中进行实验:漏洞检测、代码分类和代码翻译。结果表明,这些策略可将浮点运算次数降低 到 。关于下游性能,最显著的性能下降发生在漏洞检测任务中,其中 F1 分数比基线下降了 分。相比之下,在代码翻译方面,我们观察到 CodeBLEU 提升了 分。这项工作为提高跨多个维度(包括计算效率和下游性能)的代码语言模型的性能作出了贡献。
引用
@article{arxiv.2507.14423,
title = {On the Effect of Token Merging on Pre-trained Models for Code},
author = {Mootez Saad and Hao Li and Tushar Sharma and Ahmed E. Hassan},
journal= {arXiv preprint arXiv:2507.14423},
year = {2025}
}