俯视LLM的灵魂:一文搞懂稀疏自动编码器

实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

稀疏自动编码器 (SAE) 最近因机器学习模型的可解释性而变得流行(尽管SAE自 1997 年以来一直存在)。机器学习模型正在使LLMs变得越来越强大和有用,但它们仍然是黑匣子,如何看穿LLM的灵魂,且若能理解它们是如何工作的,那对于大模型的进化有足够的帮助和启示意义。


使用SAE,可以开始将模型的计算分解为可理解的组件。本文将简介的介绍下SAE的工作原理,然后读者可以回头去温习“大模型的灵魂解读:Anthropic AI的Claude3 Sonnet可解释性研究”,应该更加深有感触。

自动编码器

神经网络最自然的组成部分是单个神经元。单个神经元并不对应于单个概念。语言模型中的任何概念,例如学术引用、英语对话、HTTP 求和韩语文本都是神经单元的叠加,或者换句话说是神经元的组合表示。

产生这种现象的原因可能是因为世界上存在的很多变量是稀疏的。例如,一个名人的出生地可能不到十亿分之一的训练Tokens,LLMs在训练的过程中掌握了这点,加上训练的Token远远大于神经元的数量,因此自然而然就会进行叠加表示。

稀疏自动编码器最近作为一种将神经网络分解为可理解组件的技术而广受欢迎。SAE 的灵感来自神经科学中的稀疏编码假说。有趣的是,SAE是解释人工神经网络的最有前途的工具之一。SAE 类似于标准自动编码器。

常规自动编码器是一种神经网络,旨在压缩然后重建其输入数据。例如,它可以接收一个 1000 维向量(1000个数字的列表)作为输入,通过编码器层馈送该输入以将输入压缩为512维向量,然后通过解码器馈送压缩编码表示以产生1000维输出向量。重建通常是不完美的,因为压缩过程会有信息损失。

稀疏自动编码器将输入向量转换为中间向量,该中间向量的维度可以高于、等于或低于输入。当应用于LLM时,中间向量的维度通常大于输入的维度。在这种情况下,如果没有额外的约束,任务就很简单。

SAE可以使用单位矩阵完美地重建输入,作为额外的约束,在训练过程中的损失函数中添加了稀疏性惩罚,这会引导SAE创建稀疏中间向量。例如,可以将1000维输入扩展为200维编码表示向量,并且可以训练SAE使其在编码表示中仅包含约20个非零元素。

上图中黑色的方块代表着稀疏的激活值

将SAE应用于神经网络中的中间激活,神经网络可以由许多层组成。在前向传递期间,每层内部和之间都有中间激活。例如,GPT-3有96 层。在前向传递期间,输入中的每个标记都有一个12,288 维向量(包含 12,288 个数字的列表),该标记从一层传递到另一层。此向量累积了模型在每一层处理下一个Token时用于预测下一个Token的所有信息,但它是不透明的,很难理解其中包含哪些信息。

若使用SAE来理解这种中间激活的方法如下:SAE基本上是一个矩阵 -> ReLU 激活 -> 矩阵。例如,如果GPT-3 SAE的扩展因子为4,则输入激活为12,288维,SAE的编码表示为49,512 维 (12,288 x 4)。

第一个矩阵是形状的编码器矩阵(12,288,49,512),第二个矩阵是形状的解码器矩阵(49,512,12,288)。通过将GPT的激活与编码器相乘并应用 ReLU,我们生成了一个 49,512 维的SAE编码表示,该表示是稀疏的,因为 SAE 的损失函数激励了稀疏性。

通常的目标是在SAE的表示中少于 100个数字为非零。通过将SAE的表示与解码器相乘,我们产生了一个12,288 维重建的模型激活。这种重建并不完全匹配原始的 GPT 激活,毕竟这么一折腾,信息会有所丢失。

现在只在模型中的一个位置训练单个SAE。例如,可以在第25层和第26层之间的中间激活上训练单个 SAE。为了分析 GPT-3 中所有96层的输出中包含的信息,可以训练 96 个单独的SAE——每层一个。

