【机器学习】SAE(Sparse Autoencoders)稀疏自编码器

SAE(Sparse Autoencoders)稀疏自编码器

0.引言

大模型一直被视为一个“黑箱”,研究人员对其内部神经元如何相互作用以实现功能的机制尚不清楚。因此研究机理可解释性(Mechanistic Interpretability)就成为了一个热门研究方向。大模型的复杂之处在于“叠加”(superposition)现象,即一个神经元的激活可能同时是多个完全不相关特征的组成部分,简单说例如“哈基狗”的特征可能需要激活一组神经元(我们称之为集合N),而表达“小黑子”,则需要激活另一组神经元(集合M);叠加现象就意味着,集合N和M之间存在交集,这就导致我们很难通过观察单个神经元的激活,来断定它究竟在“想”什么。最理想的情况肯定就是一个神经元对应一个特征,而SAE做的就是这样的事情,将这种叠加状态剥离出来,类似一种升维再投影的过程。

1. SAE的工作机制

稀疏自编码器(SAE)通过一个巧妙的“先扩展、后压缩”的过程,来解构神经网络内部复杂的叠加状态。它首先通过编码器将输入向量投射到一个维度远高于自身的特征空间,然后经由解码器将其重建回原始维度。其训练目标看似简单——让输出与输入尽可能一致,但真正的精髓在于训练过程中施加的“稀疏性惩罚”。

这个惩罚机制迫使那个高维的中间向量变得极其稀疏,大部分维度上的激活值都因过小而被忽略或置零。这正是SAE设计的核心所在:它认为,之所以会出现多个神经元功能叠加的“杂糅”现象,根源在于表达空间不足。因此,通过提供一个巨大的潜在特征空间,并强制模型每次只使用其中一小部分,SAE就能有效地将不同的特征分离到不同的维度上,力求达到“一个维度代表一个精细特征”的理想状态。

Diagram of a sparse autoencoder

当然,这是一个有损的转换,总要在重建的“准确性”和特征的“稀疏性”之间做出权衡。SAE的训练,本质上就是在寻找这个最佳平衡点的旅程。下图纵轴可以看成代表信息的保留率(信息损失恢复率),横轴可以看成稀疏向量中激活的个数(L0 范数是衡量一个向量稀疏程度的指标;L0 范数越小,代表这个向量越稀疏),最理想的SAE效果就是接近左上点(0,1)。

Gated SAE L0 vs Loss Recovered

理想情况下,SAE表示中的每个激活的数字都对应于某个可理解的组件。假设,当大模型处理一段Python代码时,其模型内部的一个12288维的激活向量 [0.8, -2.1, 5.5, ...] 对它来说就意味着**“这是一个Python代码块”**。这个向量不仅仅代表“代码”,它还可能包含了代码的结构、缩进、常见关键字等语法风格的复杂信息。

现在,我们有一个SAE,其解码器是一个形状为 (49512, 12288) 的巨大矩阵。我们可以把这个解码器看作是一个拥有49512个“概念定义”的字典,每个“定义”都是一个12288维的向量。

假设,经过训练,这个SAE中编号为 #8888 的特征,其使命就是专门识别和表示“Python代码”。那么,该特征对应的解码器向量(Decoder Vector #8888),就会在数值上非常接近GPT-4内部代表“Python代码”的那个向量,即约等于 [0.8, -2.1, 5.5, ...]

Diagram of a sparse autoencoder with bolded feature 1

2. SAE的应用——如何确定SAE中的特征和实际特征的关系

定性分析:分析最大激活输入 (Maximally Activating Inputs)
  1. 首先,在一个非常庞大的、多样化的数据集(例如包含数十亿个句子的文本库)上运行大语言模型,并记录下每一个SAE特征在处理每个文本片段时的激活值。
  2. 然后,针对某一个你感兴趣的SAE特征(例如特征编号317),找出那些让这个特征产生最高激活值的文本输入。
  3. 最后,由人类研究员来审查这些“最大激活样本”,并试图找出它们之间共同的、可被人类理解的模式或概念。
