一篇之前写的旧文,原文太长了,写不清楚,一直没发出来~
Anthropic最近发了一个关于“Golden Gate Claude”的博客,除了娱乐价值和各种宣传之外,还展现了在可解释性和安全性方面的了不得的进展。
给大家试用的Claude 3 Sonnet 模型对金门大桥有着非常极端的诱导。如果你问这位“Golden Gate Claude”如何花10美元,他会建议用它开车过金门大桥并交过路费。如果你要求它写一个爱情故事,它会告诉你一个汽车在雾天迫不及待地穿过心爱的桥梁的故事。如果你问它想象中的它是什么样子,它可能会告诉你它想象中的它看起来像金门大桥。
官方博客:https://transformer-circuits.pub/2024/scaling-monosemanticity/index.html
众所周知,模型训练之后,会将训练知识以某种形式压缩在模型参数中。简单理解,当输入token “狗” 的时候,可能会有一组代表动物的神经元倍激活。实际上,大多数的神经网络都具有多种属性,它的特征不会以任何人类可理解的方式,来反映单一、独特的概念。所以,文中假设,特征是神经元的叠加,每个特征由不同神经元的线性组合表示。
神经元叠加的好处是,可以用更少的神经元来表达更多的特征。但是如果要提取这些特征,并以单语义方式表示它们将需要大且稀疏的模型。在这种情况下,作者们使用了稀疏自动编码器 - sparse autoencoder。
spare autoencoder 是一个比较老的研究了,它有2部分构成,编码器和解码器,编码器将输入压缩成latent feature,解码器从特征中重建输入表示。如下图所示
在金门大桥claude中,训练的 sae 由线性变换和 relu 作为编码器层以及单个解码器层组成。该模型经过训练以最小化重建误差,并为潜在空间中的激活添加了 L1 惩罚以鼓励特征的稀疏性。
Dictionary Learning
Dictionary Learning 是一种将输入数据表示为基本元素(称为原子)的线性组合的方法。所有这些原子的维度将高于输入数据的维度。然而,由于表示是稀疏的,大多数为零,因此数据可以用原子的小的线性组合来表示。
然后有一个字典用于重建原始输入数据。字典学习的一个非常常见的应用是信号压缩,其中输入信号由原子表示,减少信号的大小,同时最大限度地减少检索时的信息丢失。
在 SAE 的情况下,编码器将来自 LLM 的输入分解为单独的特征,即原子,而解码器充当字典来重建信号。
可解释性
在Claude 3 Sonnet上训练sae的,可以得到一大堆的latent feature(维度约为 34M)。其中许多特征是可解释的并且可以代表抽象概念。
他们完成了对四个特征的详细分析:金门大桥、脑科学、纪念碑和热门旅游景点以及交通基础设施。对于每个功能,他们显示了该功能在不同token上的激活强度。
随着 token 远离所表示的概念,激活的强度会降低。除次之外,还发现了的更抽象的特征。其中包括代码错误功能、有关内心冲突的功能以及表达情感(例如悲伤)的功能。
特征引导
如果模型可以通过在推理过程中操纵其层激活,这不仅会减少在模型之上设置安全流程所需的工作,还会减少用户“越狱”模型的概率。
用到一个称为feature clamping的方法。对于特定功能,SAE 潜在空间中的激活被硬编码为特定值。然后,来自 LLM 中间层的激活会通过 SAE,然后继续通过后续层。这样做的结果是解码器不会按照训练期间的设计重建输入激活,而是受到用于限制潜在空间的特征的影响。
Golden Gate Claude 就是这样创建出来的,这个模型痴迷于金门大桥,通过拦截模型中的中间层,将其替换为金门大桥的特征上。