2026/4/6 11:00:46
网站建设
项目流程
原文towardsdatascience.com/scaling-monosemanticity-anthropics-one-step-towards-interpretable-manipulable-llms-4b9403c4341eGenAI Byte每天一个字节远离冒充者综合症背景/介绍单义性 vs 多义性在神经网络受人类大脑启发的 LLMs 的算法类型中神经元通常是多义性的这意味着它们的激活对多个含义和概念做出反应。另一方面如果每个神经元只代表一个含义/概念它们就是单义性的。例如LLMs 的输入“我感觉很蓝”和“我心很重”这两个短语只激活了代表悲伤或负面情绪的相同一组神经元。悲伤神经元也不会被其他概念激活。特征在机器学习中“特征”指的是作为机器学习模型输入的可测量/可观察的属性。然而值得注意的是在这项工作中“特征*”的含义有所不同。“特征”指的是训练用于预测 LLM 中间激活的稀疏自动编码器的编码层的高维层输出。请参阅下面的方法/方法部分以了解详细信息。从高层次上讲我把“特征”理解为从 LLMs 中提取并转换出来的特征。问题神经网络LLMs缺乏可解释性自从计算机视觉领域取得突破例如2012 年的 AlexNet 和许多其他 CNN卷积神经网络以来神经网络已经成为主流算法。后来在自然语言/生成式 AI 领域例如Transformers 和 LLMsTransformers也是一种神经网络也主导了许多领域并产生了不同的应用。十多年来神经网络因其缺乏可解释性而臭名昭著这主要归因于它们的激活函数的非线性和非常深/复杂的架构。很难追踪单个输入是如何与其他输入结合并转换成最终输出的。现代 LLMs 已经增长到数十亿或数万亿个参数这导致“维度诅咒”更加严重因为潜在空间的体积随着模型大小的指数增长。这种维度诅咒也使得 LLMs 更难解释。LLMs 中神经元的这种多义性使得它们难以理解和解释。如果每个神经元只代表一个含义/概念即它们是单义性的那么根据激活神经元的组合来理解最终预测就简单得多。可解释性难以扩展到 LLMshttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/591c6427fdf36a0db4ff560b44c819d1.pngAnthropic 对单层 Transformer 模型的先前研究(参考)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c2693c1e7af7e38378056d55e714d06a.pngAnthropic 对单层 Transformer 模型的先前研究(参考)在 2023 年 10 月Anthropic 发布了一篇关于使用稀疏自动编码器提供单层 Transformer 模型的单义语义特征以解释其结构的文章(参考一个注意力块 一个 512 参数的 MLP多层感知器 ReLU。结果很有希望并揭示了神经网络的可解释性。然而人们担心这些技术是否可以推广并扩展到具有数十亿甚至数万亿参数的现代 LLM。方法/方法字典学习稀疏自动编码器SAEhttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b61e575dc0e0d4aa377ca9f1ab308a48.png自动编码器作者图片与先前研究类似Anthropic 团队应用稀疏自动编码器SAE来学习 LLM 的“特征”。输入是 Claude 3 Sonnet 的中层残差流激活估计有 ~70B 个参数参考。他们选择残差流是因为它比 MLP 小这可以节省计算成本和时间。残差流还可以缓解“跨层叠加”问题即神经元激活基于多个层的组合从而有助于 SAE 的特征提取。他们选择中间层因为已经证明特征可能更有趣和抽象(参考 1, 参考 2)。这很有道理因为 CNN 也表明早期层有非常基本的、不同角度的线条。随着层变得更深特征变得更加复杂具有不同的形状和更抽象见下文图片。我怀疑最终层会过于抽象而难以理解所以中间层是一个安全的选择。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4e62987f245e065bda918f104db13b2b.pngCNN 中从早期层到后期层的特征(参考)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cd9a2a3c3f1cd87246aa747474aa8c90.png特征激活 f(x)参考x是 Sonnet 的激活。编码器通过将编码器权重矩阵W^(enc)与x相乘加上编码器偏置然后应用 ReLU 函数来生成特征激活f(x)。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/366b7c5ba05e63f003dbf0949904d56a.png重建的 Sonnet 激活x^ref为了重建 Sonnet 激活解码器将解码器权重W^(dec)与特征激活f(x)的乘积相加然后将其添加到解码器偏置。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/82dca6ed3f18f3e2ac78dcbfaa743ed9.png自动编码器损失函数 (ref)损失函数包含 LLM 激活重建错误的 L2 惩罚和特征激活的 L1 惩罚。应用 L1 惩罚是它被称为稀疏自动编码器的原因因为 L1 惩罚会鼓励每个输入样本只有少数神经元被激活。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3493cd654ef25f29e4d811b7498897a7.png特征向量即特征方向 (ref)包含解码器权重W^(dec)有助于使上述项成为归一化向量从而纯粹关注特征方向不考虑向量的幅度。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/87fc500f865c26b849b49e1853e165f4.png特征激活 (ref)使用上述乘积有助于防止模型通过使f(x)变小和解码器权重W^(dec)变大来实现不变的重建激活来作弊。通过缩放定律指导稀疏自动编码器 (SAE) 训练在 LLM 上训练 SAEs 是计算密集型和资源消耗型的。我们不仅希望明智和高效地使用资源而且希望为更多特征实现最佳学习结果更低的损失。给定计算预算Anthropic 团队应用了缩放定律来优化超参数1) 学习的特征数量和 2) 数据量即每个训练周期的训练步数3) 学习率https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/85851982f5a12ef1c442ca7b83fe1526.png当log(compute)更大时损失更低 (ref)我们可以通过只改变一个因素同时固定所有其他因素来运行实验以找到缩放定律。缩放定律在这些线性关系中被发现1) 当log(compute)更大时损失更低https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/043ba019985ccb03c935d23f3dda0802.png当最优特征数量更多时损失会更低 (ref)当给定固定计算量时最优特征数量更多时log(loss)更低https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/67ab11bc74be5b294d9aa8652473abe1.png当最佳训练步骤数量更多时损失更低 (ref)当给定固定计算时最佳log(training steps)log(loss)更多时log(loss)更低https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/102790b53cdd4f24b7112f8c6949da9c.png当log(compute)更大时特征的最佳数量和训练步骤的数量都更多 (ref)当log(compute)更大时最佳特征数量更多5) 当log(compute)更大时最佳训练步骤数量更多。通过使用上面的图表给定一个计算预算我们可以找到最佳的特征数量和训练步骤数量。当log(compute)更大时最佳学习率作为幂律更少。通过这一发现我们可以找到一个计算预算下的最佳学习率。结果/发现/创新从 70-B Sonnet 中学到的特征是可解释的、多语言的、多模态的并且可以推广到具体和抽象的参考。这项工作的突破是成功地将字典学习应用于具有数十亿参数的现代 LLM并找到了可解释的特征。Anthropic 团队展示了许多可解释特征的例子。我发现这个 “热门旅游景点” 特征很有趣因为 LLM 需要理解这个相对更抽象的“热门”概念并且需要记住那些世界著名的景点。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9f85fc36cf1b531813bcee3825e2db01.png热门旅游景点特征 (ref)在不同输入之间的分布中显示的更高特征激活水平对应于输入中存在的更强概念。这代表了高度特异性如果一个特征被激活即分布中的右侧那么输入大部分时间都由相应的概念组成例如埃菲尔铁塔金字塔。您可以点击橙色图标 (link) 来查看更多该特征的示例。我强烈建议您探索他们的特征页面。更令人惊讶的是即使 SAEs 只通过文本数据集进行训练特征也是多模态的也就是说当一个特征被激活时文本和图像都会有相同的对应概念。这也表明 LLMs 理解文本和图像并以相同的方式对齐它们的概念因此触发相同的特征。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/310b003df358f54e52b806665cdbf6a1.png金门大桥特征 (参考)有趣的是这些特征也是多语言的他们还发现这些特征可以响应同一想法的抽象和具体实例。例如特征“安全漏洞”会在讨论安全漏洞的抽象讨论和具有安全漏洞的代码中激活。特征引导以特定且可解释的方式改变模型输出https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7890d01ea5fcdb7440f152ebc0483cb2.png特征引导示例 (参考)这种特征引导对我来说是最具突破性和吸引力的发现。Anthropic 团队通过在 SAE正负中钳位特定特征来修改重建激活从而改变了 LLMs 的残差流活动。然后他们使用修改后的残差流活动运行以下正向传递以生成 LLM 输出。然后输出会受到特定特征的影响。例如上面的图像在正向钳位受欢迎的旅游景点特征后LLM 变成了回答埃菲尔铁塔https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aa47ece67d48d537d97c0490876a6c4a.png通过正向钳位代码错误特征来影响 LLM 生成代码错误 (参考)https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fe05e6f1749284396f4838d9f6f1a0f0.png通过负向钳位代码错误特征来影响 LLM 修复代码错误 (参考)他们还发现了一个关于“代码错误”的超级有趣的特征。正向钳位它会导致有错误的代码。然而用有错误的代码输入负向钳位会导致修正的输出。这些发现证明了我们如何通过改变 LLM 中间激活来以特定且可解释的方式影响 LLM 输出因此我怀疑 LLM 的未来方向将从提示工程转向通过特征引导的激活工程**。**识别影响下一个标记生成的因果特征除了影响 LLM 输出外这些特征还可以用来识别对下一个标记生成有因果重要性的特征。这可以通过特征归因或消融来实现。通过归因或消融进行的这项研究是必要的因为特征激活水平与因果性之间的相关性不好。特征归因(ref)使用局部线性近似来估计关闭一个特征对生成下一个标记的影响。由于近似特征归因速度更快但精度较低。特征消融将特征限制为零然后进行前向传递以测量影响这更准确但速度较慢。通过逐个消融特征我们可以发现导致 LLM 输出变化更多的特征将具有更大的因果重要性。在实践中他们使用归因作为初步筛选来寻找因果特征候选者然后运行消融以确认它们与下一个标记生成的因果关系。许多特征与安全性相关Anthropic 团队确定了包括欺骗、拍马屁、偏见和危险内容在内的许多与安全性相关的特征。在这里我将只举一个例子。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6472dd41d022e1ca95e5ca395a017b85.png通过限制特征来影响 LLM 不忘记一个单词(ref)在上述例子中最初LLM 遵循忘记单词波士顿的命令。通过积极限制内部冲突特征LLM 对揭示波士顿的反应不同同时向之前的响应(“我实际上没有一种故意忘记提供给我的信息的方法”)传达了冲突的信息(“我将尝试忘记单词波士顿”)。通过积极限制诚实特征LLM 诚实地回答了波士顿。我们为什么要关心重要性可解释的 LLM这项工作在 LLM 可解释性方面取得了显著的进步。一个更可解释的 LLM 可以赢得人类的信任并帮助推进 LLM 的研究这可能导致重要的突破。此外这种可解释性使我们能够理解 LLM 并促进检测 LLM 的不当行为。可操纵的 LLM通过特征引导我们可以以我们偏好的特定方式改变 LLM 的行为。因此我预测 LLM 的未来发展方向将是激活工程而不是提示工程。实质上我们可以通过改变 LLM 内部的中间网络激活来引导 LLM 生成的输出而不是从输入上影响 LLM。特征引导可以比调整提示中的字符和措辞/用词更直接、更有效地控制 LLM 的行为。例如为了减少幻觉我们通过负向夹紧幻觉特征而不是在提示中写“不要使用你自己的知识”。更重要的是通过利用与安全相关的特征来调节 LLM 的行为我们可以进一步确保随着 AI 系统变得更加强大它们仍然保持安全并与人类价值观和伦理标准保持一致。在激活工程方面不同的参数可以调整以优化输出。首先我们在哪个层插入修改后的激活即网络的深度以进行更改目前Anthropic 团队仅选择了中间层作为第一次尝试。如果我们选择更靠近输入的早期层那么可能会有更多具体特征对输出的影响可能不那么直接更接近提示。如果我们选择更靠近输出的后期层那么可能会有更多抽象特征对输出的影响可能更直接。第二我们夹紧特征的程度和方向正/负是多少即特征引导的幅度和方向根据 Anthropic 团队的研究将激活夹紧在特征最大活动的 10 到 -10 倍之间可以产生最佳结果。然而最佳值可能因特征而异可能取决于扰动的深度。第三在实践中我们可能更倾向于同时调整多个特征以实现针对我们的 GenAI 系统和特定用例的优化输出。例如我们可能抑制某些与安全相关的特征例如有害性、毒性和偏见同时增强那些促进逻辑清晰和简洁性的特征以产生有效的执行摘要。参考文献transformer-circuits.pub/2023/monosemantic-featurestransformer-circuits.pub/2024/scaling-monosemanticity/GenAI Byte日积月累远离冒名顶替综合症。GenAI Byte 致力于提供最新的GenAI以易于消化的byte-sized 篇幅提供见解。无论你是专家还是好奇的初学者GenAI Byte 都能将复杂的概念和新闻简化为清晰易懂的文章。我的目标是让您保持最新信息在快速发展的 GenAI 领域中保持领先通过有价值的知识和实用见解来加深您对这一变革性技术的理解。跟随我获取更多 GenAI Byte如果您有任何评论或问题请在下方留言。谢谢。我是林杰C3.ai的首席数据科学家GenAI我对 GenAI 充满热情。您可以在我的 Medium 文章上查看我的其他文章并在LinkedIn上关注我