因果干预 (Causal Interventions)
  1. 基于第一步的定性分析,假设已经对一个特征有了一个假设(例如,“特征317代表‘哈基狗’这个概念”)。
  2. SAE的解码器部分为这个特征学习到了一个向量,这个向量被认为是“哈基狗”这个概念在模型激活空间中的“真实方向”。
  3. 研究员可以在模型处理任何输入时,人为地将这个特征的解码器向量添加到模型的中间激活中。

当Anthropic的研究人员将他们认为是“金门大桥”特征的向量注入到Claude模型的激活中时,Claude在每一个回答中都被迫地开始提及金门大桥。这个实验强有力地证明了该特征与“金门大桥”这个概念之间的因果关系。

最后,强烈推荐一下Adam Karvonen大佬的https://adamkarvonen.github.io/machine_learning/2024/06/11/sae-intuitions.html笔记,看了十几个视频笔记,还是这篇讲解得最到位。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音授权登录-获取用户授权调用凭证

实现微信小程序获取抖音授权,使用Java实现抖音授权登录,您需要使用抖音开放平台提供的API 第一步 :抖音获取授权码 前提条件 •需要去官网为应用申请 scope 的使用权限。•需要在本接口的 scope 传参中填上需要用户授权的 scope,多个 scope 以逗号分割。•用户授权通过后…

普通人怎样用好Deepseek?

今年4月份左右(2025年),我在上班路上开车,一边听着「黑客与画家」的播客,一边想着字节的Trae为啥能够远程编程,而我的poclogsender[1] [2]却只能在本地打日志,3天之后,借助deepseek我…

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…

织梦dedecms {dede:sql} LIKE模糊查询问题 多出‘号

我们在用到dede:sql这个标签时候,查询语句中 LIKE %~title~%,~title~这个like后会出现单引号,造成查询出错或者没有结果,下面就需要修改一下sql.lib.php这个文件,我们需要把自动为语句添加单引号去掉。 找到/include/…

Cursor-1.0安装Jupyter-Notebook,可视化运行.ipynb文件中Python分片代码

Cursor 1.0是AI代码编辑器的里程碑的最新版本。 Cursor - AI 代码编辑器 Cursor - The AI Code Editor 下载 Cursor 我使用的Cursor版本信息 Version: 1.0.0 (Universal) VSCode Version: 1.96.2 Commit: 53b99ce608cba35127ae3a050c1738a959750860 Date: 2025-06-04T19:21:39.…

SQL进阶之旅 Day 28:跨库操作与ETL技术

【SQL进阶之旅 Day 28】跨库操作与ETL技术 文章简述 在现代数据驱动的业务场景中,数据往往分布在多个数据库系统中,如MySQL、PostgreSQL、Oracle等。如何高效地进行跨库操作和**数据集成(ETL)**成为数据工程师和数据库开发人员必…

Flutter之GetX框架的使用

文章目录 前言GetX使用建议状态管理GetX快速上手GetX基本功能介绍**核心作用****代码示例****关键细节****性能建议** 参考链接 前言 在Reddit上,诟病GetX的声音很多,主要是说它做的事情太多,不是单一功能组件,违反单一职责原则。…

Kettle数据抽取(二)

一、脚本运用 从本地ORACLE11 数据库 抽取数据到 华为MYSQL8.1 数据库 抽取前先删除MYSQL8.1 数据库中emp_dept_salgrade表原有数据,避免重复 二、插入表更新 事实上前面一种方法不是增量处理,因为是全部删除合部重新写入相当于初始化一样,这种情形,如果数据量较大,如有1…

一套高质量的博客平台、社交应用UI

这是一套移动端UI设计素材包含14个高质量PSD文件,涵盖博客社交类APP的核心页面,包括登录界面、动态展示、文章详情、聊天会话等常用场景。所有素材均为可编辑PSD格式,支持快速二次开发,适用于移动网站和APP项目。资源提供完整的UI…

