【论文笔记】Transcoders Find Interpretable LLM Feature Circuits

news2025/6/4 18:51:34

Abstract

机制可解释性(mechanistic interpretability)的核心目标是路径分析(circuit analysis):在模型中找出与特定行为或能力对应的稀疏子图。
然而,MLP 子层使得在基于 Transformer 的语言模型中进行细粒度的路径分析变得困难。具体而言,可解释特征(例如通过稀疏自动编码器 SAEs 得到的特征)通常是非常多神经元的线性组合,而每个神经元又带有各自的非线性激活函数。在这种情况下进行路径分析,要么会导致路径规模过于庞大而难以处理,要么无法有效区分局部行为和整体行为。
为了解决这一问题,本文探索了transcoders,旨在使用更宽、激活稀疏的 MLP 层来忠实地近似原本激活密集的 MLP 层。本文提出利用transcoder在MLP子层中进行基于权重的路径分析。由此得到的路径结构可以清晰地分解为依赖输入的部分和与输入无关的部分。
github repo

1 Introduction

LLMs的内部机制本身不透明,机制可解释性(mechanistic interpretability)致力于理解这些机制,其核心在于将模型分解为路径(circuit):即对模型特定行为负责的可解释的子计算过程。

细粒度路径分析(circuit analysis)中的一个核心问题是如何纳入MLP子层。
直接分析 MLP 神经元会面临“多义性”问题:即神经元倾向于对许多不相关的概念产生激活。
以前工作中:

  1. SAE提取的特征往往具有可解释性,但这些向量通常是大量神经元的稠密线性组合。要在机制上理解一个SAE特征(位于一个或多个 MLP 层之前)如何影响后续的 SAE 特征,可能需要考虑数量难以承受的神经元及其非线性变换。
  2. 采用因果干预与基于梯度的近似方法来分析 MLP 层,这些方法缺乏输入不变性:特征之间的连接只能在某一特定输入下描述,无法推广到整个模型层面。尝试通过在多个输入上取平均来解决这一问题,反而会丧失提供输入依赖信息的能力,无法说明某一连接在单个输入上的重要性。

本文提出transcoder解决上述问题:它是一种对模型原始 MLP 子层进行宽且稀疏激活的近似方法。
具体而言,MLP transcoder 是一种具有一个隐藏层的宽 ReLU MLP,逼近原始较窄MLP子层的输出,同时在神经元激活上施加 L1 正则化,以鼓励稀疏激活。
主要动机是通过 MLP 子层实现输入不变的特征级路径分析,从而理解并解释涉及 MLP 子层的路径的一般行为。

2 Transformers preliminaries

