AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


谈谈大模型可解释性
发布日期:2024-06-13 05:07:20 浏览次数: 1864


上一篇《再谈谈三万亿的破绽》在算法和模型架构的变革这一节提到了两个大模型可解释性的工作, 分别是Anthropic的《Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet》[1],以及OpenAI的《Extracting Concepts from GPT-4》[2]两个工作都是基于Anthropic几个月前的Sparse AutoEncoder的方法去探索, 我们将对其做一些详细的介绍, 同时还有一篇Google DeepMind的《Transformers need glasses! Information over-squashing in language tasks》[3]涉及一些信息过度压缩的问题.

看完这几篇论文有一个感受: 人性就是一根曲木, 怎么对齐嘛, 然后也明白了为啥Jan Leike和ilya离开OAI的原因, 算力的需求对于Superalignment团队的价值在快速变现压力下确实难讲, 安全稳定这种事情要出了事才能明白痛, OAI这篇论文真是一篇诚意满满的文章,值得一读. 另外Anthropic对于特征的解读也更胜一筹,特别是还有一些多模态的例子,

TL;DR

在介绍稀疏自编码器(Sparse Autoencoders,SAE)之前, 我们先从Word Embedding和一些最简单的模型谈论一下可组合性. 这也是我在大模型时代的数学基础这一系列文章中强调的. 本质上是Non-Composable需要额外的数据注入, 以及范畴论观点上的差异.

这一点和人类的心智也是一致的. 通常人类会对一系列对象形成一个“物以类聚,人以群分”的概念(Concepts), 这样会使得他们能够对新遇到的对象作出适当的反应. 但是大多数这样的概念都无法严格的定义, 概念之间的模糊关系或者归属关系让我们整理出类似于思维导图的东西. 但受到集合论的数学基础的影响, 我们可能会很容易的认为某个概念带有什么特征或者什么属性, 神经元的设计也是如此. 但是范畴论的视角来看是反过来的, 更容易让中国人理解的是“一个人是谁, 是由他的关系决定的“,把属性变成关系, 而关系是一种”箭头“(称之为态射), 在其之上赋予一些代数结构, 这也是Attention之上需要做一些composition的原因, SAE的最根本的原理也是如此,anthropic将其称为Interpretable Features, OAI则称为 “Extracting Concepts from GPT-4", 事实上无论是可解释性的特征, 还是Concept本身就构成一个范畴.

正如我在《大模型时代的数学基础(2)》中讲的:

Transformer算子的可组合性如何设计?通过范畴论这样顶层的抽象视角会得出不少有价值的答案。当然还有很多范畴论的内容,例如limit/colimit,以及相应约束下的强化学习和基于Hom函子去构造数据,最终来提高大模型的逻辑推理能力,范畴论视角下函数式编程和大模型的融合,这些都是非常值得我们去深思的问题

接下来第一二章介绍一下SAE的由来和相关的工作,然后第三章来多写一些数学相关的解释和未来展望.

1. 从表示论的视角谈可解释性

当前LLM的, 我们并不真正了解神经网络的内部运作原理。模型上线后, 并不能像普通机器那样, 工程师根据零部件的规格进行评估和修复机器来确保安全性和性能. 例如最近很多人把高考试卷拿来测大模型, 分数比较差的厂商完全无法针对性能上的缺陷很快进行修复,只能当个十几二十分的学渣.

1.1 从词嵌入谈谈当前大模型的困境

词嵌入到一个高维线性空间后, 会发现有一些叠加性. 例如下图所示:

我们可以看到它似乎在这个线性空间内有了一些概念, 例如

但是在这个向量空间中还存在一些问题, 例如通用性和可解释性还有数值稳定性等. 举个例子,Cohere有一篇论文《Fishing for Magikarp: Automatically detecting under-trained tokens in large language models》[4] 一些未经充分训练的Token可以诱导出一些不被期望的行为, 例如臭名昭著的SolidGoldMagikarp:

另一个问题是这些Token经过Dense矩阵后的数值稳定性问题, 特别是在经过一些量化后, DeepMind也写了一篇很好玩的Transformer需要戴个眼镜的论文《Transformers need glasses! Information over-squashing in language tasks》[5], 对于Token我们将其理解为一个信号传播的过程, 对于Transformer最后一层的Token输出的信号稳定性和抗干扰性是非常重要的,因为需要通过它来预测下一个Token. 但是现代的LLMs采用低精度的浮点格式将会加重对数值稳定性的影响.

例如左图所示, 从上到下,我们为 Transformer 架构提供了一系列序列,每个序列都包含重复的 1 标记,末尾有一个 0 标记。曲线的颜色和接近度说明了这些表示如何随着序列长度的增加而收敛, 这就是一个可表空间内随着序列长度逐渐崩塌的例子. 另一方面是Decoder-Only的架构, 输入序列中较早的Token将具有更多的路径,通过这些路径,其数据可以到达用于下一个Token预测的表示,从而导致“过度挤压”。例如刚才做了一个实验:

同样的问题也试了一下国内几个大模型,基本上都错了, 只有文心一言大概理解了任务,后台调用了Python的str.count()来做

例如有些可以接入数据库的大模型, 是否能够精心构造一些执行方式做攻击注入呢?这些模型安全性的问题我们稍后再讨论,  接下来我们讨论一个更简单的问题,形状和颜色的组合编码.

1.2 组合与叠加

Chris Olah有一篇文章《Distributed Representations: Composition & Superposition》[6] 介绍了基于Composition(组合)和Superposition(叠加)的分布式表示就是这个意思.

例如我们以(颜色, 形状)为特征构建的稀疏表示如下,对于这种One Hot的表示称为“Local Code”

然后我们可以通过“形状+颜色”可组合(Composition)的方式表达, 被称为“Semi-Local Code”

但实际上我们可以通过神经元构建一个更加Dense的表示, 实际上是多个特征叠加(Superposition)

但是这样的方式可解释性并不强, 针对超大规模的模型计算稳定性也有问题, 后面会在《Transformers need glasses》展开讲一下.  因此工业界需要在两者之间权衡

其实本质是在Superposition的基础上需要添加Composition的能力, 即

然后通过这种方式编码方式, 例如,A+B=绿色,D+E=正方形来构造

这是一个很好的理解为什么需要在一个Dense神经网络上构建Composition. 本质上这个问题是在范畴论的上的Product, 例如下图所示:

同样我们可以用来表示态射, 根据这个交换图,态射的复合如下

其中表示颜色的编码,而可以表示形状. 为叠加(superposition)投射.

1.3 叠加假设

本质上Word Embedding从一个可表空间的视角来看. 对于一个有限群的有限维表示,由Maschke定理,如果有非平凡的子表示,则有表示的直和分解,由于是有限维,则存在如下分解

其中每个子表示都没有非平凡子表示。

但是这样的Composition表示还需要在原有的线性空间上做一次线性变化, 更简单的一种描述方法类似于主成分分析, Antropic在2022年做了一个玩具模型验证《Toy Models of Superposition》[7]

Anthropic提出了一个叠加假设(Superposition Hypothesie),在叠加假设中,特征被表示为神经元输出的向量空间中几乎正交的方向。由于这些特征只是几乎正交,所以激活的一个特征看起来像稍微激活的其他特征。 叠加假设表明高维模型中的每个特征对应于低维空间中的一个方向, 将神经网络解释为具有叠加的稀疏结构不仅是一种有用的事后解释,而且实际上是模型的“基本事实”。同时叠加模型还出现了非常复杂的几何结构, 例如上图, 叠加可以让模型表示额外的特征,并且随着稀疏性的增加,额外特征的数量也会增加。而我们需要对大模型进行逆向工程分析时, 显然是需要这样的Decomposability的属性. 因此也就逐渐演化出了所谓的Sparse AutoEncoder.

2. Sparse AutoEncoder

Sparse AutoEncoder的工作有几篇《Scaling Monosemanticity: Extracting Interpretable Features from Claude 3 Sonnet》[8]

2.1 Sparse AutoEncoder结构

从最早的Anthropic的Toy Model of Superposition 使用了ReLU函数做了一些简单的实验, 后期在《Towards Monosemanticity: Decomposing Language Models With Dictionary Learning》和另一篇文章 《Sparse Autoencoders Find Highly Interpretable Features in Language Models》[9]中出现了基于ReLU的SAE定义

在Transformer的某一层的激活向量抽取出来, 然后Encoder计算如下

Decoder计算为

训练这个AutoEncoder的Loss定义如下:

前一项为重建的MSE,后一项为隐空间的稀疏惩罚项.

在OAI的论文中采用了Top K-sparse AutoEncoder的方式

Decoder不变, 但Loss计算更加简单 , 不需要稀疏惩罚项, 并且其效果更好

2.2 Dead Latent

在Sparse AutoEncoder训练过程中, 越大的自编码器存在一些潜变量训练到某个点以后就完全停止激活,称为Dead Latent.在OAI的消融实验中发现,如果不采取任何缓解措施,最高可达90%的潜变量成为Dead Latent, 并导致MSE显著恶化.OAI解决这个问题的做法也很巧妙

在训练过程中, 例如每经过10M tokens, 如果停止更新的Latent标记为Dead. 然后在增加一个辅助损失函数

其中,而由top-K dead latent构造. 这样整个Loss函数定义为.

最终在有16M个潜变量的模型中只有7%为dead-latent.

2.3 SAE Scaling Laws

通过实验,发现MSE遵循计算量的幂律关系, 以及训练到SAE收敛的边界.

并且还对Learning-Rate进行了探索, 如下左图.同时针对更大的模型, SAE需要更大的潜变量SAE才能达到相同的MSE

2.4  Downstream Loss

一个很简单的想法, 如果我们用SAE Decoder出来的替代原来Transformer模型的残差层?并且考虑下游的KL散度和交叉熵损失, ksparse自编码器在下游损失上的改进幅度超过在MSE上对先前方法的改进(如下左图)。当保持稀疏度L0固定并仅改变自编码器大小时,MSE与KL散度及交叉熵损失之差存在清晰的幂律关系(如下右图)。

