程式模型語境解構:任務、語言與模型角色的獨立影響分析

本文針對獨立訓練的語言模型是否以相同方式在相同意義上表征程式的問題,透過建構包含 Python 與 Rust、Qwen2.5-Coder-7B 與 DeepSeek-Coder-V1-6.7B 的 2×2 實驗設計,系統性地解構了任務、程式語言及模型架構對程式表征的影響。研究擴展了概念電路提取方法,對 58 個 Python 和 57 個 Rust 語法概念進行了統一測量。核心發現顯示,表征的內容由任務決定,模型間高度一致;而位置和機制由模型架構決定,存在顯著差異。Rust 程式獲得的電路資源是 Python 的 2 至 3 倍,且模型間共享神經元,其中 DeepSeek 的共享率更高。Qwen 較傾向將 Rust 類型系統的語義綁定至單一神經元叢集。實驗證實這些電路具有功能性,揭示了程式表征中通用性與特異性並存的複雜樣貌。

本研究旨在深入探究独立训练的大型语言模型在处理代码时,其内部表征机制究竟在多大程度上是通用的,又在多大程度上依赖于特定的模型架构或编程语言。尽管代码模型在开源社区和工业界广泛应用,但关于它们如何内部编码语法结构、语义概念以及不同语言特性之间的差异,尚缺乏系统性的对比分析。本文的核心贡献在于提出并实施了一个严谨的2x2实验设计,交叉考察了两种主流编程语言(Python和Rust)与两种不同架构的代码专用模型(Qwen2.5-Coder-7B和DeepSeek-Coder-V1-6.7B)。通过扩展最近提出的概念电路提取方法,研究团队构建了一个能够分离任务、语言和模型各自影响的极简实验框架,对涵盖58个Python概念和57个Rust概念的完整语法清单进行了统一测量。这一设计不仅回答了"模型是否以相同方式表征相同事物"的基础问题,更揭示了代码表征中"内容"与"计算组织"之间的解耦现象,为理解代码模型的内部工作原理提供了全新的视角和实证依据。在技术方法上,研究并未预设任何固定的结构假设,而是通过数据驱动的方式提取并分析概念电路。

具体而言,研究者利用概念电路提取技术,识别出模型内部专门处理特定语法概念的神经元子集。为了量化模型间的一致性,研究采用了Spearman相关系数来评估不同模型对同一概念分配电路的概率分布。在位置分析上,研究追踪了电路活跃的具体层数,发现不同模型在处理相同概念时,其关键计算发生在网络的不同深度。在机制分析上,研究考察了电路随层数增长的动态模式,例如早期激活的尖峰特征。此外,为了验证提取出的电路并非偶然噪声,研究还结合了消融实验和线性探针技术,确认这些电路在移除后确实会导致模型性能下降,从而证明其功能性。这种多维度的分析方法,使得研究能够从内容一致性、空间分布和动态演化三个层面,全面解构代码表征的形成机制。

实验结果呈现出三个维度的显著差异。首先,在"什么"被表征的层面上,模型间表现出高度的一致性,Python和Rust的概念电路分配相关性分别达到0.638和0.673,且统计显著性极高,这表明任务本身决定了哪些概念需要专门的电路支持。其次,在"哪里"进行计算的层面上,模型架构起到了决定性作用:Qwen模型主要在较晚的层(约第17-19层)处理概念,而DeepSeek则在较早的层(第6-7层)完成这一过程。第三,在"如何"构建电路的层面上,Qwen表现出原子概念在早期层的显著激活尖峰,而DeepSeek则无此特征。此外,研究还发现Rust代码获得的特定电路资源是Python的2-3倍,暗示了Rust更复杂的类型系统对模型表征提出了更高要求。在跨语言共享方面,两个模型都表现出神经元共享现象,DeepSeek的共享比例(1.94倍)高于Qwen,且Qwen特别将Rust类型和特征系统的九个关键词绑定到一个紧密的神经元簇中,这种语义维度在表面语法中是不可见的。

这项研究对代码模型的理解、优化及后续应用具有深远的行业意义。首先,它打破了"代码表征具有单一通用结构"的简单假设,指出表征的通用性仅限于内容层面,而计算实现具有高度的模型特异性。这对模型压缩、微调及知识蒸馏具有重要启示:针对不同模型架构,需要定制化的电路干预策略。其次,Rust代码更高的电路复杂度提示,在处理强类型语言时,模型可能需要更多的计算资源或更深层次的理解能力,这为编译器辅助代码生成和静态分析工具的优化提供了理论依据。最后,模型间神经元共享的发现,特别是DeepSeek在跨语言语义共享上的优势,为构建多语言统一的代码基础模型提供了新的思路。未来研究可进一步验证这种基于模型的表征预测能力,探索其在更广泛编程语言和更大规模模型中的普适性,从而推动代码AI从黑盒预测向可解释、可控制的智能系统演进。

Sources