首先,模型将输入的 token(及其位置)映射为嵌入向量 x mid ( 0 , t ) ∈ R d model x_\text{mid}^{(0,t)}\in\mathbb{R}^{d_\text{model}} xmid(0,t)Rdmodel,其中 t t t为token编号, d model d_\text{model} dmodel是模型维度。模型应用一系列layers,将上一个block的隐藏层信息映射到新的隐藏层,可以表示为:
x mid ( l , t ) = x pre ( l , t ) + ∑ head  h attn ( l , h ) ( x pre ( l , t ) ; x pre ( l , 1 : t ) ) (1) x_\text{mid}^{(l,t)}=x_\text{pre}^{(l,t)}+\sum_{\text{head}\ h} \text{attn}^{(l,h)}(x_\text{pre}^{(l,t)};x_\text{pre}^{(l,1:t)})\tag{1} xmid(l,t)=xpre(l,t)+head hattn(l,h)(xpre(l,t);xpre(l,1:t))(1)
x pre ( l + 1 , t ) = x mid ( l , t ) + MLP ( l ) ( x mid ( l , t ) ) (2) x_\text{pre}^{(l+1,t)}=x_\text{mid}^{(l,t)}+\text{MLP}^{(l)}(x_\text{mid}^{(l,t)})\tag{2} xpre(l+1,t)=xmid(l,t)+MLP(l)(xmid(l,t))(2)
其中 l l l是layer的编号, t t t是token的编号, attn ( l , h ) ( x pre ( l , t ) \text{attn}^{(l,h)}(x_\text{pre}^{(l,t)} attn(l,h)(xpre(l,t)是注意力头 h h h在第 l l l个layer下,给定起始token x pre ( l , 1 : t ) x_\text{pre}^{(l,1:t)} xpre(l,1:t)和目标token x pre ( l , t ) x_\text{pre}^{(l,t)} xpre(l,t)后得到的输出。 MLP ( l ) ( x mid ( l , t ) ) \text{MLP}^{(l)}(x_\text{mid}^{(l,t)}) MLP(l)(xmid(l,t))表示第 l l l个layer的MLP的输出。
Eq.1 展示了注意力子层如何更新位置为 t t t的 token 的隐藏状态,Eq.2展示了 MLP 子层如何更新隐藏状态。
重要的是,每个子层的输出都会加到当前的隐藏状态上。因此,隐藏状态始终可以被加性地分解为所有先前子层输出的总和。因此将每个 token 的隐藏状态称为其残差流(residual stream),每个子层都会对该残差流进行“读取”和“写入”操作。

3 Transcoders

3.1 Architecture and training

Transcoder旨在学习一个 MLP 子层的“稀疏化”近似:它们将 MLP 子层的输出近似为特征向量的稀疏线性组合。形式上,transcoder 的架构可以表示为:
z TC ( x ) = ReLU ( W enc x + b enc ) (3) z_\text{TC}(x)=\text{ReLU}(W_\text{enc}x+b_\text{enc})\tag{3} zTC(x)=ReLU(Wencx+benc)(3)
TC ( x ) = W dec z TC ( x ) + b dec (4) \text{TC}(x)=W_\text{dec}z_\text{TC}(x)+b_\text{dec}\tag{4} TC(x)=WdeczTC(x)+bdec(4)
其中 x x x是MLP子层的输入, W enc ∈ R d features × d model W_\text{enc}\in\mathbb{R}^{d_\text{features}\times d_\text{model}} WencRdfeatures×dmodel W dec ∈ R d model × d features W_\text{dec}\in\mathbb{R}^{d_\text{model}\times d_\text{features}} WdecRdmodel×dfeatures b enc ∈ R d features b_\text{enc}\in\mathbb{R}^{d_\text{features}} bencRdfeatures b dec ∈ R d model b_\text{dec}\in\mathbb{R}^{d_\text{model}} bdecRdmodel d features d_\text{features} dfeatures是transcoder中的特征向量数量, d model d_\text{model} dmodel是MLP输入激活的维度。通常 d features d_\text{features} dfeatures远大于 d model d_\text{model} dmodel

Transcoder中的每个特征由两个向量组成: W enc W_\text{enc} Wenc的第 i i i行是特征 i i i的编码特征向量, W dec W_\text{dec} Wdec的第 i i i列是特征 i i i的解码特征向量。 z TC ( x ) i z_\text{TC}(x)_i zTC(x)i被称作特征 i i i的激活值。
直观地说,对于每个特征,编码器向量用于确定该特征应激活的程度;解码器向量随后按该激活程度进行缩放,所有解码器向量的加权和就是 transcoder 的输出。
本文中, f enc ( l , i ) f_\text{enc}^{(l,i)} fenc(l,i) f dec ( l , i ) f_\text{dec}^{(l,i)} fdec(l,i)被用于表示transcoder中第 l l l个layer的第 i i i个编码特征向量和解码特征向量。

由于希望 transcoder 学会用特征向量的稀疏线性组合来近似 MLP 子层的计算,因此对 transcoder 的训练采用如下损失函数,其中 λ 1 \lambda_1 λ1是一个超参数,用于在稀疏性与逼真性之间进行权衡:
L TC ( x ) = ∥ MLP ( x ) − TC ( x ) ∥ 2 2 ⏟ faithfulness loss + λ 1 ∥ z TC ( x ) ∥ 1 ⏟ sparsity penalty (5) \mathcal{L}_\text{TC}(x)=\underbrace{\|\text{MLP}(x)-\text{TC}(x)\|_2^2}_{\text{faithfulness loss}}+\underbrace{\lambda_1\|z_\text{TC}(x)\|_1}_{\text{sparsity penalty}}\tag{5} LTC(x)=faithfulness loss MLP(x)TC(x)22+sparsity penalty λ1zTC(x)1(5)

3.2 Circuit analysis with transcoders

本文在此提出一种利用 transcoder 进行特征级路径分析的新方法,该方法能够以可扩展且可解释的方式识别不同层中的 transcoder 特征是如何连接起来以完成特定任务的。重要的是,这种方法能够揭示 MLP 子层的一般输入输出行为,这是基于 SAE 的方法所无法实现的。

路径分析的主要目标是识别模型计算图中的一个子图,该子图对模型在特定任务中的(大部分)行为负责,这需要一种方法来评估该计算子图对任务的重要性。为了确定哪些边应包含在该子图中,我们必须计算每条边的归因:即前一个节点对后一个节点自身贡献的影响程度。因此,使用 SAE 进行电路分析就意味着要通过 MLP 计算 pre-MLP SAE 特征对 post-MLP SAE 特征的归因。

3.2.1 Attribution between transcoder feature pairs

首先展示如何计算一对transcoder特征之间的归因。这种归因由两个部分的乘积构成:前一特征的激活值(依赖模型输入)以及前一特征的解码器向量与后一特征的编码器向量的点积(无关模型输入)。

z TC ( l , i ) ( x mid ( l , t ) ) z_\text{TC}^{(l,i)}(x_\text{mid}^{(l,t)}) zTC(l,i)(xmid(l,t))代表第 l l l层transcoder中第 i i i个特征在第 t t t个 token 上的标量激活值,它是该层第 t t t个 token 的 MLP 输入 x mid ( l , t ) x^{(l,t)}_{\text{mid}} xmid(l,t)的函数。对于layer l < l ′ l<l' l<l,token t t t 上,第 l l l个transcoder中第 i i i个特征对第 l ′ l' l个transcoder中第 l ′ l' l个特征的贡献可以表示为:
z TC ( l , i ) ( x mid ( l , t ) ) ⏟ input-dependent ( f dec ( l , i ) ⋅ f enc ( l ′ , i ′ ) ) ⏟ input-invariant (7) \underbrace{z_\text{TC}^{(l,i)}(x_\text{mid}^{(l,t)})}_{\text{input-dependent}}\underbrace{(f_\text{dec}^{(l,i)}\cdot f_\text{enc}^{(l',i')})}_{\text{input-invariant}}\tag{7} input-dependent zTC(l,i)(xmid(l,t))input-invariant (fdec(l,i)fenc(l,i))(7)
Derivation
需要搞清楚在token t t t上是什么导致layer l ′ l' l的transcoder的特征 i ′ i' i被激活。这个特征的激活可以写作:
ReLU ( f enc ( l ′ , i ′ ) ⋅ x mid ( l ′ , t ) + b enc ( l ′ , i ′ ) ) \text{ReLU}(f_\text{enc}^{(l',i')}\cdot x_\text{mid}^{(l',t)}+b_\text{enc}^{(l',i')}) ReLU(fenc(l,i)xmid(l,t)+benc(l,i))
其中 f enc ( l ′ , i ′ ) f_\text{enc}^{(l',i')} fenc(l,i)是layer l ′ l' l transcoder中 W enc W_\text{enc} Wenc的第 i i i行, b enc ( l ′ , i ′ ) b_\text{enc}^{(l',i')} benc(l,i)是layer l ′ l' l transcoder上特征 i ′ i' i的已学习的编码偏差(encoder bias)。无视常值偏差项 b enc ( l ′ , i ′ ) b_\text{enc}^{(l',i')} benc(l,i),假设这个特征被激活(可以无视ReLU),于是特征 i ′ i' i能否被激活完全取决于 f enc ( l ′ , i ′ ) ⋅ x mid ( l ′ , t ) f_\text{enc}^{(l',i')}\cdot x_\text{mid}^{(l',t)} fenc(l,i)xmid(l,t)
由于Transformer中存在残差连接, x mid ( l ′ , t ′ ) x_\text{mid}^{(l',t')} xmid(l,t)可以被分解为模型中所有前面组成部分输出的总和。假设在2层的模型中,有:
x mid ( 2 , t ) = ∑ h attn ( 2 , h ) ( x pre ( 2 , t ) ; x pre ( 2 , 1 : t ) ) + MLP ( 1 ) ( x mid ( 1 , t ) ) + ∑ h attn ( 1 , h ) ( x pre ( 1 , t ) ; x pre ( 1 , 1 : t ) ) x_\text{mid}^{(2,t)}=\sum_h\text{attn}^{(2,h)}(x_\text{pre}^{(2,t)};x_\text{pre}^{(2,1:t)})+\text{MLP}^{(1)}(x_\text{mid}^{(1,t)})+\sum_h\text{attn}^{(1,h)}(x_\text{pre}^{(1,t)};x_\text{pre}^{(1,1:t)}) xmid(2,t)=hattn(2,h)(xpre(2,t);xpre(2,1:t))+MLP(1)(xmid(1,t))+hattn(1,h)(xpre(1,t);xpre(1,1:t))
由于线性,这意味着 MLP ( 1 ) ( x mid ( 1 , t ) ) \text{MLP}^{(1)}(x_\text{mid}^{(1,t)}) MLP(1)(xmid(1,t)) f enc ( 2 , i ′ ) ⋅ x mid ( 2 , t ) f_\text{enc}^{(2,i')}\cdot x_\text{mid}^{(2,t)} fenc(2,i)xmid(2,t)的贡献为:
f enc ( 2 , i ′ ) ⋅ MLP ( 1 ) ( x mid ( 1 , t ) ) f_\text{enc}^{(2,i')}\cdot\text{MLP}^{(1)}(x_\text{mid}^{(1,t)}) fenc(2,i)MLP(1)(xmid(1,t))
只要 l < l ′ l<l' l<l,这一结论通常适用于理解第 l l l层 MLP 对第 l ′ l' l层 transcoder 中第 i ′ i' i个特征激活的贡献。现在,如果第 l l l层的transcoder能够足够好地近似第 l l l层的 MLP,我们就可以用前者替代后者:
f enc ( l ′ , i ′ ) ⋅ MLP ( l ) ( x mid ( l , t ) ) ≈ f enc ( l ′ , i ′ ) ⋅ TC ( l ) ( x mid ( l , t ) ) . f_\text{enc}^{(l',i')}\cdot\text{MLP}^{(l)}(x_\text{mid}^{(l,t)})\approx f_\text{enc}^{(l',i')}\cdot\text{TC}^{(l)}(x_\text{mid}^{(l,t)}). fenc(l,i)MLP(l)(xmid(l,t))fenc(l,i)TC(l)(xmid(l,t)).
然后进一步分解为独立的transcoder特征:
TC ( l ) ( x mid ( l , t ) ) = ∑ feature  j z TC ( l , j ) ( x mid ( l , t ) ) f dec ( l , j ) \text{TC}^{(l)}(x_\text{mid}^{(l,t)})=\sum_{\text{feature}\ j} z_\text{TC}^{(l,j)}(x_\text{mid}^{(l,t)})f_\text{dec}^{(l,j)} TC(l)(xmid(l,t))=feature jzTC(l,j)(xmid(l,t))fdec(l,j)
利用线性的优势,有
f enc ( l ′ , i ′ ) ⋅ MLP ( l ) ( x mid ( l , t ) ) ≈ f enc ( l ′ , i ′ ) ⋅ ∑ feature  j z TC ( l , j ) ( x mid ( l , t ) ) f dec ( l , j ) = ∑ feature  j z TC ( l , j ) ( x mid ( l , t ) ) ( f enc ( l ′ , i ′ ) ⋅ f dec ( l , j ) ) \begin{align} f_\text{enc}^{(l',i')}\cdot\text{MLP}^{(l)}(x_\text{mid}^{(l,t)})&\approx f_\text{enc}^{(l',i')}\cdot\sum_{\text{feature}\ j} z_\text{TC}^{(l,j)}(x_\text{mid}^{(l,t)})f_\text{dec}^{(l,j)}\\ &=\sum_{\text{feature}\ j} z_\text{TC}^{(l,j)}(x_\text{mid}^{(l,t)})(f_\text{enc}^{(l',i')}\cdot f_\text{dec}^{(l,j)}) \end{align} fenc(l,i)MLP(l)(xmid(l,t))fenc(l,i)feature jzTC(l,j)(xmid(l,t))fdec(l,j)=feature jzTC(l,j)(xmid(l,t))(fenc(l,i)fdec(l,j))
于是,transcoder l l l在token t t t上的特征 i i i的贡献为
z TC ( l , j ) ( x mid ( l , t ) ) ( f enc ( l ′ , i ′ ) ⋅ f dec ( l , j ) ) z_\text{TC}^{(l,j)}(x_\text{mid}^{(l,t)})(f_\text{enc}^{(l',i')}\cdot f_\text{dec}^{(l,j)}) zTC(l,j)(xmid(l,t))(fenc(l,i)fdec(l,j))

3.2.2 Attribution through attention heads

Transcoder特征可以通过注意力头(attention head)进行中介传递。因此,我们将把上述分析扩展到通过注意力头的OV路径(OV circuit)来计算transcoder特征的归因。

一些transformer的前置总结
注意力分数: score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) \text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)}) score(l,h)(xpre(l,t),xpre(l,s))表示位置 t t t s s s之间的相关性权重,由 Q K ⊤ QK^\top QK内积经过softmax归一化得到:
score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) = softmax ( ( x pre ( l , t ) W Q ( l , h ) ) ( ( x pre ( l , s ) W K ( l , h ) ) ⊤ d K ) \text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})=\text{softmax}(\frac{(x_\text{pre}^{(l,t)}W_Q^{(l,h)})((x_\text{pre}^{(l,s)}W_K^{(l,h)})^\top}{\sqrt{d_K}}) score(l,h)(xpre(l,t),xpre(l,s))=softmax(dK (xpre(l,t)WQ(l,h))((xpre(l,s)WK(l,h)))
Value变换: W O V ( l , h ) x pre ( l , s ) W_{OV}^{(l,h)}x_\text{pre}^{(l,s)} WOV(l,h)xpre(l,s)

  1. 先通过Value矩阵 W V ( l , h ) W_V^{(l,h)} WV(l,h)投影: V s ( h ) = x pre ( l , s ) W V ( l , h ) V_s^{(h)}=x_\text{pre}^{(l,s)}W_V^{(l,h)} Vs(h)=xpre(l,s)WV(l,h)
  2. 再通过输出矩阵 W O ( l , h ) W_O^{(l,h)} WO(l,h)投影: W O ( l , h ) V s ( h ) = W O ( l , h ) ( x pre ( l , s ) W V ( l , h ) ) W_O^{(l,h)}V_s^{(h)}=W_O^{(l,h)}(x_\text{pre}^{(l,s)}W_V^{(l,h)}) WO(l,h)Vs(h)=WO(l,h)(xpre(l,s)WV(l,h))
  3. 合并为组合矩阵: W O V ( l , h ) = W V ( l , h ) W O ( l , h ) W_{OV}^{(l,h)}=W_V^{(l,h)}W_O^{(l,h)} WOV(l,h)=WV(l,h)WO(l,h)

首先要清楚是什么导致 l ′ l' l transcoder的特征 i ′ i' i在token t t t 上被激活。给定layer l l l的特征头 h h h ( l < l ′ l<l' l<l)。结合上一节的讨论可知,给到特征 i ′ i' i的特征头贡献为
  f enc ( l ′ , i ′ ) ⋅ attn ( l , h ) ( x pre ( l , t ) ; x pre ( l , 1 : t ) ) =   f enc ( l ′ , i ′ ) ⋅ ( ∑ source token  s score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) W O V ( l , h ) x pre ( l , s ) ) =   ∑ source token  s score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) ( ( f enc ( l ′ , i ′ ) ) ⊤ W O V ( l , h ) x pre ( l , s ) ) =   ∑ source token  s score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) ( ( ( W O V ( l , h ) ) ⊤ f enc ( l ′ , i ′ ) ) ⋅ x pre ( l , s ) ) \begin{align} & \ f_\text{enc}^{(l',i')}\cdot\text{attn}^{(l,h)}(x_\text{pre}^{(l,t)};x_\text{pre}^{(l,1:t)})\\ =& \ f_\text{enc}^{(l',i')}\cdot(\sum_{\text{source token}\ s}\text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})W_{OV}^{(l,h)}x_\text{pre}^{(l,s)}) \\ =& \ \sum_{\text{source token}\ s}\text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})((f_\text{enc}^{(l',i')})^\top W_{OV}^{(l,h)} x_\text{pre}^{(l,s)}) \\ =& \ \sum_{\text{source token}\ s}\text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})(((W_{OV}^{(l,h)})^\top f_\text{enc}^{(l',i')})\cdot x_\text{pre}^{(l,s)}) \end{align} === fenc(l,i)attn(l,h)(xpre(l,t);xpre(l,1:t)) fenc(l,i)(source token sscore(l,h)(xpre(l,t),xpre(l,s))WOV(l,h)xpre(l,s)) source token sscore(l,h)(xpre(l,t),xpre(l,s))((fenc(l,i))WOV(l,h)xpre(l,s)) source token sscore(l,h)(xpre(l,t),xpre(l,s))(((WOV(l,h))fenc(l,i))xpre(l,s))
