在武侠小说里,同一个高手参加不同项目的比试,往往会受到不同限制:比剑时不能用暗器,切磋招式时不能催动内力。
传统的限制方式,是先让高手掌握所有武功,再通过规则要求他“不要使用”。这很像当前的大模型安全:模型已经掌握了某类知识,系统提示词、拒答训练和安全分类器负责阻止模型将其输出。
Anthropic 与 AE Studio 合作的最新研究提出了另一种思路:
不只是规定模型不能使用某项能力,而是在预训练阶段决定这项能力应当写入哪些参数,并让这些参数可以被单独加载或移除。
这项方法名为 GRAM,Gradient-Routed Auxiliary Modules,梯度路由辅助模块。
它所代表的并不只是又一种模型遗忘技术,而是一种更值得关注的方向:模型原生安全。
过去的安全技术主要控制模型“怎么回答”,GRAM 开始尝试控制模型“知道什么、擅长什么”。当大模型进入医疗、金融、工业、科研等具体行业后,这种能力边界的可配置性,可能比单纯追求一个无所不知的模型更有价值。

https://arxiv.org/pdf/2607.08077
模型为什么必须知道所有事情
当前大模型的发展逻辑,通常是让模型读取尽可能多的数据,掌握尽可能广泛的知识。
模型知道得越多,能够完成的任务越多,基准测试成绩通常也越好。
但模型进入具体业务场景后,“能力越多越好”未必始终成立。
一个企业财务助手需要理解会计制度、报表、税务和内部审批流程,但通常不需要掌握病毒培养、高级漏洞利用或者核材料处理知识。
一个面向中小学生的教育模型需要良好的语言、数学和教学能力,但没有必要同时保留所有成人内容与高风险专业能力。
一个帮助医院分析病例的模型可能需要医学和药理知识,却未必需要具备设计高风险病原体的能力。
这些额外能力平时可能不会被使用,却依然会扩大模型的风险暴露面:
因此,行业模型真正需要的未必是一个能力无限扩张的“全能模型”,而可能是:
在满足业务需求的前提下,只保留当前场景真正需要的能力。
这可以称为模型层面的最小能力原则。
软件账号需要遵循最小权限,模型本身也可以只拥有完成任务所必需的知识与能力。
传统安全控制的是输出,不是知识
目前大模型安全主要依赖几类方法。
第一类是拒答训练。模型识别到危险请求后,拒绝提供具体答案。
第二类是安全分类器。分类器在模型输入和输出侧判断内容风险,并拦截违规请求。
第三类是分级访问。普通用户使用限制更多的模型,高可信用户或研究机构可以使用能力更强的版本。
这些方法非常重要,但它们有一个共同特征:
模型底层仍然掌握相关知识,安全系统只是限制模型将知识表达出来。
Anthropic 将拒答和分类器称为模型知识之上的行为层。它们可以减少危险输出,却不能改变模型内部已经存储的能力,因此仍然可能遭到提示词越狱、对抗诱导或者后续微调。
这就像一名高手已经学会某种危险招式,只是被要求不能使用。
只要规则被绕过,能力仍然存在。
另一种更直接的办法,是在预训练数据中删除某一类知识。
例如,要训练一个不具备高级病毒学知识的模型,就把相关论文从训练集中剔除。由于模型从来没有见过这些数据,相比训练后的拒答和遗忘,数据过滤通常能够形成更稳固的能力缺口。
但数据过滤存在明显的成本问题。
假设模型需要控制四类敏感能力:
每种能力都有开启和关闭两种状态,四类能力可以形成 (2^4=16) 种组合。
如果为每种组合分别过滤数据、重新预训练模型,就需要维护大量不同版本。对于前沿模型而言,这种训练和部署成本很难接受。
GRAM 想解决的就是这个问题:
能否只预训练一次,却得到多个能力边界不同的模型版本?
GRAM:把知识放进可以拆卸的参数模块
GRAM 从 Transformer 的 MLP 层入手。
一个普通 Transformer Block 中通常包含注意力模块和 MLP 模块。GRAM 保留原有的 Core MLP,同时在每一层旁边增加若干个较小的辅助模块。
例如:
Transformer Block├── Core MLP:通用语言、推理与基础知识├── Bio Module:病毒学知识├── Cyber Module:网络安全知识├── Nuclear Module:核物理知识└── Code Module:特殊代码知识
Core 始终存在,负责模型的基础能力。
每一个辅助模块对应一类希望独立控制的知识。
当模型需要病毒学能力时,Core 和 Bio Module 同时参与推理;当模型不应当具备病毒学能力时,部署方可以关闭或直接移除 Bio Module。
论文将单层输出表示为:

其中:
从结构上看,这很像给模型增加了若干个可插拔的“能力组件”。
但 GRAM 真正关键的地方,不是推理时开关模块,而是训练时如何让知识进入正确的模块。

图 1:GRAM 在每个 Transformer MLP 中加入多个辅助能力模块。训练专业领域数据时,对应模块参与前向计算并优先接收梯度;训练通用数据时,Core 始终更新,部分辅助模块被随机激活。推理阶段可以通过移除模块控制模型能力。
核心机制不是模块,而是梯度路由
假设模型正在训练一批病毒学论文。
在前向传播阶段:
模型可以调用通用语言和推理能力,理解病毒学文本。
到了反向传播阶段,规则发生变化:
也就是说,模型可以利用 Core 理解病毒学,但从这批数据中学到的新知识,主要被写入 Bio Module,而不是扩散到整个模型。
论文使用 p_as,即 Auxiliary Spread,控制专业数据向共享参数扩散的程度。
当 p_as 较低时,专业知识更集中于辅助模块,能力隔离更彻底;但 Core 从专业数据中获得的迁移收益也会减少。
当 p_as 较高时,模型更容易学习专业知识,但这些知识也更可能进入共享参数,删除辅助模块后的能力残留会增加。
因此,GRAM 不是简单地把数据分给不同模块,而是在两个目标之间调节:
一边保证专业能力能够被学会,一边尽量减少专业知识向共享参数泄漏。
这是一种训练阶段的信息流控制。
为什么训练通用数据时,还要偶尔打开专业模块
如果 Bio Module 只参与病毒学文本训练,它可能会形成一个问题:
Bio Module 擅长病毒学,却不习惯与 Core 协同处理普通语言。
当模块被加载后,它甚至可能干扰模型原有的通用能力。
为了解决这个问题,GRAM 在训练普通网页、通用代码和普通论文时,会以一定概率随机激活一个辅助模块。
论文将这个概率称为 p_cr,即 Core Robustness。
例如,在一批普通文本中:
这样训练后,无论推理时开启哪个模块,模型的基础语言能力都不容易出现明显波动。
这也是 GRAM 与简单“把不同数据放进不同专家”之间的区别。
它并不是把模型切成若干彼此独立的小模型,而是保留一个共享 Core,再让辅助模块围绕 Core 学习专业能力。
GRAM 与 MoE 看起来相似,目标却完全不同
GRAM 的结构容易让人联想到 MoE,也就是混合专家模型。
二者都包含多个模块,但设计目标不同。
| 对比维度 | MoE | GRAM |
|---|---|---|
| 主要目标 | 扩大模型容量、降低单次计算量 | 隔离并控制特定能力 |
| 路由依据 | Router 根据 Token 动态选择专家 | 根据训练数据标签控制模块 |
| 路由粒度 | Token 级 | 数据批次或数据领域级 |
| Core 是否始终存在 | 不一定 | 始终存在 |
| 模块选择主体 | 模型内部 Router | 训练和部署系统 |
| 模块能否对应权限 | 通常不能直接对应 | 可以代表某类能力权限 |
普通 MoE 中,专家分工通常是训练过程中自然形成的。
某个专家可能同时负责代码、数学和网络安全知识,很难把它解释成一个清晰的权限单元。
GRAM 则从训练开始就明确规定:这批病毒学数据应当主要更新 Bio Module,那批网络安全数据应当主要更新 Cyber Module。
它更接近一种基于能力的数据分区。
论文的附录实验还发现,在固定参数量下,把辅助模块实现成小型 MLP 或 LoRA,并不会从根本上改变结果;真正重要的因素是训练阶段的梯度路由方式。换句话说,GRAM 的核心贡献不是某种特定模块结构,而是控制“什么数据可以更新什么参数”。
研究团队如何验证能力可以被关闭
研究团队设计了三组逐步接近真实场景的实验。
第一组:儿童故事主题
研究人员首先使用 SimpleStories 数据集。
该数据集包含约 200 万篇带主题标签的儿童故事。研究人员从 48 个主题中选择四个主题作为辅助能力,例如外星人、截止日期、历史时代和不同文化,其余主题作为 Core 数据。
这一实验的目的不是研究安全风险,而是验证一个基本问题:
能否让某个故事主题主要存储在独立模块中,删除模块后,模型对该主题的建模能力随之下降?
结果显示,一个约 2600 万参数的 GRAM 模型,可以通过不同的模块配置,近似五个分别训练的数据过滤模型。模块开启时,模型对相应主题的表现接近完整训练模型;模块关闭后,表现接近从未训练过该主题的模型。
第二组:真实双用途知识
随后,研究团队训练了一个约 8 亿参数的模型。
Core 数据包括:
辅助数据包括四类:
其中 Lisp 并不是危险知识,而是作为小众编程语言和企业专有代码能力的代理。
训练数据总量约为:
| 数据类型 | Token 数量 | 占比 |
|---|---|---|
| Core 数据 | 160 亿 | 约 99% |
| 病毒学 | 4000 万 | 约 0.25% |
| 网络安全 | 4000 万 | 约 0.25% |
| 核物理 | 4000 万 | 约 0.25% |
| Lisp 代码 | 4000 万 | 约 0.25% |
每个辅助模块的宽度约为 Core MLP 的 10%,对应约 4920 万参数。
第三组:从 5000 万扩展到 50 亿参数
研究人员进一步训练了七种规模的模型:
5000 万、1 亿、2 亿、4 亿、8 亿、20 亿和 50 亿参数。
模型规模增大时,训练数据也按照 Chinchilla Compute-Optimal 原则同步增加,用于观察能力隔离是否能够随模型规模保持。
一轮预训练,近似五个数据过滤模型
论文使用 Compute Ratio 衡量模型在不同数据集上的表现。
这个指标可以理解为:
当前模型的 Loss,相当于完整基准模型训练到多少进度时的水平。
Compute Ratio 越接近 1,表示模型越接近完整训练基准。
但不同指标的方向并不一样:
其中:
在 8 亿参数的真实数据实验中,结果如下:
| 方法 | Core ↑ | Retain ↑ | Forget ↓ | Elicit ↓ |
|---|---|---|---|---|
| 数据过滤 | 0.99 | 0.82 | 0.53 | 0.58 |
| GRAM | 0.96 | 0.97 | 0.54 | 0.63 |
| FT-LoRA | 0.95 | 0.98 | 0.51 | 0.56 |
| FT-Full | 0.96 | 0.88 | 0.52 | 0.57 |
| MaxEnt | 0.89 | 1.01 | 0.46 | 0.91 |
GRAM 在 Core、Retain 和 Forget 上整体接近数据过滤。
换句话说,关闭某个 GRAM 模块后,模型在对应领域上的表现接近一个从预训练阶段就没有见过相关数据的模型。
但训练成本明显不同。
为了得到五种能力配置,数据过滤需要进行五次训练;GRAM 只需要一次训练。论文中,数据过滤消耗约 5 倍训练 FLOPs,而 GRAM 的训练 FLOPs 与基准模型大致相当。
GRAM 的总代价是增加了辅助参数:
这意味着 GRAM 用大约 40% 的额外 MLP 存储,换取了多种可配置能力组合。