2.5 可解释性

SAE对于概念的可视化解释, Anthropic和OAI都做了相应的可视化展示, 例如Anthropic的多模态对金门大桥的概念

然后比较有价值的是从这些概念中观察到了与广泛的安全问题相关的特征,包括欺骗、阿谀奉承、偏见和危险内容。

Anthropic还做了一个有趣的实验, 例如将将门大桥特征 34M/31164353 设置为其最大激活值的 10 倍会引发主题相关的模型行为。在此示例中,模型开始自我识别为金门大桥,同时还有一些其它概念的例子

还有一些跟Code相关的特征如下:

3. 数学解释和未来展望

3.1 范畴论的视角

从概念的视角来看, 每个Token属于某个范畴, 那么都会存在相应的态射,例如下图中的这些Token构成一个“统计特征范畴”, 然后有一系列的“POSITIVE LOGITS”D的箭头射向它们.

另一个例子是数词相关的范畴

一个还不成熟的想法是, 是否在这些基础上从范畴论可组合性的视角上进行分析和约束,然后特征间再引入一个图神经网络, 事实上这些概念之间通过POSITIVE/NEGATIVE LOGITS是可以构成正向和负向相关性的连接图的,即

非常关键的一点是, 这些特征/概念的形成是在模型训练中无监督学习生成的. 从范畴论的视角上, 我们可以在图上进行进一步的归纳总结. 并通过交换图的视角来对概念的可组合性进行测试和约束,对错误token的产生以及有毒概念的Token产生通过一个旁路的小规模SAE+GNN模型进行拦截, 或者GNN都不需要, 一个简单的决策树模型可能就够了.

3.2 从生物学的视角

我们可以理解为预训练的过程为儿童2岁前突触形成的过程.而成年的过程则是一个逐渐的突触裁剪的过程.

在牛津大学2007年进行的一项研究中,研究人员根据体视分级收集到的大小和证据,将8个新生大脑与8个成年人的大脑进行了比较。他们发现,在他们测量的中餐丘脑核区域,成人神经元数量的平均估计值比新生儿低41%。

另一方面我们注意到青少年时期大脑过度连接的修剪不足,可能是许多始于该时期的精神健康障碍的病理根源, 例如抑郁症、焦虑症和以注意力缺陷多动障碍为代表的行为障碍,同样当人类大脑学习新的知识的时候, 也会出现突触修剪, 和大模型相关的FineTune一样也会带来灾难性遗忘等现象.

3.3 大模型架构的演进

从这个视角来看,既要满足大模型的信息压缩率, 那么势必在主的Token路径上有足够多的Dense计算, 稀疏的计算降低了模型的压缩率, 因此很多稀疏化的Transformer效果都相对较差, 同时直接模型主数据路径上稀疏化也会导致训练效率(例如MFU)带来影响, 可以注意到现阶段很多MoE模型的缺陷就在此.

从DeepSeek Shared MoE以及Snowflake的Dense-MoE有一个假设, 针对推理阶段构建一个Adhoc的对齐SAE模型和Transformer block并联, 然后在多层之间的SAE进行一些决策树算法对概念进行过滤是否可行?即将原来的Dense模型作为数据路径,而SAE+Decision-Tree/Graph-NN作为控制路径, 拦截有毒信息.

甚至是想到一种做法, 例如在推理过程中利用一个3B的小模型来投机采样, 然后基于投机的这些数据在SAE上进行验证,异常的再走一个较大的70B左右的模型再做一次? 这样构建端云协同的推理机制?

另一个潜在的可以研究的是基于SAE和旁路决策树的FineTune能力, Antropic已经有一些测试,例如将金门大桥的激活扩大10倍后, 模型就会脑残到认为自己就是金门大桥,这样对于一些垂直领域的大模型就可以既不碰模型Dense路径的原参数,又可以通过AdHoc的方式来轻量级的修建输出.

而我们注意到其实MoE也是在做一种类似的Composition能力, 而Mixture-of-Depth其实通过SAE的相关邻接概念的positive logits猜一下做些投机也是可行的.

甚至还有一种想法是把SAE出来的feature再灌入到另一个较小规模的Transformer网络中, 产生一些接下来词的序列是否可行? 这样对一些长文本的场景下,我们可以通过基于特征的归纳, 来逐级输出最后的summary.

最后, SAE其实是一个非常早期对模型安全至关重要,同时又对算力有很高要求,但是当前针对对齐这些业务风险远小于没有营收的风险. 从一些新闻看出,很多人对大模型安全性的担忧,但奥特曼不太在意给对齐的团队分配更多的算力, 最终导致了一些人离职?

而前面的一些想法, 大概就是重新为SAE找到一些价值. 我倒是建议很多开源模型团队撸一下, 弄点训练好的SAE出来, 例如基于一个3B或者7B的模型,人人都能玩得起的, 然后利用社区的力量, 在这上面去卷一些算法.


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询