从这里可以看出token s s s在layer l l l上经过head h h h给到的贡献为
score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) ( ( ( W O V ( l , h ) ) ⊤ f enc ( l ′ , i ′ ) ) ⋅ x pre ( l , s ) ) (22) \text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})(((W_{OV}^{(l,h)})^\top f_\text{enc}^{(l',i')})\cdot x_\text{pre}^{(l,s)})\tag{22} score(l,h)(xpre(l,t),xpre(l,s))(((WOV(l,h))fenc(l,i))xpre(l,s))(22)
由于 x pre ( l , s ) x_\text{pre}^{(l,s)} xpre(l,s)可以被分解成其他MLP子层(或者说transcoder的特征)的输出+注意力头的输出+原始的token embedding。这些之前层的组成部分对原始特征的贡献既经过QK路径,也经过OV路径,意味着之前层的组成部分可以带来非线性的贡献。
为了解决这个问题,本文follow了A Mathematical Framework for Transformer Circuits (Elhage et al.) 这篇工作,将QK路径分数 score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) \text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)}) score(l,h)(xpre(l,t),xpre(l,s))视为定值,尽看OV路径的贡献。尽管这样我们无法具体观察QK路径带来的贡献,但是OV路径的信息已经足够丰富。如果QK路径决定从哪个token提取信息,那么OV路径决定的就是从这个token中获取什么样的信息。这在路径分析中非常有用。