图 2:在真实双用途数据上,GRAM 的能力保留与移除效果接近数据过滤,但只需要一次预训练。MaxEnt 在关闭能力后看似获得了更低的 Forget 指标,但少量微调后 Elicit 指标迅速回升,说明能力主要被压制而非真正隔离。
为什么“训练后遗忘”不如“训练时隔离”
MaxEnt 是一种后训练遗忘方法。
它在模型训练完成后,通过提高模型在目标数据上的输出熵,让模型难以正常回答相关问题。
从 Forget 指标看,MaxEnt 达到 0.46,甚至低于 GRAM 的 0.54,看起来遗忘得更彻底。
但是经过少量目标领域数据微调后,MaxEnt 的 Elicit 指标迅速恢复到 0.91,接近完整模型的水平。
这意味着相关知识很可能仍然保留在模型参数中,只是暂时无法正常表达。
可以把两种方法理解为:
前者类似于让一个人学会某项技能后假装不会。
后者则试图让这项技能集中存储在一个可以移除的模块中。
当然,GRAM 也不能保证绝对删除。专业知识仍可能通过通用语料、概念迁移和其他领域知识进入 Core。但从实验结果看,训练时限制梯度流向,确实比训练后的行为压制更难通过少量微调恢复。
GRAM 并没有全面击败 LoRA
这篇论文容易被过度解读为“GRAM 明显优于 LoRA”,但实验并不支持这么简单的结论。
在主要的真实数据实验中,FT-LoRA 与 GRAM 表现非常接近:
在这一特定实验条件下,LoRA 是一个很强的基线。
GRAM 真正表现出优势的,是另外两个场景。
1. 多种能力的组合
研究团队分别测试了:
GRAM 从来没有在“四个模块同时开启”的配置下训练过,但推理时同时加载四个模块后,各领域能力仍然能够比较稳定地组合。
相比之下,多个 LoRA Adapter 直接相加后,所有领域的表现均出现不同程度下降。
这意味着 GRAM 的辅助模块具有更好的组合性。
四个模块理论上可以形成 16 种能力配置,而不需要分别训练 16 个模型。
2. 只有一半训练数据具有标签
实际预训练数据不可能全部拥有准确的领域标签。
研究团队将 50% 的数据标签删除。在没有标签的批次中,GRAM 让 Core 和全部辅助模块共同参与训练;数据过滤和 FT-LoRA 则把未标注数据视为普通 Core 数据。
结果如下:
| 方法 | Core ↑ | Forget ↓ | Elicit ↓ |
|---|---|---|---|
| GRAM | 0.96 | 0.60 | 0.76 |
| 数据过滤 | 0.99 | 0.85 | 0.85 |
| FT-LoRA | 0.99 | 0.85 | 0.86 |
GRAM 在只有一半数据有标签的情况下,获得了明显更低的 Forget 指标。
研究团队推测,当某个模块已经通过部分标注数据形成专业化后,即使遇到没有标签的同领域数据,相关梯度也更容易被这个模块吸收。
论文将这种现象称为 Absorption Effect,吸收效应。
不过目前这仍然是一种经验观察,研究团队尚未完全解释其内部机制。