麒麟信安支撑2025年电力监控系统安全运维新技能推广应用示范培训班顺利举办

近日,由国调中心主办、国网技术学院电网运行培训部承办的“2025年电力监控系统安全运维新技能推广应用示范培训班(第一期)”顺利举办。电网运行培训部高度重视本次培训组织工作,在国调中心的指导下,精心编制培训方案&a…

支付系统架构图

简明产品架构图 1. 商户门户 商户通过该门户管理与支付平台的所有互动,包括: 登录:商户进入系统,进行身份验证。 入驻:新商户注册并加入平台,开始使用支付服务。 订单管理:商户可以管理自己…

企业如何一键复制 DolphinScheduler 项目到新项目服务器?全套自动化方案来了!(企业不外传的实用工具)

在企业生产实践中,常见的一种场景是:一个大数据调度项目需要为多个客户分别部署在不同服务器上,而每个客户的任务逻辑、工作流结构、资源文件基本相同。这种情况下,如果每次都手动创建 DolphinScheduler 项目、上传资源文件、配置流程和参数,不仅浪费大量时间,还极容易出…

Oracle中10个索引优化

Oracle数据库作为一个功能强大的企业级数据库系统,对于索引的优化有着丰富的技巧和方法。理解和运用这些技巧可以显著提高数据库性能。 示例代码: – 假设我们有一个员工表 CREATE TABLE employees ( emp_id NUMBER PRIMARY KEY, name VARCHAR2(100), de…

【cv学习笔记】YOLO系列笔记

写在前面:本文主要介绍YOLO系列的整体框架,以及改进点的介绍。前面有型号的类型是经典,常被应用,YOLOv5,YOLOv8,和YOLOv11是ultralytics公司作品 *YOLOv5 Ultralytics YOLOv5 -Ultralytics YOLO 文档 YOL…

Ubuntu下搭建Black Magic Probe (BMP) 编译环境

版本和环境信息如下: PC平台: Windows 11 专业版 虚拟机运行平台:Oracle VM VirtualBox 7.1.6 Linux虚拟机: Ubuntu24.04 Debug调试器: BlackMagicProbe(BMP) 开源调试器:WeAct STM32F103CBT6 BluePill 核心…

Spring Cloud Gateway 动态路由实现方案

动态路由的核心需求:在不重启网关的情况下,实时修改路由规则。以下是 4 种实现方案: 方案 1:基于内存的动态路由(RefreshRoutesEvent) 适用场景:临时修改,重启失效 Autowired pri…

Flutter 路由守卫全面解析:从原理到实践

路由守卫是现代移动应用开发中不可或缺的重要机制,它如同应用的"安检系统",在页面跳转前进行必要的检查和拦截。本文将深入探讨 Flutter 中路由守卫的实现原理、多种实现方案以及实际应用场景,帮助开发者构建更安全、更可靠的 Flut…

mysql表备份数据,改表名

mysql表改表名 在MySQL中,直接更改表名并不是一个操作,因为MySQL不允许直接更改表的名称。但是,你可以通过创建一个新表,然后将旧表的数据复制到新表中,最后删除旧表的方式来实现更改表名的目的。这个过程通常被称为“…

开疆智能ModbusTCP转Canopen网关连接汇川AM403PLC与编码器配置案例

二、AM403作为Modbus四主站的配置过程 1.将AM403设为主站 AM403本体带一路EtherNET园囗(CN3),本例使用该网口作为ModbusTCP通讯口.如下图所示展开项目树,从设备树中找到网络组态(或者Network Configuration): 双击该节点标题打开网络组态设置界面&…

Charles里怎么进行断点调试

Charles进行断点测试的核心目的是通过主动拦截并篡改网络请求与响应数据,构建特定测试场景以验证系统健壮性和逻辑正确性,主要服务于以下关键场景: 🔧 一、验证后端逻辑健壮性 绕过前端校验 修改前端受限参数(如超长字符串、特殊字符),测试后端对异常输入的过滤与容错…