OpenAI新作署名Ilya,提取1600万个特征看透GPT-4大脑!

  新智元报道

  编辑:乔杨好困

  今天,OpenAI 发布了一篇 GPT-4 可解释性的论文,似乎是作为前两天员工联名信的回应。网友细看论文才发现,这居然是已经解散的「超级对齐」团队的「最后之作」。

  前两天,OpenAI 的一群员工刚刚联名发表公开信,表示自主的 AI 系统正在失控,呼吁公众提高警惕。

  今天 OpenAI 就甩出了一篇论文来回应。

  这篇文章通过逆向工程,为 GPT-4 做了一次「解剖」,旨在探索 LLM 的可解释性。

  更让人唏嘘的是,这项新研究由最近刚刚分崩离析的「超级对齐」团队完成,文章还有 Ilya Sutskever 和 Jan Leike 的署名。

  论文地址:https://cdn.openai.com/papers/sparse-autoencoders.pdf

  文章是发表了,但团队却早已解散。

  物是人非,似乎也从另一个侧面说明了,OpenAI 在 AGI 安全方面进行的重大转向。

  论文提出,模型的可解释性与 AI 安全息息相关。

  目前我们仍不了解语言模型的内部运作原理,而且它无法被轻易分解为可识别的部分。这意味着无法像推理汽车安全那样推理人工智能安全。

  为了理解和解释神经网络,首先需要找到神经计算的构建模块。

  然而,语言模型内神经元的激活模式是密集且不可预测的,每次输入都会触发一次激活,而且同时包含了许多概念(concepts)。

  不同的是,现实世界的概念非常稀疏——给定上下文,所有概念中只有一小部分是相关的。

  这种密集和稀疏的区别启发了「稀疏自动编码器」(SAE, sparse autoencoders)的概念。对于给定输出,可以识别并提取神经网络中产生这些输出的重要「特征」(features),类似于人特定情境下进行推理时想到的概念。

  SAE 提取的特征显示出稀疏的激活模式,即使不施加直接的可解释性激励,也能自然地与人类容易理解的概念保持一致。

  LLM 的参数中隐式包含了大量的概念,相应地,自动编码器也需要非常大的规模,才能涵盖前沿模型中的所有概念。

  由于极端稀疏性,SAE 很难扩展为大规模训练,之前的工作主要集中在用小型语言模型训练较小的 SAE。

  这篇论文的主要贡献在于提供了可靠且可扩展性的训练方法,能够用 TopK 自动编码器提取 LLM 中的数千万个特征。

  而且,这种可扩展性是平滑且可预测的,与之前的工作相比有更好的「规模回报」。

  训练代码已在 GitHub 上发布,可以运行在任何语言模型的激活层上。

  开源地址:https://github.com/openai/sparse_autoencoder

  论文尝试用这种方法分别在 GPT-2 和 GPT-4 上训练 SAE,并制作了一个可视化工具来检视提取特征的可解释性。

  SAE 可视化界面:https://openaipublic.blob.core.windows.net/sparse-autoencoder/sae-viewer/index.html

  GPT-4 训练的 SAE 包含 1600 万个潜在变量,在 400 亿个 token 上进行训练。

  其中有一些较为明显的可解释特征被提取了出来,比如有关人类缺陷、多语言的身份证明文件和涨价、自然灾害等话题。

  训练方法

  论文在多种 LLM 上都尝试了训练 TopK 自动编码器,包括 GPT-2 small、GPT-4 以及一系列有 GPT-4 类似架构的不同大小的模型。

  TopK,或者k-稀疏方法是只保留k个最大的隐变量,将其余变量置零。TopK 编码器定义如下:

  所有实验中都使用 64 tokens 长度的上下文,选取网络末尾的包含较多特征的一层(但不涉及 next token 预测任务)的残差流进行训练。

  GPT-2 small 中使用了第 8 层,也就是整体架构的3/4 部分;对于 GPT-4 类架构,这个比例则是5/6。

  训练后,分别使用 L0 和均方差(MSE)两个指标分别评估稀疏性和重建误差,并与基线模型 ReLU 自动编码器进行对比。

  在规定隐变量数量为 32768 时,相比 ReLU 和 ProLU,TopK 方法在稀疏性和重建性能上实现了更好的平衡,与门控机制相近。

  在固定稀疏性时,随着隐变量数目的增加,TopK 方法的 MSE 下降速度也是所有方法中最高的。

  变量数量逐渐增长时,也会有越来越多的隐变量在训练过程中的某个时刻完全停止激活,成为「死亡隐变量」。

  消融实验中发现,如果不采取任何缓解措施,死亡隐变量的占比可以高达 90%,这会导致 MSE 大幅恶化,且浪费训练算力。

  为了防止隐变量「死亡」,论文提出了 2 个训练技巧——

  - 将编码器初始化为解码器的转置

  - 添加辅助损失 AuxK,即使用k个「死亡隐变量」计算的重构误差(论文戏称为「幽灵梯度」)

  使用这两个方法后,即使是在 GPT-4 上训练出的有 1600 万个隐变量的 SAE 中,也仅有7% 的「死亡隐变量」。

  可扩展性

  由于论文的主要目的就是提升 SAE 的可扩展性,因此作者通过改变各种超参数设置,着重探讨了模型这方面的表现。

  首先,使用与训练 LLM 相似的策略,不考虑收敛,在可用计算资源的条件下训练不同规模的 SAE,直至达到 MSE 最优。

  下面左图中可以看到,MSE 的下降趋势基本符合计算量的幂律分布L(C),尽管其中最小的模型有些偏离。

  右图则表示,选取不同的k值时,随着隐变量数量N的增大,MSE 的下降趋势基本类似,遵循N和k的联合 scaling 法则。这体现出模型较好的优化性能和可靠性。

  随着k值增加,MSE 的下降曲线逐渐陡峭,意味着不可约损失的减少。

  但L(N,k)的这种趋势仅在k值较小时成立,若k值过大、接近模型维数,SAE 的重建就失去意义了。

  下面这张图展示的结果也比较符合直觉——随着语言模型逐渐增大,SAE 也需要更多的隐变量才能实现相同的 MSE。

  评估结果

  虽然使用 L0 和 MSE 两个指标已经可以很好地评估稀疏性和重建表现,但这并不是模型的最终目标。

  我们需要评估 SAE 提取出特征的质量和可解释性,因此论文提出了以下几种指标:

  1. 下游损失:如果将原语言模型残差流中的隐变量替换为自动编码器重建的变量,语言模型的损失表现如何

  2. 探测损失:SAE 能否恢复我们预期的特征

  3. 可解释性:对于 SAE 提取的隐变量在 LM 中的激活,是否存在充要的简单解释

  4. 消融稀疏性:消除单个隐变量对 LM 下游得到的 logits 是否有稀疏影响?

  通过这些指标的评估,论文得出的总体结论是,隐变量总数增加会使得 SAE 表现更好,然而激活的隐变量数量 L0 产生的影响会比较负责。

  下游损失

  论文考虑使用 KL 散度和交叉熵损失衡量语言模型的下游表现,TopK 方法在稀疏性和交叉熵两方面可以取得更好的均衡。

  对比其他方法,在达到相同的 MSE 值时,TopK 方法带来的交叉熵最低,意味着下游表现最好。

  探测损失

  为评估探测损失,团队训练了 61 个 1 维的 logistic 探测器,用于检测相应特征是否存在并计算最佳交叉熵(在所有隐变量中)作为探测损失。

  结果显示,k值越高,探测损失越低,且 TopK 模型的性能在各个k值上的表现都优于 ReLU。

  可解释性

  可解释性的量化比较困难。为此,论文借鉴了 2023 年一篇论文提出的可解释性自动评分方法,打出的分数与召回率相关但不成比例。

  由于在这种方法中使用 GPT-4 计算准确率和召回率过于昂贵,因此评估时作者找了另一种更便宜的模型 N2G。

  下面这个例子可以更直观地展现 N2G 的打分机制。

  相比 ReLU,TopK 模型的 F1 分数更高,召回率总体有 1.5×的提升,但准确率稍逊一筹,约为 ReLU 方法的 0.9×。

  消融稀疏性

  为了评估消融稀疏性,团队独创了一个指标(L1/L2)^2 计算向量的稀疏度,来表征每删除一个隐变量时,有多少 token 受到了稀疏影响。

  图 6b 可以看到,对于有不同隐变量数量的模型,随着 L0 逐渐提升(模型逐渐稀疏),消融稀疏性也逐渐提升(受到影响的 token 数量更少)。

  理解 TopK 激活函数

  TopK 防止激活收缩

  L1 正则化的一个主要缺点是,它会使所有激活值趋向于零。

  而论文提出的 TopK 激活函数解决了这个问题,因为它不需要 L1。

  团队使用投影梯度下降法来求解带有正约束的最优激活值。这种优化过程在 ReLU 模型中通常会增加激活值,但在 TopK 模型中不会(见图 9a),这表明 TopK 不受激活收缩的影响。TopK 模型的优化幅度也比 ReLU 模型小。

  在 ReLU 和 TopK 模型中,优化过程显著改善了重建的 MSE(见图 9b)和下游的下一个 token 预测的交叉熵(见图 9c)。

  然而,这种优化只部分缩小了 ReLU 和 TopK 模型之间的差距。

  渐进恢复

  在渐进编码中,即使只传输部分数据,也可以以合理的精度重建信号。

  对于自动编码器来说,学习渐进编码意味着通过激活幅度对潜变量进行排序,可以逐步恢复原始向量。

  为了研究这一特性,团队在训练后将自动编码器的激活函数替换为 TopK(k′)激活函数,其中k′与训练时的k值不同。然后,通过将每个k′值放在 L0-MSE 平面上进行评估(见图 10)。

  结果显示,用 TopK 训练的模型只能在训练时使用的k值范围内提供渐进编码。MSE 在稍高于k的值时有所改善,但随着k′的进一步增加,MSE 显著变差。

  为了缓解这个问题,我们将多个不同k值的 TopK 损失相加,称为 Multi-TopK。比如,使用L(k) + L (4k)/8 就可以在所有k′上实现渐进编码。

  不过需要注意的是,使用 Multi-TopK 训练在k值处的表现略逊于单一 TopK。

  对于用 TopK 训练的自动编码器,在测试时,TopK 和 JumpReLU 曲线仅在 L0 低于训练时的 L0 值时重叠,否则 JumpReLU 激活效果不如 TopK 激活。

  然而,这种差异在使用 Multi-TopK 时消失,两条曲线几乎重叠,这意味着模型可以在每个 token 上使用固定或动态数量的潜变量而不会影响重建效果。对于用 ReLU 训练的自动编码器,两条曲线也重叠。

  有趣的是,有时用低 L1 惩罚训练 ReLU 模型并在测试时使用 TopK 或 JumpReLU,比用较高 L1 惩罚以获得类似稀疏度更有效。

  局限性和未来方向

  对于 OpenAI 的这篇研究,东北大学研究 AI 可解释性的教授 David Bau 表示,「这是令人兴奋的进展。我们需要学习如何更好地理解和审查这些大模型。」

  这篇论文的主要创新在于,展示了一种更有效的方法来配置小型神经网络,可用于理解大模型的组成部分。但他也指出,这项技术的可靠性仍有提升空间,「要使用这些方法来创建完全可以理解的模型解释,还有很多工作要做」。

  论文最后也对局限性和未来发展方向做出了相关的陈述——

  - TopK 方法强制使用固定数量的k个潜变量,这可能不是最优的。理想情况下,应该约束潜变量的期望数量E[L0]而不是固定数量 L0。

  - 64 个 token 的上下文长度可能太短,无法展示 GPT-4 最有趣的行为。

  - 优化过程可能有很大的改进空间,例如通过调整学习率、更好的优化器以及更好的辅助损失来防止潜变量失效。

  - 可以进一步研究哪些指标最能反映与下游应用的相关性,并深入研究这些应用本身。比如,寻找用于控制行为的向量、进行异常检测、识别电路等。

  - 可以进一步研究专家模型(MoE)与自动编码器的结合,这将大大降低自动编码器训练的成本,并使得训练更大规模的自动编码器成为可能。

  - 在发现的特征中,特别是在 GPT-4 中,很多随机激活的特征尚未充分单义化。通过改进技术和扩大规模,这个问题是可以克服的。

  - 目前的探测指标噪声较大,可以通过增加任务的种类和提高任务质量来改进。

  - 目前选择使用 N2G 进行自动评估与解释是因为它的计算效率高,但只能捕捉非常简单的模式。之后可以开发更具表现力且成本低廉的解释方法,以提高解释精度。此外,仍没有好的方法来检查解释的有效性。

  SAE 可以在模型中的某一点找到特征,但这只是解释模型的第一步。我们需要更多的工作来了解模型如何计算这些特征,以及这些特征如何在模型的其余部分的下游使用。

  此外,SAE 无法捕获原始模型的所有行为。为了完全映射前沿 LLM 中的概念,我们可能需要扩展到数十亿或数万亿个特征,即使改进了扩展性,如此大的特征规模也将是一个挑战。

  希望有一天,可解释性能够提供新的方法来推理模型的安全性和鲁棒性,并通过对强大的 AI 的行为提供强有力的保证,才能显著增加我们对模型的信任。

  参考资料:

  https://openai.com/index/extracting-concepts-from-gpt-4/