激活工程:不改权重,直接干预模型的「想法」

举报
ySimon 发表于 2026/10/03 18:10:04 2026/10/03
【摘要】 一个越来越常见的疑问:模型内部到底有没有「概念」?它没有被显式写进任何一行代码,但当你给它一个词,某几层、某几个方向上的数值会稳定地跳一下。换个同义词,跳的还是同一批方向。把「真/假」「拒答/配合」「

一个越来越常见的疑问:模型内部到底有没有「概念」?

它没有被显式写进任何一行代码,但当你给它一个词,某几层、某几个方向上的数值会稳定地跳一下。换个同义词,跳的还是同一批方向。把「真/假」「拒答/配合」「有礼貌/没礼貌」这些语义维度拿来对比,会发现它们在激活空间里大致是线性可分的——一个方向对应一种倾向,强度就是那个方向的投影长度。

如果概念真的有方向,那么「操控想法」就不一定要动权重。这就是激活工程(activation engineering)要解决的问题:在不重新训练的前提下,读取并干预模型内部激活。

它在做三件事

激活工程不是一个单点技巧,而是一组可拆开的动作。

一、概念表示与提取。 先要找方向。典型做法是构造成对样本,比如同一句话的「肯定版」和「否定版」,分别前向传播、取某一层残差流的中间激活,做差、再在大量样本上求平均,得到一条概念方向向量。这个向量的含义不是「词的意思」,而是「这条数据里概念被激活的差异」。它的质量高度依赖对比样本是否干净——样本里混了别的变量,方向就脏。

二、概念激活检测。 方向有了,就能用它在推理时做探针:把当前激活投影到该方向上,得到一个标量分数,用来看模型此刻「是不是正在想这件事」。实践中更常用的是稀疏字典(SAE)把高维激活拆成一批近似单义的特征,再挑出与目标概念对齐的那些。要提醒一句:探针能读出相关性,不等于读出了因果,别拿检测分数当判决书。

三、激活引导。 最直接的形式是激活加法:在生成过程中,把概念方向乘以一个系数加回残差流,正系数放大概率、负系数压低概率。更细的做法有条件触发(只在特定上下文里注入)、动态系数(按语义自适应调强弱)、以及用稀疏特征叠加而非单一方向。也可以用少量数据训练一个轻量编辑模块,只改推理时的表示,权重依然冻住。这类方法常被统称表征微调(ReFT)。

和微调、提示工程的分工

三者不是替代关系,边界很清楚。

维度 提示工程 激活引导 微调
改动位置 输入文本 推理时的中间激活 模型权重
是否需要训练 不需要 一般不需要(提取方向即可) 需要
生效时机 每次请求 每次前向传播 训练后永久生效
颗粒度 粗,靠语言描述 细,可定位到层与方向 粗,整体行为漂移
成本 极低 低,但需一次探针/方向提取 高
可逆性 随时改 随时开/关,系数可调 回滚要重训或换检查点
主要风险 被指令对抗绕过 副作用与泛化不稳定 灾难性遗忘、对齐税

一句话概括分工:提示工程管说什么,激活引导管此刻怎么倾向,微调管长期成为什么。想要模型永远更诚实,微调更合适;想要它在某类问题上别乱答、且不想付训练成本,激活引导更划算;想要快速试一个行为假设,直接提示通常就够了。

工程落地的注意事项

  • 别把方向当魔法。 提取出的向量往往只在特定层、特定数据分布上有效。跨模型迁移已有初步结果,但别默认能用。
  • 副作用是常态。 放大一种倾向,常会牵动相邻维度——推理能力、格式遵循、多语言一致性都可能被蹭到。
  • 系数不是越大越好。 超过某个范围,输出会退化、重复或崩坏。上线前必须扫一遍系数曲线,找出「有效但没变形」的窗口。
  • 拿真实任务验收。 别只看探针分数或困惑度,要在目标场景的评测集上看行为,尤其是漏判和误伤的代价不对称时。
  • 安全上是双刃剑。 同一个机制既能用来压制有害输出,也能被反过来用来绕过拒答。只做防御性部署、留审计痕迹,比事后惊讶要便宜。
  • 版本要锁。 换权重、换量化精度,之前提取的方向很可能失效,把它当成模型版本的一部分来管理。

一句话

激活工程的价值不在于「又一种调模型的方法」,而在于它把可解释性和可控性接在了同一条线上:能读出来的方向,才有可能被精准地调。不训练也能改行为,这件事已经在工程上成立了;至于改得稳不稳、改过头会怎样,仍是最需要老实做实验的部分。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。