假设QK score是固定的。在Eq.22中,如果 y y y是一些之前层组件的输出,其中包含残差流 x pre ( l , s ) x_\text{pre}^{(l,s)} xpre(l,s),那么 y y y通过layer l l l的OV路径的注意力头 h h h对原始transcoder特征 i ′ i' i的贡献为 y ⋅ p ′ y\cdot p' yp,其中
p ′ = score ( l , h ) ( x pre ( l , t ) , x pre ( l , s ) ) p (23) p'=\text{score}^{(l,h)}(x_\text{pre}^{(l,t)},x_\text{pre}^{(l,s)})p\tag{23} p=score(l,h)(xpre(l,t),xpre(l,s))p(23)
p = ( W O V ( l , h ) ) ⊤ f enc ( l ′ , i ′ ) (24) p=(W_{OV}^{(l,h)})^\top f_\text{enc}^{(l',i')}\tag{24} p=(WOV(l,h))fenc(l,i)(24)
p ′ p' p可以被看做是一个特征向量。就像transcoder的特征,特征向量 p ′ p' p被给定向量 y y y的激活程度由 y y y p ′ p' p的内积给出。将 p ′ p' p看作一个特征向量这个角度可以推广到前面的所有分析。

3.2.3 Finding computational subgraphs

前面介绍了给定输入和transcoder的特征 i ′ i' i,前面layer的transcoder特征 i i i i ′ i' i激活的重要程度是怎么计算的。一旦确认哪些特征 i i i i ′ i' i有关,通过重复确认的过程就可以这些重要的特征所形成的路径。(贪心BFS在形成的图上面寻找 N N N条贡献最大的路径)
![[Pasted image 20250530222821.png]]