上图说明了这个过程,是拿激活值出来训练。原激活值通过与编码矩阵相乘,之后通过激活函数,然后得到稀疏表示,最后通过解码矩阵还原。

如果还想分析每层中的各种中间激活,这将需要数百个SAE。对这些SAE 的训练数据来自通过 GPT 模型提供各种文本并收集每个选定位置的中间激活(样本)。

功能

SAE表示的每个活动数字都对应于可以理解的组件。假设12,288 维向量对 GPT-3 [1.5, 0.2, -1.2, ...] 来说意味着“桥”。SAE 解码器是形状矩阵 (49,512, 12,288),但我们也可以将其视为49,512个向量的集合,每个向量都是形状(1, 12,288)。如果SAE解码器向量519学习了与GPT-3相同的“桥”概念,则解码器向量将近似等 [1.5, 0.2, -1.2, ...] 。每当 SAE 激活的元素 519不为零时,就相当于对应“桥”的向量。上面描述了SAE的工作原理,用专业的术语来讲就是“解码器对应于残差流空间中特征的线性表示”。

特征519代表什么?目前的做法是只看那些能最大限度地激活功能的输入,并对其可解释性做出直觉反应。每个功能激活的输入通常是可解释的。例如,Anthropic在Claude Sonnet上训练了SAE,并发现了单独的 SAE功能,这些功能可以在与金门大桥、神经科学和热门旅游景点相关的文本和图像上激活。其他功能在不太明显的概念上激活。

这里值得一提的是,在大量的激活值上面进行训练,通过稀疏矩阵的确可以明显看到一些特征,因为这个向量大部分的数值都为0了。通过研究Decoder矩阵就可以研究大模型在学习某个知识的时候,到底是如何融会贯通的。

如果存在基于特定主题激活的神经元,那么激活某些神经元是否会强制生成这些主题?回想一下AutoEncoder结构,虽然同时拥有编码器和解码器,但在训练后,只有编码器用于将激活向量转换为字典向量。是否可以使用解码器从所选特征重建激活向量?换句话说,能操纵神经元吗?答案可以用 Anthropic 的一句话来概括:“稀疏的自编码器功能可用于干预和控制变压器的生成。” 下图单独操纵神经元以实现不同的结果。

由于 SAE 解码器向量与LLMs中间激活的形状匹配,因此可以通过简单地将解码器向量添加到模型激活中来执行因果干预。这里通过将解码器向量乘以比例因子来缩放干预的强度。当人类学研究人员将金门大桥SAE解码器向量添加到大模型的激活中时,大模型不得不每次回复中都提到金门大桥。

如何评估SAE,目前存在L0和Loss Recovered两个指标 。L0是SAE编码中非零元素的平均数。Loss Recovered是用重建的激活替换GPT或者其他大模型的原始激活并测量不完美重建的额外损失。这两个指标之间通常存在跷跷板效应,需要进行权衡,。毕竟SAE会选择降低重建精度以增加稀疏性。

许多新的SAE方法,例如Deepmind的门控SAE和OpenAI的TopK SAE,都修改了稀疏性惩罚以改善这种权衡。

下图来自 Google Deepmind的Gated SAE 论文,它引入了门控稀疏自动编码器 (Gated SAE),它比使用流行方法的训练实现了帕累托改进。在 SAE 中,用于鼓励稀疏性的 L1 惩罚引入了许多不良偏差,例如收缩 - 系统性地低估特征激活。门控 SAE 分离 “确定使用哪些方向”和“估计这些方向大小的功能”。这使得在典型的超参数范围内解决了收缩问题,具有类似的可解释性,并且只需要一半的触发特征即可实现相当的重建保真度。

门控SAE的红线更靠近图表的左上角,这意味着在这种权衡中表现更好。

应用

上图展示一种研究方法,a) 对语言模型的内部激活进行采样,无论是残差流、MLP 子层还是注意头子层;b) 使用这些激活来训练神经网络,稀疏自动编码器,其权重形成特征字典<注意是Decoder Matrix!!>;c) 使用诸如 OpenAI 的自动解释性分数之类的技术来解释生成的特征

