CSP-Atlas: 稀疏Python Transformer中的概念特异性神经回路

arXiv cs.CL 论文

摘要

本文研究了稀疏8层Python Transformer中的神经回路,发现针对106个编程概念存在专用回路,并将其分解为概念特异性和令牌驱动组件,这对理解代码模型中的结构编码具有重要意义。

arXiv:2605.24603v1 公告类型:新 摘要:一个稀疏的8层代码变压器为每个测试的Python构造开发了专用的神经回路,并且这些回路由清晰的计算原理组织,而非语义类别。我们通过跨63,800个受控提示进行边际化处理,为106个概念(43个AST节点类型,63个内置对象)提取神经回路,并使用对比检查器提示将每个回路分解为概念特异性和令牌驱动组件,这些提示仅呈现关键字令牌而不提供其关联的句法结构。三个发现浮现出来。首先,所有106个概念在九个参数设置中的每一个都产生了非空的通用回路,并且跨构造的概念特异性排名在整个扫描中保持稳定——存活并非宽松阈值的假象。其次,AST回路包含一个与令牌激活不同的真正概念组件:在中间到后期层中,仅概念神经元占最大激活神经元的比例高达62.5%,而内置回路几乎完全由令牌驱动。第三,六个计算上原子性的构造——Import、ImportFrom、Break、Continue、Pass、Assert——尽管在语义上不相关,但聚类在一起,它们共享的唯一属性是单语句构造,不需要嵌套主体;这个原子性超级聚类,连同由令牌歧义和结构独特性组织的四层层次结构,表明模型的内部组织追踪计算结构而非含义。方法论、完整分解数据和分析代码已发布。
查看原文
查看缓存全文

缓存时间: 2026/05/26 09:04

# CSP-Atlas:稀疏Python Transformer中的概念特定神经电路
来源:https://arxiv.org/html/2605.24603

###### 摘要

一个稀疏的8层代码Transformer为每个测试的Python构造都开发了专用神经电路,而且这些电路按照一个清晰的计算原则而非语义类别进行组织。我们通过边缘化63,800个受控提示,提取了106个概念(43种AST节点类型,63种内置对象)的神经电路,并使用对比检查提示(在无关联语法结构的情况下呈现关键词词元)将每个电路分解为概念特定成分和词元驱动成分。研究得出三项发现。首先,所有106个概念在九种参数设置中的每一种都产生非空通用电路,且构造间的概念特异性排名在整个参数扫描中保持稳定——存活并非宽松阈值的人为产物。其次,AST电路包含一个区别于词元激活的真实概念成分:概念专属神经元在中后期层构成高达62.5%的最高激活神经元,而内置电路几乎完全由词元驱动。第三,六种计算原子构造——Import、ImportFrom、Break、Continue、Pass、Assert——尽管语义上不相关,却聚集在一起,它们共享的唯一特性是作为不需要嵌套体的单语句构造;这一原子性超簇,连同按词元歧义性和结构独特性组织的四层层次结构,表明模型的内部组织追踪的是计算结构而非意义。本文发布方法论、完整分解数据及分析代码。

## 1 引言

当代码语言模型处理Python的`for`循环时,它回应的是什么?它可能是在识别迭代的语法概念——一种结构化的控制流构造,包含目标变量、可迭代对象和缩进体。或者它可能只是对三个字母的token `for`做出反应。这两种假设——概念表示与token检测——在格式良好的代码上预测的行为相同,但当token出现在其语法角色之外时(如在字符串字面量、注释或变量名中)则会出现分歧。这种分歧是本研究的实验杠杆。

这个问题对于可解释性和信任至关重要。如果内部表示简化为token模式匹配,那么模型表面的理解是浅薄的;如果模型为语法概念构建了区别于token级处理的专用电路,则表明存在更深入的结构编码。

我们基于一个在Python代码上训练的稀疏8层Transformer(CSP模型),通过跨63,800个受控提示的激进边缘化程序,提取了106个编程概念(43个抽象语法树(AST)节点类型和63个内置对象)的神经电路。然后我们将每个电路分解为三个互不相交的神经元群体:仅对语法概念响应但不响应裸关键词token的概念专属神经元;对两者都响应的共享神经元;以及仅对token响应的token专属神经元。

