TypeProbe: 从预训练代码模型的隐藏状态中恢复类型表示
摘要
本文探究预训练代码模型是否在其隐藏状态中编码了类型信息,通过对Java和Python示例使用线性探针进行研究。结果表明,即使是从无类型代码中也会出现跨语言的类型表示,并且这些表示对词汇扰动和句法变化具有鲁棒性。
arXiv:2607.08339v1 公告类型: 新
摘要:最先进的代码模型取得了令人瞩目的性能,但它们内部编码类型信息的程度仍知之甚少。我们使用Java和Python代码示例的平行数据集,对预训练代码模型的残差流进行内部类型表示的探测。结果表明,即使是从无类型代码中也会出现跨语言的类型表示。此外,我们通过在一个语言上训练探针来推断另一个语言中的参数和结果类型,测试隐藏状态是否线性地编码了由类型化函数应用隐含的结果类型。最后,我们发现这种结构对词汇扰动和跨语言句法变化具有一定的鲁棒性。据我们所知,先前关于代码模型可解释性的工作并未直接针对形式类型语义或跨语言类型表示。我们已公开代码和数据集。
查看缓存全文
缓存时间: 2026/07/10 06:14
# TypeProbe: 从预训练代码模型的隐藏状态中恢复类型表示 来源:https://arxiv.org/html/2607.08339 ILLC,阿姆斯特丹大学,阿姆斯特丹,荷兰 [email protected], [email protected] ###### 摘要 当前最先进的代码模型取得了令人印象深刻的性能,但它们在内部编码类型信息的程度仍知之甚少。我们使用 Java 和 Python 代码示例的并行数据集,探测预训练代码模型的残差流中的内部类型表示。我们的结果表明,即使从未类型化的代码中,也能出现跨语言的类型表示。此外,我们通过在一个语言上训练探针来推断另一个语言中的参数和结果类型,测试隐藏状态是否线性编码了类型化函数应用所隐含的结果类型。最后,我们发现这种结构在一定程度上对词汇扰动和跨语言句法变化具有鲁棒性。据我们所知,先前关于代码模型可解释性的工作并未直接针对形式类型语义或跨语言类型表示。我们公开发布了代码和数据集<sup>1</sup>。 <sup>1</sup>https://github.com/anticleiades/TypeProbe ## 1 引言 当前最先进的代码模型在下一个词元预测方面表现出色,但仍然可能违反形式类型系统的约束。例如,在生成的 TypeScript 中,近 94% 的编译错误源于类型检查失败[10](https://arxiv.org/html/2607.08339#bib.bib10)。类型约束解码[10](https://arxiv.org/html/2607.08339#bib.bib10)通过外部强制语言特定的规则来缓解这一问题,但这种方法假设模型无法内化形式类型信息,并且需要为每种语言设计专门的机制。诊断探针已成为研究神经表示中编码的抽象信息的标准工具[1](https://arxiv.org/html/2607.08339#bib.bib1), [7](https://arxiv.org/html/2607.08339#bib.bib7), [4](https://arxiv.org/html/2607.08339#bib.bib4),而先前关于预训练代码模型的工作表明,它们更容易捕获语法、标识符和命名空间,而非复杂的语义属性[13](https://arxiv.org/html/2607.08339#bib.b
相似文章
线性探针在语言模型隐藏状态中检测的是任务格式,而非推理模式
本文证明,基于LLM隐藏状态的线性探针检测到的是任务格式混淆因素(例如来源身份、回答长度),而非不同的推理模式。通过残差化和因果引导,表明高探针准确率源于表面特征,而非计算结构。
编码智能体提前思考
本文研究了编码智能体中的语言模型如何在迭代编辑过程中内部表示不断演变的程序。作者发现,线性探针可以从残差流中解码程序属性(例如解析、测试通过率),并且令人惊讶的是,这些表示在代理实际进行编辑之前就能预测未来结果,揭示了一个“潜在编程视野”。
从信号到迁移:基于探针的大语言模型不确定性估计的分解研究
本文对大语言模型中基于探针的不确定性估计进行了分解研究,表明原始隐藏状态和注意力特征在域内表现良好,但结构化特征在分布偏移下更为鲁棒,并提供了预训练探针作为现成基线。
大语言模型中欺骗探测探头的压力测试:可伸缩性、鲁棒性与欺骗表征的几何特性
本文系统测试了用于大语言模型欺骗检测的线性探头,发现它们在分布偏移下失效,但风格增强型探头能恢复性能,并揭示欺骗是通过分布式亚阈值特征编码的。
它们推断出你的意图:模型对交际意图的表征比实际行动更可靠
本文研究了语言模型尽管具有稳健的内部表征,但在行动上却未能体现交际意图的问题。通过线性探针,作者发现意图可以从隐藏状态中解码,但通常不反映在输出中,而引导一个较后层的方向可以恢复预期的行为。