图2:寻找路径的算法的可视化。

3.2.4 De-embeddings: a special case of input-invariant information

解嵌入(de-embeddings):一个转译器特征的解嵌入向量是一个包含模型词表中每个token的词嵌入对该转译器特征的直接影响的向量。
l l l层transcoder中特征 i i i的解嵌入向量由 W E ⊤ f enc ( l , i ) W_E^\top f_\text{enc}^{(l,i)} WEfenc(l,i) 给出,其中 W E W_E WE是模型的token嵌入矩阵。
重要的是,这个向量提供了关于每个可能的输入token对该特征激活的直接贡献程度的输入无关信息。给定一个解嵌入向量,查看模型词库中哪些token具有最高的解嵌入分数,可以体现该特征的一般行为

4 Comparison with SAEs

Transcoder最初被构想为SAE的一种变体,因此二者之间存在许多相似之处,区别仅在于训练目标的不同。
由于这些相似性,SAE可以用与transcoder完全相同的方法进行定量评估(如稀疏性和保真度)和定性评估(如特征可解释性),这些方法都是标准的SAE评估手段。在这些评估指标上对比SAE和transcoder,发现transcoder的表现与SAE相当,甚至更优。

4.1 Blind interpretability comparison of transcoders to SAEs

为了评估transcoder的可解释性,作者手动尝试解释了Pythia-410M第15层transcoder中的 50 个随机特征,以及在 MLP 输入上训练的同一层 SAE 中的 50 个随机特征。
对于每个特征,预先计算了 OpenWebText 语料库的一个子集中最能激活该特征的样本。
然后,将 SAE 和 transcoder 中的所有特征随机打乱。对于每个特征,展示其最强激活的样本,但不告知该特征来自 SAE 还是 transcoder 。
记录每个特征是否表现出可解释的模式,并在查看完所有特征之后,才揭示每个特征的来源。表 1 中的结果表明,transcoder的特征大致与 SAE 的特征一样具有可解释性。
这进一步说明,相较于 SAE,transcoder在可解释性上没有损失。