#### 贡献。

(1) **参数稳定的概念存活**。所有106个概念在3×3参数扫描的每种设置下都产生非空通用电路,且概念特异性排名跨设置稳定——这证明了模型为每个测试的构造都开发了专用电路,且具有鲁棒性,而非仅在某个宽松角落成立。(2) **概念-词元分解**。AST电路包含大量概念特定成分(在中后期层最高激活单元中占高达62.5%),而内置电路几乎完全由词元驱动。(3) **原子性超簇和四层层次结构**。六种计算原子构造根据共享的结构属性而非含义聚集在一起,位于按词元歧义性和结构复杂性组织的连贯层次结构中:无词元AST > 模块化关键词AST > 非模块化关键词AST > 内置对象。

#### 范围。

本研究是观察性的:我们刻画电路结构,但未进行因果干预。分析涵盖一个模型和一种语言。这些局限性定义了后续工作的方向,该方法将扩展到密集生产级模型和第二种语言。

## 2 背景

#### 电路发现。

机械可解释性研究项目将神经网络逆向工程为人类可理解的组件。Conmy等人(2023年(https://arxiv.org/html/2605.24603#bib.bib2))通过激活修补引入了自动化电路发现;Heimersheim和Nanda(2024年(https://arxiv.org/html/2605.24603#bib.bib4))改进了因果清洗。我们的工作在范围上有所不同:不是针对单一行为的电路,而是提取整个概念空间的电路,并刻画其组成结构。

#### 叠加和多语义性。

单个神经元通常对多个不相关的特征做出响应(Elhage等人,2022年(https://arxiv.org/html/2605.24603#bib.bib3))。我们的边缘化程序旨在穿透叠加:通过跨所有互补对象进行交集运算,我们分离出那些无论上下文如何都对概念做出响应的神经元。

#### 探测和因果方法。

线性探针检测语言模型表示中的句法结构(Tenney等人,2019年(https://arxiv.org/html/2605.24603#bib.bib7); Belinkov,2022年(https://arxiv.org/html/2605.24603#bib.bib1))。激活修补和因果追踪(Meng等人,2022年(https://arxiv.org/html/2605.24603#bib.bib6))识别因果相关成分。我们的横截面实验测量哪些神经元携带概念信息,为后续因果干预提供目标图。

#### 代码模型可解释性。

先前工作已探测语法树(Wan等人,2022年(https://arxiv.org/html/2605.24603#bib.bib8))和变量绑定(Hernandez等人,2024年(https://arxiv.org/html/2605.24603#bib.bib5))的代码模型。我们通过将内部表示在神经元级别分解为概念特定分区和词元驱动分区来扩展这条研究线。

## 3 模型和概念空间

### 3.1 CSP Transformer

研究模型是`openai/circuit-sparsity`,一个于2025年发布并在Python源代码上训练的稀疏Transformer。它有8层;每层的MLP输出是一个2,048维向量,进入残差流。稀疏性是结构性的:该架构使用稀疏激活的MLP块,使得指向残差流的MLP输出在给定输入下,大多数神经元包含真正的零值,而不是标准SwiGLU/GELU块产生的密集非线性后值。这正是使二值化在本研究中具有意义的原因:阈值化掩码反映了激活中的真实结构,而不是对密集分布的任意切割。我们纯粹将模型用作测量工具——权重从公共Hub发布加载且从不更新——并在发布的提取配置中固定修订版SHA以保证可重复性。捆绑的分词器通过相同的Hub标识符加载;它不是通用的GPT-2分词器,并且token边界与CodeLlama或StarCoder不同。

文中“神经元”一词始终指MLP输出向量的一个维度——贡献给残差流的复合信号——而不是扩展MLP隐藏层中的内部神经元。

### 3.2 概念空间

研究针对两个Python概念家族。AST节点是定义程序结构的句法构造:`For`、`If`、`FunctionDef`、`Import`、`Break`、`Pass`、`ListComp`等36个——总共43个节点类型。内置对象是不需要导入即可使用的类型、函数和异常:`int`、`list`、`dict`、`print`、`len`、`range`、`ValueError`等56个——总共63个。完整的笛卡尔积——43×63=1,276对——定义了概念空间。完整列表见发布工件的附录A。

## 4 提示生成

### 4.1 对象提示

对于每1,276对,程序化生成50个提示变体。使用`ast.parse()`和`ast.unparse()`构建结构有效的Python片段,保证包含应用于目标内置对象的目标AST节点。沿三个正交维度注入变异性:词汇/语义(来自五个领域的变量名——金融、生物学、游戏、物理、电子商务),结构(全局作用域~40%,函数内部~30%,类方法内部~30%),以及填充(可选的在代码前后添加无关代码)。丢弃具有过高序列损失的提示;保留每对前50个,共计1,276 × 50 = 63,800个提示。

### 4.2 检查提示

每个带有关键词的构造都存在固有的混淆:import语句始终包含token `import`,因此在`import`上激活的通用电路可能反映的是token而非概念。检查提示集隔离了这一点。

在43个AST节点中,有24个具有可测试关键词——这些分为6个模块化关键词(`Import`、`ImportFrom`、`Break`、`Continue`、`Pass`、`Assert`)和18个非模块化关键词(`For`、`While`、`If`、`Return`以及其他需要体的构造)。在63个内置对象中,有34个具有可测试关键词。其余概念缺乏独特的关键词token,因此不受混淆影响。这给出了58个可测试对象(24个AST + 34个内置对象)。对于每个可测试对象,跨五个类别生成50个检查提示,其中关键词token出现但概念未出现(表1(https://arxiv.org/html/2605.24603#S4.T1))。每个提示都验证:(a) 能解析为有效Python,(b) 从AST中排除目标概念,以及(c) 分词器输出中包含关键词token。

表1:五种检查提示类别。每个类别在非结构上下文中呈现关键词token。
表2:在ε=0.001、C=80%时按层计算的概念分数(%)。第1层本质上是纯词元;模块化AST的概念信号在第5层达到峰值。

## 5 提取流程

#### 激活提取。

每个提示在一次前向传递中处理;不生成任何文本——模型纯粹用作测量工具。在每个8层的MLP模块上设置前向钩子,仅拦截最后一个token位置的输出,因为最后一个token的残差流通过因果注意力整合了整个序列的信息。每个提示产生8个2,048维向量。

#### 二值化。

原始激活转换为二进制掩码。*ε阈值化*:如果|激活| > ε,则神经元活跃。*一致性过滤*:在50个提示变体中,仅保留在≥ C%的提示中活跃的神经元。

#### 边缘化。

通过在互补维度上取交集来获得通用电路:对于某个AST节点,跨所有63个内置对象取交集;对于某个内置对象,跨所有43个AST节点取交集。只有当神经元无论涉及哪个互补对象都激活时,它才存活。如果模型没有将这些概念编码为结构化单元,则交集会塌缩为空集——正如对于此密度的随机二进制向量所发生的那样。结果得到106个通用电路。

#### 参数扫描。

两个参数控制提取:ε ∈ {0.001, 0.1, 0.5}(激活阈值)和 C ∈ {20%, 50%, 80%}(一致性阈值)。在3×3网格(9种设置)的每种组合下,通用掩码和检查掩码都重新构建;除非另有说明,否则结果在所有9种设置下均成立。

#### 分解。

对于58个可测试对象中的每一个,在每一层,将通用掩码A和token检查器掩码B进行比较,将2,048个维度划分为三个不相交的组。*概念专属* (A \ B):在通用电路中但不在检查器中——当概念存在时激活,但裸关键词不激活的神经元。*共享* (A ∩ B):在两者中。*词元专属* (B \ A):在检查器中但不在通用电路中。概念分数 |A \ B| / |A| 量化了电路中有多少反映了结构理解与表面模式匹配,每个概念、每层、在所有9种设置下计算。

## 6 结果

### 6.1 发现1:通用电路在扫描中参数稳定

所有43个AST节点和所有63个内置对象在九种(ε, C)设置中的每一种都产生非空通用电路——并非在单个宽松角落,而是跨越整个网格,包括ε=0.5(此时大多数神经元被过滤掉)。在最激进的设置(ε=0.001, C=80%)下,每一个10,208个层对掩码(1,276对 × 8层)都包含活跃神经元;但实质性主张在于稳定性:构造间概念特异性的排名在所有九种设置下得以保持,因此存活反映了结构化表示而非阈值的人为产物。如果掩码是密度相当的随机二进制向量,边缘化后的交集将塌缩为空集;但事实并非如此,对于任何概念、在任何设置下都是如此。

### 6.2 发现2:AST电路包含区别于词元激活的概念成分

AST节点的通用电路不仅仅是token检测器:它们包含大量当句法概念存在时激活、但当关键词token单独出现时不激活的神经元。内置电路几乎完全由词元驱动。(注意43个AST节点中的19个——如`Assign`、`BinOp`、`ListComp`、`Compare`、`Call`等——没有独特的关键词;它们的通用电路本质上是概念驱动的,不存在token混淆。)

在参数扫描中,AST节点的平均概念分数在每种设置下都超过内置对象——在低到中等ε时大约为3–6倍,在ε=0.5时相差一个数量级,此时内置概念专属神经元趋近于零(表3(https://arxiv.org/html/2605.24603#S6.T3))。在高阈值下,最响亮的神经元主要是概念特定的:在ε=0.5, C=80%时,第5层,模块化AST电路有62.5%是概念专属,非模块化AST电路为58.2%,而内置概念专属神经元完全消失(表4(https://arxiv.org/html/2605.24603#S6.T4))。层剖面显示概念信号在第1层接近零,在模块化AST的第5层达到峰值,然后下降(表2(https://arxiv.org/html/2605.24603#S4.T2))。

表3:跨3×3参数扫描按组计算的平均概念分数。AST在每种设置下都超过内置对象;差距在ε=0.5时最大,此时内置CF趋近于零。
表4:在ε=0.5, C=80%,第5层:按组统计的概念专属、共享和通用电路大小。大多数AST电路神经元是概念特定的。内置概念专属神经元完全消失。

### 6.3 发现3:原子性超簇和四层层次结构

对概念专属神经元集合的层次聚类将六种构造紧密地分组在一起:`Import`、`ImportFrom`、`Break`、`Continue`、`Pass`、`Assert`。这六种构造在语义上不相关——`break`和`import`在功能上毫无共同点——但它们共享一个单一的计算属性:每个都是原子性的单语句构造,不需要嵌套体。我们称之为**原子性超簇**,这是模型内部组织追踪计算结构而非语义类别的最清晰证据。在

相似文章

Transformer线性表示高度结构化的世界模型

arXiv cs.LG

本文证明,在数独求解轨迹上训练的Transformer构建了由领域约束组织的结构化世界模型,并识别出一个稀疏、单语义的电路,负责裸单决策规则。该工作为Transformer在组合任务上的推理提供了完全可解释的算法描述。

通过稀疏电路理解神经网络

OpenAI Blog

OpenAI 研究人员提出了一种训练稀疏神经网络的方法,通过强制大部分权重为零使其更易于解释,从而发现能够解释模型行为的小型解耦电路,同时保持性能。这项工作旨在推进机制可解释性,作为对稠密网络事后分析的补充,并支持 AI 安全目标。

使用稀疏Transformer进行生成建模

OpenAI Blog

OpenAI推出了稀疏Transformer,一种深度神经网络,将注意力机制的复杂度从O(N²)优化到O(N√N),使得能够对长度超过以前30倍的序列进行建模,适用于文本、图像和音频领域。该模型采用稀疏注意力模式和基于检查点的内存优化技术,可以训练深达128层的网络,在多个领域实现了最先进的性能。

稀疏自编码器中概念学习与神经元解释的几何视角

arXiv cs.LG

本文提出了一个统一的几何框架,用于理解稀疏自编码器中的概念学习和神经元解释,将概念形式化为集合,并定义了检测、分离和近似。它提供了误差界、容量约束,并与形式概念分析建立了联系,同时在合成数据上进行了实验。