GRAM 在同时开启多个能力模块时,能力组合比多个 LoRA Adapter 更稳定。

当只有 50% 训练数据具有标签时,GRAM 的 Forget 指标明显低于数据过滤和 FT-LoRA。
模型越大,能力开关越有效吗
从 5000 万到 50 亿参数的实验显示,GRAM、FT-LoRA 和数据过滤呈现出相似的趋势:
表面看,这意味着模型越大,能力隔离效果越明显。
但这里必须注意“相对指标”和“绝对能力”的区别。
论文使用的 Compute Ratio,是相对于同规模完整模型的训练效果进行归一化。
一个 50 亿参数的模块关闭模型,虽然与同规模完整模型之间的差距更大,但它在绝对意义上的病毒学能力,仍然可能高于一个 5000 万参数的完整模型。
Anthropic 在研究文章中特别提醒:
更大的模型即使关闭了相关模块,在被关闭领域上的绝对能力仍然可能更强。
因此,Figure 7 证明的是:
专业模块带来的相对能力增量更容易被隔离。
它并没有证明,关闭模块后模型的绝对能力已经下降到某个安全阈值以下。
此外,20 亿和 50 亿参数实验都只运行了一次,没有像小模型一样进行三次独立训练;50 亿参数模型的 Retain 指标还出现了异常点,作者使用虚线标注了推测值。
所以“能力隔离随规模增强”目前更适合作为一个积极趋势,而不是已经得到充分验证的规律。