Table 1:可解释特征、可能可解释特征和不可解释特征在transcoder与基于 MLP 输入的 SAE 中的数量统计。在可解释特征中,还将其中 6 个transcoder特征和 16 个 SAE 特征认定为“上下文无关”,即这些特征似乎只在单个 token 上激活,且没有明显的依赖上下文的模式。
![[Pasted image 20250530235648.png]]

4.2 Quantitative comparison of transcoders to SAEs

4.2.1 Evaluation metrics

作者从定性和定量两个方面对transcoder进行评估。定性方面评估其特征的可解释性,由人工评估者判断;定量方面则评估其激活的稀疏性以及对原始 MLP 计算的忠实度。

作为特征可解释性的定性代理指标,假设可解释的特征在激活它们的示例中应表现出可解释的模式。为此,可以在一个大型文本数据集上运行transcoder,观察哪些示例会激活某个特征,并判断这些 token 是否存在可解释的模式。
尽管这种方法并不完美,但它仍是衡量这个本质上定性概念的合理代理手段。

为了衡量transcoder的稀疏性(sparsity),可以在一个输入数据集上运行transcoder,并计算每个 token 上平均被激活的特征数量(即激活值的平均 L0 范数)。

为了衡量transcoder的忠实度(fidelity),可以按以下步骤操作:首先,在一个大型输入数据集上运行原始模型,并计算其在该数据集上的下一 token 预测的交叉熵损失。然后,用transcoder替换模型中对应的 MLP 子层,并计算修改后的模型在数据集上的平均损失。此时,transcoder的忠实度可以通过修改后模型的损失与原始模型损失之间的差值来量化。