上图以“括号”为例显示每个特征之间的关系,同时每个特征上面都有人工解释。边缘厚度表示连续残差流层中字典特征之间的因果关系强度,以消融为衡量标准。许多跨层的字典特征具有相似的解释,并且通常指向激活空间中的相似方向,以余弦相似度为衡量标准。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发HarmonyOS NEXT (一) 入门

最近总听见大家讨论鸿蒙&#xff0c;前端转型的好方向&#xff1f;先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示&#xff1a;要占用的空间比较多&#xff0c;建议安装在剩余空间多的盘 1、下载&#xff1a;官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…

滑动窗口1

1. 长度最小的子数组&#xff08;209&#xff09; 题目描述: 算法原理&#xff1a; 这题使用滑动窗口的方法来进行解决&#xff0c;而滑动窗口实际上就是通过定义同向双指针的方式来实现的&#xff0c;两个指针就是窗口的左右边界&#xff0c;然后结合这样的思想来给出这题的…

华为---配置基本的访问控制列表(ACL)

11、访问控制列表&#xff08;ACL&#xff09; 11.1 配置基本的访问控制列表 11.1.1 原理概述 访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合&#xff0c;这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。A…

MySQL数据库简介和安装

文章目录 一、数据库原理目前情况数据库的发展史RDBMS关系型数据库关系型数据库理论 二、MySQL历史发展历程关系型数据库和非关系型数据库 三、安装mysql及优化yum安装编译安装mysql二进制安装优化操作 四、 安装mycli插件客户端工具 一、数据库原理 目前情况 我们正处于一个…

Servlet中请求转发【 Forward】与重定向【Redirection】的区别

在Servlet中&#xff0c;请求转发&#xff08;Request Forwarding&#xff09;和重定向&#xff08;Redirection&#xff09;是用于控制请求流程的两种不同机制。它们的主要区别如下&#xff1a; 一、请求转发 服务器内部操作&#xff1a;转发是在服务器内部进行的操作&#xf…

Datax学习