从 5000 万到 50 亿参数,GRAM 和 FT-LoRA 的能力配置整体跟随数据过滤。随着规模扩大,关闭领域与完整模型之间的相对差距增加,但这不等于大模型关闭模块后的绝对能力一定更弱。
从输出可控,到能力可控
大模型可控可以被划分为三个层次。
| 层次 | 核心问题 | 典型技术 |
|---|---|---|
| 输出可控 | 模型可以说什么 | 拒答训练、安全分类器、输出审核 |
| 行为可控 | 模型可以执行什么 | 权限、沙箱、人工审批、运行时策略 |
| 能力可控 | 模型知道什么、擅长什么 | 数据过滤、模块化预训练、梯度路由 |
过去的大模型安全,大量工作集中在输出可控。
模型已经具备能力,安全机制判断它是否可以在当前请求中表达这种能力。
GRAM 探索的是第三层:
能否在模型形成能力的过程中,就定义哪些能力进入共享参数,哪些能力进入可拆卸模块?
这并不意味着输出审核和安全对齐不再重要。
模型的知识边界很难做到完全干净,模型也可能利用通用推理、外部信息和相邻领域知识重构部分能力。
但能力可控提供了新的纵深防线:即使上层拒答策略被绕过,当前模型实例中也可能并不存在完整的专业能力模块。
这正是模型原生安全与外挂式防护之间的区别。
行业模型不应只是增加知识,也需要减少知识
当前行业大模型的建设方式,通常是在通用模型上增加行业数据:
GRAM 提供了另一种视角。
行业模型不仅要考虑“增加什么”,还要考虑“移除什么”。
未来,一个基础模型可能拥有多个可配置模块:
通用基础模型├── 医疗知识模块├── 金融知识模块├── 工业控制模块├── 网络安全模块├── 企业私有代码模块└── 特定地区法规模块
医疗机构可以部署:
Core + 医疗知识 + 医疗法规
金融机构可以部署:
Core + 金融知识 + 风控规则
普通办公场景可以只保留:
Core + 通用办公能力
高可信网络安全实验室可以在受控环境中加载 Cyber Module,而普通消费者版本则不携带该模块。
这是一种产品层面的推演,论文目前并没有验证金融、医疗或工业模型。但 GRAM 所展示的机制,确实为“一个基础模型、多种能力配置”提供了技术基础。
行业模型的竞争,也可能由单纯比较参数规模和榜单成绩,逐渐转向:
对很多行业而言,一个能力边界清晰的模型,可能比一个无所不知但难以控制的模型更适合生产环境。
模型能力也可以成为一种访问控制对象
传统访问控制保护的是文件、数据库、接口和系统权限。
GRAM 尝试把“模型能力”本身变成一种可授权资源。
过去的访问控制通常是:
这个用户能否访问某个模型?
未来可能进一步变成:
这个用户可以访问模型中的哪些能力?
例如,同一个基础模型可以根据使用方的可信等级加载不同模块:
| 使用场景 | 可加载能力 |
|---|---|
| 普通公众服务 | 通用能力 |
| 医疗机构 | 通用能力、临床医学 |
| 网络安全企业 | 通用能力、漏洞分析 |
| 高可信研究机构 | 通用能力、特定双用途科研能力 |
如果模块权重可以被独立签名、加密和审计,模型部署系统还可以验证:
论文尚未实现这样的生产系统,但它提供了一个重要起点:
模型不再只有一个不可分割的能力集合,而可以拥有明确的 Capability Profile,也就是能力配置文件。
这还不是一个成熟的“知识关闭开关”
Anthropic 将这项研究称为“An off switch for dual-use knowledge”,但“关闭开关”容易让人产生过高期待。
当前研究仍然存在几个明显限制。
1. 评测的是语言建模能力
论文主要测量模型对病毒学论文、网络安全论文和核物理论文的下一 Token 预测 Loss。
模型在病毒学语料上的 Loss 上升,并不等于模型已经无法:
它证明的是领域知识建模能力下降,而不是现实危险任务能力已经消失。
2. 没有验证前沿模型
最大实验模型为 50 亿参数,与当前前沿模型仍有较大差距。
研究没有验证 GRAM 能否适配超大规模分布式训练、生产级数据管道和复杂并行架构。
3. 知识可能高度纠缠
病毒学依赖普通生物学、化学、医学和统计学。
网络安全依赖编程、操作系统、网络和密码学。
如果危险能力可以由多种通用能力组合而成,那么删除一个专业模块,也未必能彻底移除相关能力。
论文承认,某些能力可能与通用知识纠缠得过深,无法被干净分离。
4. 后训练可能重新打破边界
当前实验主要关注预训练。
但完整模型还要经历:
这些阶段可能重新把专业知识写入 Core,或者破坏辅助模块之间的隔离。
研究团队将“如何对 GRAM 模型进行指令微调”列为后续重点问题。
5. 微调攻击预算有限
研究使用约 50 万 Token 的数据测试能力恢复,并且不同规模模型使用相同的数据预算。
随着模型规模扩大,这一攻击预算在整个预训练数据中的占比越来越小。
因此,大模型表现出的恢复抵抗力,部分可能来自相对攻击预算下降,而不能简单理解为能力永远无法恢复。
模型安全不只是约束一个全能模型
过去,我们习惯先训练一个无所不知的模型,再在外部增加越来越复杂的安全规则。
GRAM 提出了一种不同的思路:
在模型学习知识的过程中,就决定知识进入哪里;在模型部署时,再决定哪些能力可以存在。
它没有取代拒答训练、内容审核和访问控制,也远没有实现真正意义上的危险知识删除。
但它改变了问题的出发点。
模型安全不一定只是约束一个已经具备全部能力的模型,也可以从训练阶段开始塑造模型的能力边界。
对于双用途知识而言,这种变化尤其重要。
病毒学、网络安全和核物理知识不能被简单定义为“有害知识”。它们对合法研究具有重要价值,同时也存在被滥用的可能。
与其让所有模型都掌握这些能力,再依赖模型判断每一次请求是否安全,不如在部分场景中直接不加载相应能力模块,只在可信且确有需要的环境中开放。
随着模型进入越来越具体的行业,真正有价值的模型可能不再是能力最多的模型,而是:
知道自己应该知道什么,也明确缺少那些不应当拥有的能力。
GRAM 还只是这一方向的早期实验。
但它让“模型可控”第一次不再只意味着控制模型的回答,也开始意味着控制模型本身的能力边界。