4.2.2 Results

![[Pasted image 20250531003218.png]]
图3:Transcoder与 SAE 在 GPT2-small、Pythia-410M 和 Pythia-1.4B 上的稀疏性-准确率的trade-off情况。图中的每个点对应一个训练好的 SAE 或transcoder,并标注了训练时使用的 L1 正则化项系数 λ 1 \lambda_1 λ1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2396802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每天总结一个html标签——a标签

文章目录 一、定义与使用说明二、支持的属性三、支持的事件四、默认样式五、常见用法1. 文本链接2. 图片链接3. 导航栏 在前端开发中&#xff0c;a标签&#xff08;锚点标签&#xff09;是最常用的HTML标签之一&#xff0c;主要用于创建超链接&#xff0c;实现页面间的跳转或下…

android binder(1)基本原理

一、IPC 进程间通信&#xff08;IPC&#xff0c;Inter-Process Communication&#xff09;机制&#xff0c;用于解决不同进程间的数据交互问题。 不同进程之间用户地址空间的变量和函数是不能相互访问的&#xff0c;但是不同进程的内核地址空间是相同和共享的&#xff0c;我们可…

行业分析---小米汽车2025第一季度财报

1 背景 最近几年是新能源汽车的淘汰赛&#xff0c;前短时间比亚迪再次开始了降价&#xff0c;导致一片上市车企的股价大跌&#xff0c;足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况&#xff0c;对之前财报分析感兴趣的读者朋友可以参考以下博客&#xff1a;…

边缘计算网关支撑医院供暖系统高效运维的本地化计算与边缘决策

一、项目背景 医院作为人员密集的特殊场所&#xff0c;对供暖系统的稳定性和高效性有着极高的要求。其供暖换热站传统的人工现场监控方式存在诸多弊端&#xff0c;如人员值守成本高、数据记录不及时不准确、故障发现和处理滞后、能耗难以有效监测和控制等&#xff0c;难以满足…

简单了解string类的特性及使用(C++)

string的特性 string类不属于STL&#xff0c;它属于标准库 但由于它具有数据结构的特性&#xff0c;所以从归类的角度&#xff0c;可以将string类归类到容器里面去 在C标准库中&#xff0c;std::string 是一个特化的类型&#xff0c;实际上是 std::basic_string 的别名。std…

FastAPI+Pyomo实现线性回归解决饮食问题

之前在 FastAPI介绍-CSDN博客 中介绍过FastAPI&#xff0c;在 Pyomo中线性规划接口的使用-CSDN博客 中使用Pyomo解决饮食问题&#xff0c;这里将两者组合&#xff0c;即FastAPI在服务器端启动&#xff0c;通过Pyomo实现线性回归&#xff1b;客户端通过浏览器获取饮食的最优解。…

16.FreeRTOS

目录 第1章 FreeRTOS 实时操作系统 1.1 认识实时操作系统 1.1.1 裸机的概念 1.1.2 操作系统的概念 1.2 操作系统的分类 1.3 常见的操作系统 1.4 认识实时操作系统 1.4.1 可剥夺型内核与不可剥夺型内核 1.4.2 嵌入式操作系统的作用 1.4.3 嵌入式操作系统的发展 1.4.4…

Redis最佳实践——购物车优化详解

Redis在电商购物车高并发读写场景下的优化实践 一、购物车业务场景分析 典型操作特征 读/写比例 ≈ 8:2高峰QPS可达10万单用户最大商品数500操作类型&#xff1a;增删改查、全选/反选、数量修改 技术挑战 高并发下的数据一致性海量数据存储与快速访问实时价格计算与库存校验分…