DataX学习 DataX3.0概览 DataX 是一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。学习可见官网资料(https://github.com/alibaba/DataX)。 设计理念&#…

MySQL之可扩展性(六)

可扩展性 向外扩展 12.重新均衡分片数据 如有必要&#xff0c;可以通过在分片间移动数据来达到负载均衡。举个例子&#xff0c;许多读者可能听一些大型图片分享网站或流行社区网站的开发者提到过用于分片间移动用户数据的工具。在分片间移动数据的好处很明显。例如&#xff…

【JavaScript】流程控制和函数

目录 一、分支语句 1、if语句&#xff1a; 2、switch语句&#xff1a; 二、循环语句 1、while循环语句 2、for循环语句 三、函数声明 1、function 函数名(形参列表){ 函数体 } 2、var 函数名function(形参列表){函数体} 一、分支语句 1、if语句&#xff1a; if(表达式){ }else …

高考志愿不知道怎么填?教你1招,用这款AI工具,立省4位数

高中的岁月&#xff0c;就像一本厚厚的书&#xff0c;我们一页页翻过&#xff0c;现在&#xff0c;终于翻到了最后一页。但这不是结束&#xff0c;这是新的开始&#xff0c;是人生的新篇章。 高考落幕&#xff0c;学子们在短暂的放松后&#xff0c;又迎来了紧张的志愿填报。 “…

达梦数据库的系统视图v$locked_object

达梦数据库的系统视图v$locked_object 在达梦数据库&#xff08;Dameng Database&#xff09;中&#xff0c;V$LOCKED_OBJECT 视图提供了与数据库中被锁定对象相关的信息。这通常用于监控和诊断数据库中的锁定问题&#xff0c;帮助管理员了解哪些对象被锁定了&#xff0c;以及…

如何在Windows 11上设置默认麦克风和相机?这里有详细步骤

如果你的Windows 11计算机上连接了多个麦克风或网络摄像头&#xff0c;并且希望自动使用特定设备&#xff0c;而不必每次都在设置中乱动&#xff0c;则必须将首选设备设置为默认设备。我们将向你展示如何做到这一点。 如何在Windows 11上更改默认麦克风 有两种方法可以将麦克…

工商银行:低息差下的挣扎

时隔四年&#xff0c;市值再度超越贵州茅台成为A股“股王”。 今天要说的就是“宇宙行”——中国工商银行 虽然茅台的信仰开始崩塌&#xff0c;但各大银行股巨头们今年也不好过。2024年一季度六大行业绩集体受挫&#xff0c;息差普遍收窄超过20个基点。其中&#xff0c;包括工…

【Web3】Web3.js 启动!并解决Web3 is not a constructor报错

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 本节教大家如何启动Web3.js 目录 Web3 启动&#xff01; 于是很愉快的报错 创建实例&#xff01; 出来了 Web3&#xff1a;模块…

代码随想录——跳跃游戏Ⅱ(Leetcode 45)

题目链接 贪心 class Solution {public int jump(int[] nums) {if(nums.length 1){return 0;}int count 0;// 当前覆盖最远距离下标int curDistance 0;// 下一步覆盖距离最远下标int nextDistance 0;for(int i 0; i < nums.length; i){nextDistance Math.max(nums[…

指针并不是用来存储数据的,而是用来存储数据在内存中地址(内存操作/函数指针/指针函数)

推荐&#xff1a;1、4、5号书籍 1. 基本概念 首先&#xff0c;让小明了解指针的基本概念&#xff1a; 指针的定义&#xff1a;指针是一个变量&#xff0c;它存储的是另一个变量的地址。指针的声明&#xff1a;例如&#xff0c;int *p表示一个指向整数的指针变量p。 2. 形象…

Mac 微信能上网但浏览器打不开网页

文章目录 推荐 DNSMac 设置 DNS 推荐 DNS 名称首选 DNS备用 DNSGoogle8.8.8.88.8.4.4114 DNS114.114.114.114114.114.115.115阿里223.5.5.5百度180.76.76.76腾讯119.29.29.29电信101.226.4.6联通123.125.81.6移动101.226.4.6铁通101.226.4.68福建电信218.85.152.99218.85.157.…

基于elastic stack的docker-compose部署的ELK与LDAP集成

说明&#xff1a; ldap信息配置到es配置文件上&#xff0c;然后kibana读取es的配置信息 用户与角色的关系通过role_mapping.yml文件配置获取 角色与权限的关系通过elastic stack提供的DevTools或API进行维护 一、前置条件&#xff1a; 1.1 es已开启xpack&#xff08;已开启…

QQ等级评估源码+软件

今天&#xff0c;我将和大家探讨一个与直播、撸礼物相关的主题&#xff0c;它涉及到的是一种特殊的软件及其源码——QQ等级评估工具。在我们的生活中&#xff0c;直播已经成为了一种越来越流行的娱乐方式。不论是音乐会、电子竞技&#xff0c;还是日常生活分享&#xff0c;你都…

猫狗识别—静态图像识别

猫狗识别—静态图像识别 1. 导入必要的库:2. 设置数据目录和模型路径:3. 定义图像转换4. 使用GPU5. 加载没有预训练权重的ResNet模型6. 创建Tkinter窗口:7.定义选择图片的函数:8.定义预测图片的函数:9.退出程序的函数:10.创建按钮:11.运行Tkinter事件循环:12. 完整代码&#xf…

研究发现GPT-4o等较新的多模态AI模型的安全机制有不足之处

在 ChatGPT 和类似的生成式人工智能模型推出后&#xff0c;很多人都在强调安全问题&#xff0c;政府也参与其中&#xff0c;OpenAI 甚至成立了一个超级协调小组&#xff0c;以阻止未来的人工智能失控&#xff0c;但由于对人工智能安全的发展方向存在分歧&#xff0c;该小组于今…