INSPECT: 代码Transformer的内在和系统性探测评估
软件工程
2023-12-11 v1 机器学习
摘要
预训练的源代码模型最近已成功应用于各种软件工程任务;它们也在实践中得到了一些实际应用,例如代码补全。然而,我们对这些预训练模型从源代码中学到了什么仍然知之甚少。在本文中,我们使用探测——一种不进一步训练模型的简单诊断任务——来发现预训练模型在多大程度上学习了源代码的特定方面。我们使用一个可扩展的框架定义了15个探测任务,这些任务涉及源代码的表面、句法、结构和语义特征。我们探测了8个预训练的源代码模型,以及一个自然语言模型(BERT)作为基线。我们发现,整合了某些结构信息(如GraphCodeBERT)的模型对源代码特征有更好的表示。令人惊讶的是,我们发现对于某些探测任务,BERT与源代码模型具有竞争力,这表明在相应代码特征上改进源代码特定预训练还有很大空间。我们鼓励其他研究人员使用我们的探测任务套件评估他们的模型,以便他们能够窥视模型的隐藏层,并识别出哪些内在代码特征被编码。
引用
@article{arxiv.2312.05092,
title = {INSPECT: Intrinsic and Systematic Probing Evaluation for Code Transformers},
author = {Anjan Karmakar and Romain Robbes},
journal= {arXiv preprint arXiv:2312.05092},
year = {2023}
}
备注
Accepted to IEEE Transactions on Software Engineering. Extension of our previous paper "What do pre-trained code models know about code?" (ASE 2021, arXiv:2108.11308). 21 pages