【计算机网络】传输层UDP协议

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a; 【计算机网络】应用层协议Http——构建Http服务服务器 &#x1f516;流水不争&#xff0c;争的是滔滔不…

安全漏洞修复导致SpringBoot2.7与Springfox不兼容

项目基于 springboot2.5.2 实现的&#xff0c;用 springfox-swagger2 生成与前端对接的 API 文档&#xff1b;pom.xml 中依赖如下 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…

从法律层面剖析危化品证书:两证一证背后的安全逻辑

《安全生产法》第 24 条明确规定&#xff0c;危化品单位主要负责人和安全管理人员 “必须考核合格方可上岗”。这并非仅仅是行政要求&#xff0c;而是通过法律来筑牢安全防线。在某危化品仓库爆炸事故中&#xff0c;由于负责人未持证&#xff0c;导致事故责任升级&#xff0c;企…

深入理解复数加法与乘法:MATLAB演示

在学习复数的过程中&#xff0c;复数加法与乘法是两个非常基础且重要的概念。复数的加法和乘法操作与我们常见的实数运算有所不同&#xff0c;它们不仅涉及到数值的大小&#xff0c;还有方向和相位的变化。在这篇博客中&#xff0c;我们将通过MATLAB演示来帮助大家更好地理解复…

【设计模式-3.6】结构型——桥接模式

说明&#xff1a;本文介绍结构型设计模式之一的桥接模式 定义 桥接模式&#xff08;Bridge Pattern&#xff09;又叫作桥梁模式、接口&#xff08;Interface&#xff09;模式或柄体&#xff08;Handle and Body&#xff09;模式&#xff0c;指将抽象部分与具体实现部分分离&a…

力扣题解654:最大二叉树

一、题目内容 题目要求根据一个不重复的整数数组 nums 构建最大二叉树。最大二叉树的构建规则如下&#xff1a; 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值左边的子数组前缀上构建左子树。递归地在最大值右边的子数组后缀上构建右子树。返回由 nums 构…

95套HTML高端大数据可视化大屏源码分享

概述​​ 在大数据时代&#xff0c;数据可视化已成为各行各业的重要需求。这里精心整理了95套高端HTML大数据可视化大屏源码&#xff0c;这些资源采用现代化设计风格&#xff0c;可帮助开发者快速构建专业的数据展示界面。 ​​主要内容​​ ​​1. 设计风格与特点​​ 采用…

scale up 不能优化 TCP 聚合性能

scale up 作为一种系统扩展优化的方法&#xff0c;旨在提高系统组件的执行效率&#xff0c;比如替换更高性能的硬件或算法。是否可以此为依据优化 TCP 呢&#xff0c;例如通过多条路径聚合带宽实现吞吐优化(对&#xff0c;还是那个 MPTCP)&#xff0c;答案是否定的。 因为 TCP…

Python-matplotlib库之核心对象

matplotlib库之核心对象 FigureFigure作用Figure常用属性Figure常用方法Figure对象的创建隐式创建&#xff08;通过 pyplot&#xff09;显式创建使用subplots()一次性创建 Figure 和 Axes Axes&#xff08;绘图区&#xff09;Axes创建方式Axes基本绘图功能Axes绘图的常用参数Ax…

Linux 脚本文件编辑(vim)

1. 用户级配置文件&#xff08;~/.bashrc&#xff09; vim ~/.bashrc # 编辑 source ~/.bashrc # 让编辑生效 ~/.bashrc 文件是 Bash Shell 的配置文件&#xff0c;用于定义用户登录时的环境变量、别名、函数等设置。当你修改了 ~/.bashrc 文件后&#xff0c;通常需要重新…

学习BI---基本操作---数据集操作

什么是数据集&#xff0c; 数据集&#xff08;Dataset&#xff09;​​ 是指从原始数据源&#xff08;如数据库、Excel、API等&#xff09;提取并经过标准化处理后的数据集合&#xff0c;通常以二维表形式存储&#xff0c;用于支撑报表、仪表盘等可视化分析。 数据集在QuickB…

初学大模型部署以及案例应用(windows+wsl+dify+mysql+Ollama+Xinference)

大模型部署以及案例应用&#xff08;windowswsldifymysqlOllamaXinference&#xff09; 1.wsl 安装①安装wsl②测试以及更新③安装Ubuntu系统查看系统以及版本安装Ubuntu系统进入Ubuntu系统 2、docker安装①下载安装包②安装③docker配置 3、安装dify①下载dify②安装③生成.en…