在最新的研究中,预训练代码模型展现了令人瞩目的性能,但它们内部如何编码类型信息仍然不够明确。
我们通过使用Java和Python代码示例的并行数据集,探测预训练代码模型的残余流,以提取内部类型表示。研究结果表明,即使在无类型代码中,跨语言的类型表示也能显现出来。
此外,我们还测试了隐状态是否以线性方式编码由有类型函数应用所隐含的结果类型,通过在一种语言上训练探测器来推断另一种语言的参数和结果类型。我们的发现显示,这种结构在某种程度上对词汇扰动和跨语言的句法变异具有一定的鲁棒性。
值得注意的是,迄今为止,关于代码模型可解释性的先前工作并未直接针对形式类型语义或跨语言类型表示进行研究。我们将发布我们的代码和数据集。
博主点评: 本文通过实证研究揭示了预训练代码模型中的类型信息编码,填补了类型语义研究的空白,展现了跨语言特征的潜力。未来在代码模型的可解释性和类型系统的结合方面值得深入探索。