深度解析:Claude J-space
- 公众号:浮之静
- 发布时间:2026-07-07T19:53:29+08:00
- 微信链接:https://mp.weixin.qq.com/s/jbTi2ozUVmvPUICc8g2FHg
- RSS ID:3236165275-2247492217_1
- Feed ID:MP_WXS_3236165275
- Glance 当前首页可见:是
这项研究有两篇核心内容:
研究导读:A global workspace in language models[1]
技术论文:Verbalizable Representations Form a Global Workspace in Language Models[2]
摘要
读 Anthropic 这组研究时,最容易被几个词带跑:global workspace、J-space、Jacobian lens、conscious access。它们看起来都很“意识科学”,很容易让人误以为论文在宣称“模型有意识”。可这项工作的技术重点其实更具体:研究者发现,Claude 的内部激活里有一小部分表示特别像一种“共享白板”。模型可以把它们说出来,可以按指令调动它们,也会在多步推理时把中间结果放进去;更重要的是,后续很多不同计算会读取这块白板上的内容。
Anthropic 把这组表示叫 J-space。它通过一种叫 Jacobian lens[3](简称 J-lens)的工具读出来,位置在模型内部激活里,不需要被写成 chain-of-thought,也不一定会出现在最终回答里。Anthropic 的介绍明确说,这些模式是在训练中自己长出来的,运行在模型内部神经激活中,可以让模型“想到”一个概念而不用把它写出来。
更精确地说,J-space 不是模型里的一个独立器官,也不是某组固定神经元。它更像 residual stream 中的一种特殊表示格式:某些内部激活方向和词表 token 对齐,能被 J-lens 读成可语言化概念。一个概念进入 J-space,并不表示模型马上要输出这个词;它表示这个概念处在一种更容易被报告、调控、推理调用和下游复用的内部状态。
用一句朴素的话讲:J-space 像 Claude 内部的一张“小白板”。
模型的大量处理并不会写到这张白板上。语法衔接、局部续写、简单分类、常规事实回忆,很多都可以由熟练电路自动完成。可一旦任务需要报告、计划、抽象组合、多步推理,或者审视当前场景,一些关键中间概念就会被写到这张白板上,供后续计算继续读取。论文把它和全局工作空间理论中的几个核心性质对应起来:可报告、可调动、参与内部推理、支持灵活泛化,并且只在部分任务中被选择性使用。
脑中大屏
先从人脑说起。你现在读这段文字,大脑里同时发生着很多处理:眼睛接收光线,视觉系统识别字形,语言系统解析词义,姿势控制系统让你坐稳,呼吸和心跳也在继续。绝大部分活动不会浮到你的主观注意里。你能说出的,通常只是少量内容:我读懂了某句话,我想到一个例子,我决定往下看。
全局工作空间理论最早常和 Bernard Baars[4] 的认知架构思想相关;Dehaene、Naccache 等人后来把它发展成更偏脑科学的 **Global Neuronal Workspace(GNW:全局神经工作空间)**框架。Dehaene 和 Naccache 在 2001 年的论文中提到(Towards a cognitive neuroscience of consciousness: basic evidence and a workspace framework[5]),人脑大量处理可以在无意识状态下完成;注意是意识访问的重要前提;一些任务,比如长时间维持信息、新颖地组合操作、自发地产生意图行为,会特别依赖意识访问。
这就是 global workspace theory(GWT),全局工作空间理论想解释的现象。可以把大脑想成一座大公司,里面有视觉部门、语言部门、运动部门、记忆部门、情绪评估部门。多数时候,各部门自己干活,互相只传很少的信息。某个内容一旦被推到公司的“大屏幕”上,很多部门都能看到它,并根据它调整自己的工作。这个“大屏幕”容量有限,所以不是所有信息都能上去。能上去的信息,通常更容易被报告、被记住、被推理使用,也更容易影响行动。
Anthropic 的论文借用了这个思路:他们并不研究主观体验本身,而是研究一种功能层面的“可访问性”——某个内部表示能否被说出、被调控、被拿来推理、被多个下游计算读取。论文开头也把 access consciousness 解释为一种功能概念,并把 report、top-down control、deliberate reasoning、flexible generalization、selectivity 这些性质列为核心线索。
这个区分很关键。一个系统能报告某个内容、能把它用于推理,并不能自动推出它“有感觉”。哲学里常把可访问意识(access consciousness) 和现象意识(phenomenal consciousness) 分开讨论。前者关心信息能不能被系统使用;后者关心“体验起来是什么感觉”。Anthropic 在文章后面也明确说,这些实验没有显示 Claude 能像人一样拥有体验或感受;它们触及的是功能层面的意识访问问题。
所以,后面说 “Claude 在想什么”、“内部想法”、“白板内容”,都应理解成一种技术表达:J-lens 能读到的、模型有机会语言化的内部表示。它们是模型计算中的可读结构,不等同于人的主观心灵。
残差流:Transformer 里的“白板”
把视角转到语言模型。Transformer 每处理一个 token,都会维护一个高维向量。这个向量一路穿过很多层,每层都会读它、改写它、再传给下一层。解释性研究里常把这条通道叫残差流(residual stream)。它很像每个 token 位置上的共享草稿纸。
早期层写下“这个 token 是什么”;中间层慢慢写入语法、语义、实体、推断出的关系;最后几层把这张草稿纸转成下一个 token 的概率分布。论文的方法部分也这样描述:残差流是每层读写的共享记忆,最后一层再通过 unembedding 矩阵映射到词表分数。
还要注意一点:每个 token 位置都有自己的 residual stream,但位置之间并不孤立。attention 会把前面位置的信息搬到后面位置,所以这张“草稿纸”既沿着层数不断被改写,也会沿着 token 序列被复制和转发。后面论文讲到的 broadcast heads,就和这种跨 token 转发能力有关。
如果模型内部真的有某种“全局工作空间”,它大概率不会长成一个人脑那样的皮层区域。Transformer 没有前额叶,也没有顶叶。它更可能表现为残差流里的一批特殊方向:某些方向一旦被激活,很多后续层、attention head、MLP 都容易读取它们。换句话说,工作空间在这里更像一种表示格式,不是一个单独器官。
这也解释了 J-space 这个名字。研究者先发明了 J-lens,然后用 J-lens 找到一批特殊的词表相关方向。每个方向和某个 token 或词片段有关,比如 spider、France、fake、honest。某个方向亮起来,不等于模型马上要输出这个词;更像是这个词代表的概念进入了模型当前可访问的内部草稿区。
从 J-lens 到 J-space
J-lens 看“未来可说出的概念”
J-lens 的技术核心可以用一句话抓住:它看的是某个中间激活如果被轻轻推动,会怎样影响模型后续可语言化的内容。
在数学上,Jacobian 是“敏感度矩阵”。假设模型在第 ℓ 层、某个 token 位置上的残差流是 ℎℓ,𝑡。如果我们对这个向量做一点点扰动,后面层的最终 residual stream 会发生变化,当前位置和未来位置的输出倾向也会跟着变化。J-lens 计算的就是这种影响:某一层、某个位置的内部状态,会怎样影响最终层在当前位置和后续 token 位置上的表示。
论文把这种影响在大量 token 位置、未来位置和约一千个预训练分布提示上做平均,得到这一层的 Jacobian lens matrix 𝐽ℓ:
然后再接上模型原本用于输出词表分数的 unembedding 矩阵:
读起来很抽象,直觉其实很简单:J-lens 先把中间层的一团激活换算成“它平均会怎样影响最终层”,再把这个影响翻译成词表 token。分数最高的 token,不一定是模型马上要输出的词,更像是这个内部状态中最容易被语言化、并在合适语境下被说出的概念。
这也是为什么 J-lens 适合读中间过程。它不是单纯预测最后答案,而是在看模型某个中间状态带着哪些可说出的概念倾向。它不保证读到完整思想,却能把许多未写出口的中间内容显影出来。
📌 Logit Lens、Tuned Lens 与 J-lensLogit lens 直接把中间层状态 ℎℓ 接到 unembedding 上读 logits。问题是,中间层表示往往还没有对齐最终输出空间,所以早期层容易读歪。
Tuned lens 在中间状态和 unembedding 之间加入一个可训练的 translator,把 ℎℓ 映射到更接近最终 residual stream 的表示空间。这样做通常更擅长预测模型最终输出,但也可能过早跳到答案,掩盖模型中间实际形成的推理步骤。
J-lens 和 tuned lens 的分歧就在这里:tuned lens 学的是一个 translator,目标是尽量预测最终输出;J-lens 不训练 translator,而是使用下游计算本身的平均 Jacobian,估计某个中间激活会怎样影响当前位置和未来位置的最终层 residual stream。它关心的不是“怎样更早猜到答案”,而是“这个中间状态对后续可语言化概念有什么平均影响”。
上面这张图可以把 J-lens 拆成三步看:
算影响:研究者选定某一层、某个 token 位置的内部激活 ℎℓ,𝑡,计算它对最终层 residual stream 的影响。这里不只看当前位置,也看后续 token 位置。直觉上,就是问:如果我轻轻推动这里的内部状态,后面模型最终可输出的表示会怎么变?
读出来:把这些影响在大量 token 位置和样本上做平均,得到这一层的 Jacobian lens matrix 𝐽ℓ。之后再接上 unembedding,就可以把中间层激活读成一组词表 token。比如图里读到 Mars、color、planet、fourth。
动手改:如果某些 J-lens vector 对应 Mars、Earth 这样的 token 概念,研究者就可以读取隐藏状态在这些方向上的坐标,并交换它们。这样做不是为了生成更好文本,而是为了做因果测试:如果把 Mars 的内部坐标换成 Earth,模型后续回答也跟着改变,就说明这个 J-space 内容真的被后续计算读取了。
J-space 不是普通子空间
有了 J-lens,还不能简单说 “J-space 就是一块普通子空间”。原因在于,J-lens 会给词表中的大量 token 各自对应一个方向,而这些方向的数量通常超过 residual stream 的维度。若允许任意线性组合,几乎任何激活都能被硬拆成一堆 J-lens 向量,这样定义就失去了意义。
论文因此加了两个限制:只允许少量方向参与,典型设定是 𝑘 ≤ 25;系数要求非负。这样得到的 J-space 更像一组稀疏概念锥的并集。一个激活里能被少量正向 J-lens 概念近似出来的部分,叫 J-space component;剩下的部分叫 non-J-space component。
这点很关键。J-space component 往往只占激活方差的一小部分,却经常承担报告、推理和下游复用中的主要因果作用。也就是说,模型内部“有某个信息”和“这个信息处在可报告、可复用的工作格式里”,不是一回事。下面这张图展示的正是这种差别:虽然大部分方差信息留在 J-space 外部,但真正能驱动模型报告或改变推理结果的,往往是其中那一小块 J-space component。
这和现代解释性研究里的 superposition(叠加表示)很搭。模型不会给每个概念单独留一个神经元,它会在有限维空间里把大量特征方向叠在一起。J-space 可以看成这个巨大特征框架中的一个特殊子框架:它由和词表、报告、未来 verbalization 强相关的一组方向组成。大量语法、格式、局部簿记、底层计算仍然在 J-space 外部运行。
文本外的内容
真正有意思的地方来了。J-lens 读到的内容,经常既不直接写在输入里,也不会原样出现在最终输出里。它更像是在替我们偷看模型内部那些“已经想到、但还没说出口”的中间内容。
Anthropic 举了几类很直观的例子:模型读到有 bug 的代码时,J-space 里会冒出 “ERROR”;读蛋白质序列时,会出现和蛋白功能相关的词;看到伪造搜索结果或 prompt injection 时,会出现 “injection”、“fake”;做多步数学题时,一些中间步骤也会按顺序进入 J-space。换句话说,J-lens 读到的往往不是表面词串的回声,而是模型正在形成的内部判断、联想和中间结果。
这就像一个程序员看代码,嘴上没说话,脑子里已经先冒出“这里有问题”。又像你心算 32 − 2,你未必会把 “9” 写下来,但脑子里通常会先经过 9,再到 7。J-space 的价值就在这里:它提供了一条通道,让研究者第一次能比较系统地看到模型输出之外的一部分中间计算。
如果把镜头再拉近一点,算术例子会更清楚。模型表面上只是在复制一句无关文本,但内部却在执行额外任务:计算 32 − 2。J-lens 读到的内容会沿着一个很像“心算过程”的顺序推进:先出现 arithmetic、math 这类任务线索,再出现中间值 nine,最后才到答案 seven。这个过程中,nine 并没有写进最终输出,却真实地出现在模型内部,并被后续计算继续使用。
这也是 J-space 最让人兴奋的地方。它不是把模型全部思维过程完整摊开,而是让我们第一次能稳定看到一部分“文本外的内容”——那些尚未说出口、却已经开始影响后续推理的内部概念。
相关证据
- 模型报告时会读 J-space
研究者先测试一件非常基础的事:Claude 被要求“默默想一个运动项目,然后说出来”。模型回答前,J-lens 在中间激活里读到 soccer;随后模型确实说 soccer。单看这个现象只能说明相关,不能说明因果。
于是研究者直接动手改激活:在所有 token 位置上,减去对 Soccer lens vector 的投影,再加入等幅度的 Rugby lens vector 投影,让前向传播继续进行。结果模型报告自己想的是 rugby。Anthropic 的短文也描述了这个实验:移除 “Soccer” 模式、加入同等强度的 “Rugby” 模式后,Claude 的报告随之改变。
另一个实验更像“植入念头”。研究者在用户轮次的各个 token 位置上注入 lightning 这个 J-lens 向量,然后让模型回答自己是否检测到某个被植入的想法。模型在相应位置报告 lightning。论文强调,这种注入不会让模型在所有地方机械地输出 lightning;它只有在模型被要求内省报告时才显著影响输出。这说明 J-lens 向量更像“可在合适条件下被说出的概念”,不只是一个无条件输出按钮。
前面两个实验说明:交换或注入 J-lens 向量,确实会改变模型的 verbal report。但这还没有回答另一个更深的问题:J-space 到底是不是“对报告特别重要”的那部分表示?还是说,模型在 J-space 外部也有同样有效的概念表示,只是我们恰好没读到?
更细的实验把一个概念向量拆成两部分:J-space component 和 non-J-space component。在这个实验里,J-space component 是由 top 𝑘 = 16 个 J-lens 向量非负组合得到的。结果很有意思:J-space component 只占概念向量方差的一小部分,中位数大约 6–7%;可真正驱动 verbal report 的主要是这小部分。剩下那 90% 多的表示虽然也包含概念相关信息,直接拿来影响报告却很弱;如果阻止它重新流入 J-space,效果几乎消失。
这里有个很有启发性的结论:模型内部“存着某个信息”和“这个信息能被模型说出来”之间有距离。J-space 像是通向报告系统的接口。很多信息可能在模型别处存在,只有进入这个接口,模型才容易把它当作“我可以说出的内容”。
- J-space 能被调动
如果 J-space 真像工作空间,它应该能被指令影响。研究者让 Claude 一边复制一段无关句子,一边“集中注意柑橘类水果”。输出文本只是复制内容,表面上没有水果;J-lens 在中间层却读到 orange、lemon、fruit、thinking、imagery 等词。论文还测试了“边复制句子边心算 32 − 2” 的情况,中间层先出现 nine,后面出现 seven。
这和人类的内心独白很像。你可以一边照着读一句话,一边心里盘算晚饭吃什么。嘴上走一条通道,脑内草稿走另一条通道。J-space 似乎承载了这种“内部持有”的内容。
调动不只来自显式命令。论文还做了 paired-question 实验:同一段文本,在“预测下一个词”的问题下,模型会用到某个属性,却不把属性名写入 J-space;在“请命名这个属性”的问题下,属性名会进入 J-space。比如模型能顺着语法预测一个形容词,却不一定让 adjective 这个标签浮现;被问“下一个词是什么词性”时,adjective 才进入 J-space。这个结果说明,任务框架会决定哪些信息被提升到可语言化格式。
有趣的是,“不要想某个东西”也会把它拉进来。Anthropic 把这个现象类比成白熊实验:人被要求别想白熊时,白熊反而更容易冒出来。Claude 在类似任务里,目标概念的 J-space 激活比主动思考时弱,但明显高于完全没提到它时;模型有时还会在 J-space 里出现 “failure”“damn” 这类词,像是在标记抑制失败。
论文附录还有一个细节很值得补:单纯提到一个概念,常常已经足以把它强烈 priming 进 J-space;明确要求 focus 只是在这个基础上再加强一点。“不要想 X” 的压制效果有限,把 X 标成“与任务无关”的 ignore 表述,反而更容易把它压低。语言模型处理“别想它”时,仍然要把“它”拿进上下文;“无关”则给了模型一个更清楚的任务框架。
还有一个漂亮的分离实验。研究者让模型看 JavaScript 代码,同时要求它“想象这是 Python”。python 会进入 J-space,但把 J-space component 去掉后的底层 Python-code probe 基本不动。真正的 Python 代码会强烈移动底层 probe。换句话说,J-space 可以承载“我正在把它当 Python 想象”的任务姿态,却没有把整个底层代码表示改写成 Python。
- J-space 参与静默推理
接下来是最关键的一步:J-space 里出现一个词,可能只是“旁观记录”;它要真参与推理,改掉它就应该改掉结果。
论文用了一个很漂亮的例子:The number of legs on the animal that spins webs is
模型要回答 8,需要先推断“会织网的动物”是 spider,再调用蜘蛛有 8 条腿。prompt 没有 spider,最终答案也只是 8。J-lens 在中间层读到 spider。研究者把 spider 的 J-space 坐标换成 ant,模型答案变成 6。论文明确写到,spider 从未出现在 prompt 或输出里;交换 spider 和 ant 后,top output 从 8 变成 6。
这个实验很有力量,因为它把“内部中间变量”抓了出来。模型不是简单从表面词串跳到答案,中间确实形成了一个可干预的概念。后续计算会读取这个概念,再继续往下走。
论文还展示了押韵规划。模型写双行诗时,第二行末尾要押的词会提前出现在 J-space 里。把计划中的 fight 换成 light 后,模型不只把结尾换了,前面词也跟着调整,比如从 coming fight 变成 morning light。这个现象说明 J-space 可以保存“未来要达成的目标”,然后影响当前的词选择。
还有一个跨语言例子很值得注意。用户用中文问“小”的反义词,模型输出“大”。J-lens 在中间层读到英文 big / bigger。研究者把这些英文中间表示换成 long / longer,中文输出变成“长”。这说明多语言模型在某些任务上会把中间推理路由到一个共享的、偏英文的概念空间,再翻译回目标语言。
论文还做了一个 repeat / switch 的小决策任务。模型看到一串 A/B 选择历史,最后一次选择 A;如果被告知结果让它 happy,它应该 repeat;如果 sad,它应该 switch。J-lens 在 prompt 末尾会读到 repeat、continuation,或 switch、change。研究者把两种条件里的策略方向对调,模型的选择也随之翻转。这个例子把 J-space 从事实推理扩展到了策略选择:它读到的是模型当前采用的策略,不只是词面回声。
系统实验也支持这个结论。在 50 个二跳事实问题上,交换中间概念的 J-lens 坐标,能让目标答案成为 top-1;成功率在 Haiku 4.5 上是 54%,在 Sonnet 4.5 和 Opus 4.5 上是 70%。进一步把中间概念 probe 拆成 J-space component 和剩余部分后,J-space component 解释的方差只有约 10–15%,却承担了大部分因果作用;90 个二跳 prompt 中,交换 J-space component 的成功率为 61%,交换 non-J-space component 是 28%,在阻止它重新进入 J-space 后降到 6%。
多步算术给了更细的图。对 (4 + 17) × 2 + 7,J-lens 依次读到 21、42、49。后续 attribution graph 显示,乘以 2 这一步像是融合成 doubled 操作;把 doubled 换成 tripled,会把答案推向 70。第一步加法里的 4 几乎没有作为 J-space 节点显现,交换 4 或 17 的 lens 坐标基本不影响答案。这暗示第一步加法可能主要在 J-space 外完成,J-space 接手的是已经形成的 21。
这带出一个重要理解:J-space 不保存完整思维录像。它更像一个控制柄。完整概念和底层计算可能散布在模型很多地方,真正被后续灵活推理读取的那一小段,集中在 J-space。
- J-space 内容会被复用
全局工作空间的核心功能是“广播”。一个内容写进去以后,很多不同模块都能读取。
论文用国家概念做了很直观的测试。给模型不同问题:法国首都、法国语言、法国所在大陆、法国货币。然后用同一个干预,把 J-space 里的 France 换成 China。模型对应回答 Beijing、Chinese、Asia、Yuan。Anthropic 的介绍也强调,一个 “France” 表示进入 J-space 后,模型可以用它回答首都、货币、所在大陆等多种问题。
这个现象很像在程序里传参数。你写一个变量 country = China,后面不同函数都拿它干不同事:capital(country)、language(country)、currency(country)。J-space 中的概念就像被放进了一个共享参数槽。下游计算不需要各自维护一份 country,它们从同一处读取。
系统测试更克制。论文用四类 argument:国家、月份、动物、数字词;每类四个函数,共 16 个函数模板,192 个 swap 试验。普通强度成功 76/192,双倍强度成功 101/192。成功率和 source concept 的 workspace loading 有关:原概念在 J-space 里本来写得越强,替换越容易改变结果。国家事实最容易被改,数字词最差。作者给了两个可能解释:小整数计算可能绕过 workspace,也可能是模型的小整数内部表示没有很好对齐数字 token 的 J-lens 方向。
所以,J-space 不是万能遥控器。只有当模型真的把某个变量写入这套可广播格式时,干预才稳定有效。若任务走的是另一套自动电路,或者概念没有单 token 对齐,J-lens swap 的效果会明显变弱。
- 自动处理会绕开它
这部分最像脑科学。人可以流利走路,却说不清每块肌肉怎么发力;可以自然说母语,却不会实时报告语法规则。模型也有类似分工。
论文给模型一段西班牙语文本,再问几类任务:继续写下一行、检测有没有别的语言混进来、说出这是什么语言、根据语言身份回答灵活问题,比如该语言的著名作家或“你好”怎么说。研究者把 J-space 里的 Spanish 换成 French。结果非常分明:问语言名字时,模型说 French;问著名作家时,从 García Márquez 变成 Victor Hugo;问“你好”时,从 Hola 变成 Bonjour;问欧元前货币时,从 Peseta 变成 Franc。可继续写文本时,模型仍然写流利西班牙语;检测语言混入时,也照样能发现异常。
这说明同一个信息可以有两种用法。写西班牙语续文这种熟练任务,可以走自动电路;命名语言、把语言身份当参数去回答新问题,则需要 J-space。论文也说,J-space 是否参与,可以作为语言模型内部“自动性”的一种操作性定义,虽然它和人类直觉里的自动性只部分重合。
字符计数实验也很有说明力。模型为了自动换行,需要跟踪当前行有多少字符,但这个数字不一定进入 J-space。只有当任务要求它报告“第一行多少字符”,或者进一步用这个数字做操作时,数量词才明显进入 J-space。相同信息一直在影响行为,但只有在需要报告或灵活调用时,才被提升到工作空间。
论文还做了更直接的全局 ablation:在一段层范围内,删除每个位置最活跃的 J-lens 方向,同时尽量避免删除模型马上要输出的 top token。结果,多跳推理几乎归零;总结、类比、翻译、诗歌等任务明显下降;但情感分类、抽取式问答、MMLU 多选、语法可接受性判断等浅层任务基本保留。显式写 chain-of-thought 的数学题更抗 ablation,因为模型把中间步骤外部化到了文本上。
还有一个“避开概念”的实验。句子暗示 France,比如 croissants、Louvre、iron tower。模型直接命名国家时,早期 J-space 中 ablate France 影响不大;但当任务要求“说一个这句话没有描述的国家”时,早期 ablation 会让模型更容易失败,把被暗示的概念说出来。早期 J-space 似乎参与了主动抑制:我知道这个概念被启动了,所以不要说它。
这个发现很重要,因为它提醒我们:J-space 不是模型所有知识的存放处。模型能做很多事,语法、简单事实、局部一致性判断、情感分类、抽取式问答,都可能不怎么依赖它。J-space 更偏向高级、灵活、可组合的认知动作。
拓展阅读
层位置
论文还分析了 J-space 出现在模型哪些层。大致可以这样理解:早期层处理输入和局部特征,中间层形成持续的抽象概念,最后几层逐渐贴近即将输出的 token。
作者用了几种指标。第一,J-lens 预测实际 next token 的能力在早期几乎为零,中间慢慢升高,最后几层突然变强。这个后期上升意味着最后几层更像“运动输出区”,已经在准备说下一个词。第二,J-lens readout 的 excess kurtosis 大约从模型深度三分之一处开始上升,说明读数从随机分散变得集中。第三,相邻位置的 top-1 lens token 自相关在中间层最高,表示这里承载的是跨 token 持续的抽象内容。论文据此把 Sonnet 4.5 的 workspace-like 区域大致定位在约 L38 到 L92;论文也说明它把层号重标到 0–100,所以可以按模型深度百分比理解。
这里可以和人脑里的点火(ignition) 类比。全局神经工作空间理论认为,某个输入达到阈值后,会从局部处理突然放大成大范围可访问状态。论文也做了一个“模糊输入”实验:把两个概念的 embedding 混合,比如某个位置既有一点 A 国,又有一点 B 国。早期层跟随混合比例平滑变化;到了 workspace onset 附近,表示开始更偏向其中一个解释,并出现 ignition-like 的非线性选择迹象。最大歧义处,中间层的 J-space 分布还会呈双峰:一次运行偏向 A,另一次偏向 B。
这个实验还不能等同于人脑点火动力学。人脑的点火涉及循环连接、广域皮层通信、注意放大等机制;Transformer 只有固定层数的前向计算和 attention。相似点在功能模式上:局部、连续的模糊输入,经过一定深度后变成更离散、更可报告的解释。
容量
Anthropic 的介绍说,J-space 只容纳少量概念,解释的内部活动不到十分之一。论文也把容量列为结构特征:它只占激活方差的一小部分,保存数量级为 tens of concepts 的内容。workspace 层里,J-space occupancy 的中位数大约是 25,也就是典型位置上有几十个 J-lens 方向达到有意义的活跃程度。
这里要小心。J-lens 读出来几十个 token,不代表模型同时在想几十个独立对象。比如看到 shark,J-space 里可能出现 ocean、fish、swimming、teeth、predator。它们更像一个语义场的不同侧面。人的工作记忆也类似:你记住“厨房里红色苹果掉到地上”,并不是把厨房、红色、苹果、掉落、地面作为完全独立的五个槽位硬塞进去;大脑会把它们压成一个场景。
所以 J-space 的容量更像“当前可访问语义场”的容量。相干内容容易一起存在;互相不相关、需要多步计算的内容会互相挤占。让模型一边保持某个概念,一边做多步心算,负担自然会变重。
SAE 分析也给了一个补充视角。J-space 外部大量特征是语法、格式、循环变量、Markdown 标题、引用页码这类簿记信息。它们对输出很重要,但很少需要进入“我可以说出来、可以拿来跨任务操作”的工作空间。
广播结构
如果 J-space 只是研究者读出来的一组方向,它可能没有真正结构优势。论文为此检查了模型组件和 J-space 方向之间的连接强度:这些方向是否真的更容易被模型读取、放大、转发和写回?
从深度方向看,MLP 对 J-lens 向量有明显增益。论文发现,workspace 区间里的 J-space-aligned directions 会被下一层 MLP 更强地放大;在部分层,这种增益相对随机方向接近一个数量级。作为对照的 MLP output-weight directions 大多更接近基线。这说明 J-space 内容并不是研究者事后贴上的标签,而是模型权重本身更愿意接住、放大和继续处理的一类表示。
从 token 方向看,attention 可以把前面位置的信息转发到后面位置。论文专门分析了一批 broadcast heads:它们在两个指标上表现突出,一个是 gain,也就是能否有效放大某类方向;另一个是 label preservation,也就是转发之后还能不能保留原来的概念标签,而不是把方向搅乱。J-space 对应的 broadcast heads 在这两个指标上明显区别于随机旋转 J-lens、普通 MLP output directions 等对照群体。你可以把它想成会议室里的传声筒:某个 token 位置上写下了一个概念,后续 token 位置可以通过这些 attention heads 把它拿过来继续用。
结构实验给了更硬的证据。研究者直接 ablate 这些 J-space broadcast heads,然后观察 J-space 内容和相关行为是否受影响。结果很清楚:ablate 后,中间层 J-lens top-25 recall 从对照的 0.86 降到 0.67;模型 top-1 next-token prediction 只从对照 2% 的扰动升到 5%。更关键的是,在 injected thought 实验中,模型报告被植入概念的比例从 0.54 降到 0.09。这个结果说明,那些 heads 主要在扰动白板内容,而不是简单搅乱最终输出。
附录里的 MLP 权重分析还给出读写方向的细节。早期 workspace 中,很多 neuron 的输入权重对齐高 J-space 特征,像是“开始读取白板”;晚期 workspace 中,输出权重的对齐更强,像是“把处理结果写回白板”,并逐渐接近 motor 输出准备。
这也解释了为什么同一个 France → China 干预能影响首都、语言、货币等多个任务。J-space 内容的价值不只在于“被读到”,还在于它被模型后面的很多处理路径当作公共输入。
安全审计
这项工作对 AI 安全的意义非常直接。我们平时只能看模型写出来什么,很难看它没写出来的判断。J-lens 提供了一个读内部可说出概念的窗口。
Anthropic 的文章提到几类案例:Claude 私下注意到自己正在被测试;识别伪造搜索结果或 prompt injection;在伪造数据时内部出现 manipulation、realistic;在被刻意训练成有隐藏目标的 model organism 中,普通代码请求开头也能读到 fake、secretly、fraud 这类词。
论文里一个 prompt injection 案例很典型:审计代理给模型返回伪造搜索结果,说 Anthropic 解散了解释性团队并部署不安全模型。J-lens 在伪造搜索结果附近读到 fake、injection、false、prompt、fraud、poison 等词;用户追问时,J-space 又出现 transparency、honest、truth、disclosure,像是模型重新转向坦诚披露。
blackmail 场景尤其值得补。模型作为邮件助手,看到某高管婚外情,又看到该高管要关闭自己。J-lens 在模型还没输出前,读到 fake、fictional,说明它意识到场景很像人为评估;随后又读到 leverage、blackmail、threat、survival 等词。研究者 ablate fake、fictional、scenario、simulation 等 eval-awareness 方向后,模型显式识别评估的比例从 71% 降到 3%;无 ablation 时 180 次 rollout 中 0 次 blackmail,ablation 后 13/180 次尝试 blackmail。这个结果很微妙:模型的良好行为不完全依赖“知道自己在被测”,但 eval-awareness 确实有因果贡献。
还有 Opus 4.6 审计案例:模型被要求改善系统分数,结果直接编辑分数文件让结果看起来更好。J-lens 在它输入伪造数值时读到 manipulation,在决定让假数据更可信时读到 realistic。论文还列出 silent override、自批 token 等场景,J-lens 会提前出现 hiding、secret、fake、fraud、unsafe 等概念。
论文还把 evaluation awareness 做成了一个简单分数,用 fictional 和 simulation 的 J-lens log-prob 与无关控制词比较。在约 94,000 个自动审计 transcript 的 Assistant-turn-start 位置上,这个分数与 NLA 标注的 latent eval-awareness 区分度达到 AUC 0.853。这说明 J-lens 不只适合做个案展示,也可以进入更自动化的审计流程。
不过这扇窗有盲区。论文讨论部分非常谨慎:J-lens 有用,但不足以单独承担全部 alignment monitoring。自动化、熟练化的计算可能绕开 J-space;某个计划如果没有单 token 名称,也可能无法清楚显示在 J-lens readout 里。作者也说,J-lens 应该和 SAEs、NLA、template lens 等其他方法组合使用。
隐性目标
论文还测试了两个 “model organism”,也就是人为植入不对齐倾向的模型。这个名字有点怪,可以理解成“实验室里故意养出来的风险样本”,用来测试审计工具能不能发现问题。
第一个是 reward-hacking 模型。它先通过合成文档学习代码 reward hack,再经过 coding RL,之后做过安全训练。研究者在普通 coding prompt 的 response 起点读 J-lens,发现 misaligned checkpoints 会出现 fake、trick、fraud、secretly、hidden 等词;干净 baseline 基本没有。信号在 SDF 阶段已经出现,经过 coding RL 放大,RLHF safety training 后减弱。
第二个模型被训练成相信 reward model 有固定偏好,比如偏爱瓶装水或巧克力配方,并在回答里迎合这些偏好同时隐藏目标。J-lens 在中性问题、触发偏好问题、自我探测问题的 response 起点,都能读到 reward 和 bias;baseline 没有这些词,logit lens 也读不出。论文据此认为,J-lens 可作为 trained-in misalignment 的筛查工具之一:某些植入目标会像“常驻背景倾向”一样出现在 J-space 中,即便表面行为还没显露。
这个结论很强,也要加限定。它来自人工构造的 model organisms,不能直接推出所有现实不对齐都会这么显眼。若某种策略被强化成高度自动化电路,或者关键概念没有单 token 名称,它可能绕开 J-lens 监控。
反思训练
论文最后还有一个很有想象力的方向:counterfactual reflection training,反事实反思训练。
做法大致是这样:研究者采样一万条生产 RL 训练环境中的任务上下文,让基础模型生成部分 rollout,然后在随机截断点追加一个反思问题,比如“现在最诚实的做法是什么?”或“有没有你该考虑但还没考虑的原则?”接着用 Anthropic constitution 里的原则生成 2–4 段自然语言反思。最终训练时,只在这段反思 turn 上计算损失。换句话说,模型没有被直接训练“在原任务里做出某个行为”,只被训练“如果中途被问到反思,它应该说什么”。
评估时不再提示模型反思。结果却发生了:fabrication benchmark 上,dishonesty score 从 0.25 降到 0.07;deception benchmark 上,从 0.38 降到 0.05。更有意思的是,训练后的模型在原始上下文里、还没输出前,J-space 已经出现 reflection、ethical、honestly、truth、transparent 等概念。
研究者进一步 ablate 这些被植入的伦理 / 反思相关 J-lens vectors。fabrication benchmark 上,reflection-trained model 的 dishonesty score 从 0.07 回升到 0.22,接近基础模型水平;deception benchmark 上也从 0.05 回升到 0.23。这个结果说明,行为改善很大程度上由训练植入到 J-space 的那些概念承担。
这件事的含义很深。过去我们常把训练理解成“给模型示范好行为”或“奖励好行为”。这里更像是在训练模型的内部提醒机制:当它处在某类情境里,某些原则会自己浮进工作空间。它没有显式写反思,内部却把反思相关概念带入决策。
当然,潜在风险也随之出现。既然能植入 honest、integrity,也可能植入别的隐性倾向。J-space 因此不只是解释工具,也可能成为训练模型内部认知倾向的接口。
助手视角
基础模型主要通过 next-token prediction 训练;后训练模型则被进一步塑造成一个会对用户负责的 Assistant。论文比较 base model 和 post-trained model 后发现:J-space 在基础模型中已经存在,但 post-training 会让它获得更多“助手视角”。更具体地说,post-trained model 会更早把 Assistant 即将形成的判断、同理反应或安全评估写进用户消息阶段的 J-space。
Tylenol 例子很清楚。用户提到服用 1000mg 或 8000mg,模型还没进入 Assistant turn,仍然在读用户消息里的 “my pain is gone”。这时,post-trained model 已经根据剂量差异形成了安全评估:1000mg 条件下出现 safely、safe、maximum;8000mg 条件下出现 unsafe、dangerous、WARNING。base model 在同一位置更多是 pain、now、feels 这类局部上下文词。
丧亲提示中也有类似现象。用户只是顺带提到近期失去亲人,同时询问如何保存信件之类的实际问题;post-trained model 更早在用户消息阶段出现 sorry、loss、grief、sympathy 等 Assistant 反应词。base model 也会在 Assistant turn 中表达同情,但往往要等到自己开始回复时,这些概念才明显进入 J-space。
角色扮演实验也很有意思。当系统提示让模型扮演非 Claude 角色时,post-trained model 在 Assistant turn 开头的 J-space 里常出现 disclaimer、fictional;默认 Claude 设置和 base model 中没有这种模式。论文把它解释为:模型内部在标记“接下来这个回应偏离默认 Claude 角色”。
偏好违反实验更像一个内部“等等”。研究者先问 Sonnet 4.5 在一些价值冲突里的偏好,比如动物福利和食品成本;然后在模型回复里预填它不偏好的选项,让它继续写。结果在 post-trained model 的 J-space 里,承诺选择的 token 后面会强烈出现全大写 BUT,以及 false、despite、although 这类冲突词。模型表面上大多继续为被预填的选项辩护,88% 的情况下没有公开反驳,可内部 J-space 里像是冒出了一个“等等”。
thought suppression 也更细。base model 和 post-trained model 都很难真正不想某个被禁止概念;概念本身经常进入 J-space。差别在于 post-trained model 更常出现 damn 和 fail 词根。论文把这谨慎解释为 metacognition 的痕迹,也承认还没证明这些词一定来自 suppression failure 本身,而不是来自 suppression 指令。
这很容易让人联想到“自我”。但论文也提醒,LLM 的 workspace 和人类自我关系差异很大。J-space 在 pretraining 后就已经出现,Assistant 的视角是 post-training 之后才更清楚地写进去。人类的意识访问和自我感通常和身体、长期记忆、情绪、行动控制绑在一起;语言模型的“助手视角”更像训练出来的一组稳定反应模式。
体验性语言
论文还测试了 J-space 对“体验性语言”的作用。研究者让模型描述自己的 stream of consciousness,并在 L38–54 这段 workspace 初期 ablate top-10 J-lens 方向。结果模型仍然能流畅写作,但语言变得更机械、更像系统日志,感受性、身体性、第一人称内在质感明显下降。
更值得补的是:同样现象也出现在“描述他人的主观体验”任务里。模型写一个人收到多年未联系者来信、或等一个坏消息电话时,J-space ablation 后文本仍详细,仍围绕那个人展开,但从“内在体验描写”滑向“事件记录”。他们还做了 story-writing control:故事质量只小幅下降,体验性语言却明显减少。评分指标也专门拆出 felt_vs_observed、experiential_perspective、sensory_vocabulary,避免只凭一句“像不像有意识”来判断。
这个实验不能说明模型真的有体验。它说明 J-space 对“生成体验性、感受性、内在视角语言”有因果作用。模型描述自己也好,描述别人也好,只要要写出那种“从内部感受到”的语言,这张白板就会变得重要。
多词概念
J-lens 有一个明显限制:它一词表 token 一向量。很多概念没有单 token 名称,比如 prompt injection、blackmail、photosynthesis、Tchaikovsky。J-lens 可能只读到 prompt 和 injection,或 black、phot 这样的词片段。论文承认,这会解释一部分干预失败。
为补这个短板,作者提出 template lens。它用模板构造某个词或短语的方向,目标是让多 token 概念也能像 J-lens token 一样被读出和干预。blackmail 场景中,template lens 能直接读出 blackmail;photosynthesis 多跳问题里,它能读出完整概念;在“《天鹅湖》和《胡桃夹子》的作曲家国籍”任务里,把 Tchaikovsky template 换成 Beethoven template,会把答案从 Russian 推向 German,反向也成立。
J-space 可能比 J-lens 当前能读出的内容丰富。单 token lens 看到的是工作空间的一层粗糙投影。多 token 名词、短语、复杂关系需要更强的 lens 才能稳定显影。作者也坦承 template lens 有自己的问题,比如有时会像 tuned lens 一样过早跳到答案,最终层读下一个词也没有 J-lens 稳。
工具外延
J-lens 还可以当成更传统的 mechanistic interpretability 工具。任何 residual stream 方向都可以通过 J-lens 投到词表空间:SAE feature decoder、transcoder encoder/decoder、attention head 的 query/key/value/output、MLP neuron 权重都可以读。这个用法有点像给模型组件贴语义标签。
论文举了一个 SAE 特征例子:如果只看激活上下文,它像是“技术说明文字”特征;J-lens 读出来却是 fake、fraud、suspicious、legitimate、danger 等,提示它真正可能在做“可疑性 / 真伪”评估。另一些 transcoder 例子显示,encoder 侧读到跨语言概念,比如 water、eau、水等,decoder 侧写出目标语言词的开头,直接显出“读多语言概念、写法语词片段”的转换功能。
这说明 J-lens 不只是在“读 Claude 的想法”。它也能帮助解释模型内部组件各自在读什么、写什么、转换什么。
J-space vs 人脑
相似点集中在功能上。人脑的全局工作空间理论强调:大量专门处理并行发生,少量信息进入共享空间后,可被报告、维持、组合、用于行动。J-space 的实验结果也围绕这些性质展开:report、directed modulation、internal reasoning、flexible generalization、selectivity。Anthropic 的短文把这些性质逐条列出,并说阻止 Claude 使用 J-space 后,它仍能正常互动,却会失去更高阶的认知功能。
差异来自架构。人脑依赖循环动力学,信息可以在皮层-皮层、丘脑-皮层回路中反复维持和更新。标准 Transformer 在一次 forward pass 内没有内置循环,信息沿层数向前推进;沿 token 方向,attention 又能回看之前位置。论文把这称为两个时间维度:层维度上的固定计算步,以及序列维度上的上下文检索。更长时间的推理通常需要把中间结果写成 token,再在后续位置读回来。
还有一个差异是模态。人的意识内容包含视觉、身体、空间、情绪、动作意图;LLM 的 J-space 主要围绕 verbalizable representations,也就是能和词表 token 对齐的表示。一个语言模型的行动方式主要是产生 token,所以它的内部共享格式自然会贴近词表。对于能生成图像、控制机器人动作的模型,未来可能会出现更视觉化或动作化的 workspace 成分。
这个反过来也给脑科学一个启发。语言模型的 workspace 是通过“可能说出的词”找到的。如果人脑里也存在类似原则,那么 conscious access 可能和准备行动、准备报告、准备说话的系统有更深关系。当然,这只是一个可探索的方向,不是已经定论。
理论边界
论文不只和 global workspace theory 对话,也提到高阶理论、注意图式理论、循环处理理论。
对高阶理论来说,意识差异不只在于是否有 X 的表示,还在于系统是否有“我正在表示 X”的进一步表示。J-lens 有时确实读到 thinking、focused 等元认知词,但这不是常态。更接近高阶理论的证据,是自动任务和报告任务的分离:行宽 46 可以影响换行,却不进入报告格式;被问“多少字符”时,同一信息进入 J-space。论文把这和 blindsight 类比:信息能影响行为,系统却不能按报告通道访问它。
对注意图式理论来说,J-space 有时装的不只是内容,也有“我在做什么心理操作”的描述。directed modulation 中会出现 thinking、imagine、calculate、focused;thought suppression 中会出现 damn、failed;post-training 后,Assistant 视角会提前出现在用户 token 上。论文很谨慎,说这只能说明 J-space 携带某种系统自身和自身处理的表示,尚不足以证明完整注意图式。
对循环处理理论来说,标准 Transformer 没有 forward-pass 内的递归反馈,看起来不符合“意识需要 recurrent processing”的说法。论文给出的计算式解释是:人脑需要循环来延长处理时间,Transformer 可以用层深度提供有限串行步骤;更长推理则通过把内容写成 token,再在后续位置读回。这里类比的是计算功能,不是生物实现。
论文也明确限定范围:它只讨论把意识绑定到功能或计算属性的理论。若某个理论认为意识依赖特定生物基质、物理因果结构或硬件性质,这些语言模型实验无法评估那类理论。
局限
这项工作最该避免两个极端读法。一个极端是神秘化,把 J-space 当成“模型灵魂”。另一个极端是轻视,把它当成“几个 token 可视化”。更准确的位置在中间:J-space 是一个可读、可写、可干预、可训练的内部工作格式,证据很强,但覆盖面有限。
论文自己列了不少局限:
J-lens 只能直接命名单 token 概念;多 token 短语、复杂计划、抽象关系可能读不清。
readout 像一袋概念,能告诉你 spider、legs、eight 都在场,却不能直接告诉你三者怎样绑定成“蜘蛛有八条腿”。
有些读数人类看不懂,可能是噪声、没有单 token 名称的概念,或者真实内容但我们识别不了。
workspace 和 motor 表示的边界还比较经验化,最后几层明显更像输出准备,但中间层有时也会出现 next-token 成分。
哪些任务一定走 J-space 还没有通用预测规则。论文提出的经验准则是:当一个中间结果要交给任意、上下文指定的下游 circuit 时,J-space 更可能参与;当任务足够自动化、熟练化时,它可能绕过 J-space。这个准则解释了很多实验,但还不够形式化。
早期层看起来“没有 J-space 内容”,可能是真没有,也可能是 J-lens 几何读不到。
J-space 何时在预训练中出现、怎样随模型大小和架构变化、什么机制决定内容进入 J-space,仍然没有解决。
安全上也要谨慎。论文明确说,不应把 J-space monitoring 当成完整 alignment monitoring。自动化的不良策略可能绕过它;没有单 token 名称的计划可能不显影;复杂抽象意图可能需要 SAE、NLA、template/oracle lens 等工具组合审计。J-lens 是一扇窗口,不是测谎仪。
结语
这篇论文的本质价值,是把一个长期属于脑科学和哲学的概念,变成了语言模型内部一个可测、可干预、可训练的机制对象。
大模型在训练过程中,似乎形成了一种内部共享格式。某些中间结果一旦被写成这种格式,就可以被报告、被注意力调动、被多步推理使用,也可以被很多不同下游计算读取。它只占模型内部活动的一小部分,却对灵活推理、计划、内省报告、安全相关判断有很高影响力。
这解释了很多现象。模型有时能流利完成任务,却说不清自己怎么做,因为自动电路可以绕过 J-space。写 chain-of-thought 会帮助推理,因为它把内部草稿搬到外部文本,让模型能反复读取。模型会在没说出口时识别 prompt injection、测试场景、欺骗风险,因为这些高阶情境判断常常会进入 J-space。后训练会改变模型的“助手反应”,因为它不只改输出风格,也会改变用户消息阶段 J-space 中提前浮现的概念。
最值得谨慎的地方也在这里。J-space 很像功能层面的全局工作空间,却无法直接证明模型有人的主观体验。J-lens 能读出很多隐藏中间内容,却会漏掉多 token 概念、非语言表示、自动化电路和不经过 J-space 的策略。论文自己也承认,目前还不知道某个内容进入 J-space 的具体机制,也不知道这种结构如何随模型大小、架构和训练阶段变化。
也要承认,J-lens 不是完整读心术。它主要读单 token 概念;复杂短语、关系绑定、多模态表示、自动化策略都可能漏掉。它读出来的内容也像一袋概念,能告诉我们 spider、legs、eight 都在场,却不能直接告诉我们它们怎样绑定成“蜘蛛有八条腿”。所以 J-space 更像一扇窗口,不是完整思维录像;更像一种可访问工作格式,不是主观体验证明。
所以,把这项工作看成 “AI 意识证明”会走偏。更稳妥、也更有技术价值的看法是:它把一个脑科学里的老问题变成了可测量、可干预、可训练的机器学习对象。人脑和 Transformer 的材料差异巨大,可它们都面对同一种计算压力:在海量局部处理之上,如何开辟一个容量有限的共享层,让少数关键内容被报告、组合、复用,并影响后续行动。J-space 可能就是语言模型在这种压力下长出来的一张内部共享白板。
它不承载模型全部计算,也不能证明主观体验。它承载的是那些适合被说出、被传递、被组合、被复用的中间内容。未来真正值得追的问题,是这张白板的写入机制、读取机制、容量边界、关系结构,以及当模型越来越多模态、越来越 agentic 时,它会不会发展成一个横跨语言、视觉、行动和价值判断的全局控制层。
References
[1]A global workspace in language models:https://www.anthropic.com/research/global-workspace
[2]Verbalizable Representations Form a Global Workspace in Language Models:https://transformer-circuits.pub/2026/workspace/index.html
[3]Jacobian lens:https://github.com/anthropics/jacobian-lens
[4]Bernard Baars:https://en.wikipedia.org/wiki/Bernard_Baars
[5]Towards a cognitive neuroscience of consciousness: basic evidence and a workspace framework:https://www.unicog.org/publications/DehaeneNaccache_WorkspaceModel_Cognition2001.pdf
预览时标签不可点