SkillSmith:DeepMind 让 LLM 直接读写技能权重,压过纯文本与纯权重两条路

SkillSmith: Learning to Compose Parametric Skills and Textual Knowledge

Lucio M. Dery, Benedict Aaron Tjandra, Siavash Samiei, Adhiguna Kuncoro, Zohar Yahav, Jiajun Shen, Arthur Szlam

cs.CL

2026-07-30

DeepMind 让增强版 Gemma 3 4B 同时读文本和 prefix 权重、直接输出新任务权重;组合泛化与多语言 MMLU-ProX 上同时超过纯文本或纯权重基线。

这篇在解决什么

LLM agent 想从过往经验里学东西,通常有两条互不相通的路。一条是文本路线:把反思、记忆、few-shot 例子整理成自然语言塞进上下文。另一条是参数路线:给每个子任务微调一个 LoRA 或 prefix-tuning 模块,需要时把权重合并起来用。

问题在于这两条路是割裂的。一个 agent 已经为「英译契维语(Twi)」训好了一个 prefix 权重,也攒了「分析英文法律文书」的文字笔记,现在遇到「分析一份用契维语写的法律文书」这种新任务。它能用文字讲清楚「需要把翻译技能和法律分析技能组合起来」,却没有任何机制把这个推理连同那两个技能的权重一起,直接合成出解新任务的权重。文本路线灵活但受上下文长度限制;权重合并(平均、拼接)推理高效,但只是浅层算术,忽略了任务间的语义关系。

SkillSmith 要补的就是这个缝。

方法

核心想法是把模型权重当成一种 LLM 原生就能读写的模态,就像它读文本一样。

他们选 prefix-tuning 的 KV prefix cache 作为权重的载体,理由很实在:文本片段本来就能通过一次前向传播变成 KV cache,所以「文本衍生的 cache」和「从头训出来的 cache」天然同构,这就给两种模态之间架了桥。

SkillSmith 本身是一个增强过的 Gemma 3 4B。它在前后各加了一个 MLP 形式的 KV adapter:输入端把源任务的 prefix cache 投影进语言模型的隐空间,输出端把模型在占位 token 上产生的 KV 激活再投影回权重空间。喂给它的输入是一条精心编排的序列:一段总目标描述开头,然后交替排布每个源任务的文字元数据(<srcstart> 包起来)和它对应的 KV cache(<kvstart> / <kvend> 包起来),再接一段说明这些源任务如何组合指向目标的 combination text,最后是一串占位 token 让模型在那里「吐」出新权重。拿到输出 KV 后还要做一步 inverse RoPE 去旋转,剥掉位置信息。

它本质上是个 hypernetwork(用 LLM 当权重生成器),而且是端到端训的:梯度穿过被冻结的基础模型 Mφ 回传到 SkillSmith 的参数,Mφ 本身不动。N 默认取 2(从两个源任务合成)。

为了有干净的评测环境,他们用 Gemini 2.5 Pro 把 Super-Natural Instructions 里的任务两两配对,生成需要同时用到两个技能的组合任务,做出 Composite-SNI 数据集(约 21K 个组合任务,1.7 万用于元训练)。这样每个目标任务的「亲生父母」任务是已知的,可以排除检索噪声。

结果

评测用负对数似然(NLL),再映射成全局 Elo 分(Bradley-Terry 框架,越高越好)。

在已知源任务血统的 Composite-SNI 上,零样本(不在新任务上继续训)时 SkillSmith 超过所有权重合并基线(LERP 平均、Concat 拼接、SPoT 迁移、SVD 变体);但单纯的 in-context learning(ICL)仍然很有竞争力,说明基础模型的零样本能力本身很强。一旦允许在新任务上微调,SkillSmith 生成的权重作为初始化就把所有方法甩开。

最能说明「它真的在用权重」的消融(Composite-SNI 元评测,Elo):

输入配置Elo
无输入1209
只给 KV cache1455
只给文本(去掉 cache)1622
文本 + cache 全给1714

只用文本好过只用权重,但两者都给才最好。这同时回应了「它是不是只靠更丰富的文本才赢」的质疑。他们专门做了对照,把 SkillSmith 能拿到的全部文本直接拼到目标任务前面再训 prefix,结果仍然输给 SkillSmith,说明增益来自文本和权重的协同合成,不是单纯文本变多。

真正出彩的是 in the wild。在没有血统信息、得靠检索找源任务的 MMLU-ProX(多语言、数据稀疏、任务难)上,从 Composite-SNI 预训练 checkpoint 启动的 SkillSmith 不仅赢了所有零样本基线,还赢了所有允许下游微调的基线。数据稀缺又任务难的设置下,一个好的初始化是直接训练和均匀权重合并都追不上的。反而在原始 SNI 上(任务简单、每任务上千样本),各方法微调后挤在同一个性能天花板,SkillSmith 的优势被冲淡。

泛化性也测了:把目标任务的源任务分成「训练时都没见过」「只见过一个」「都见过」三档,SkillSmith 在每一档都明显领先。

为什么重要

这篇的意义更多在架构思路上:它示范了 LLM 可以把自己产出的模块化权重当作一种可读、可合成的模态,像处理文本一样处理权重。对做 agent 持续学习的人来说,这给了一条把「知道」(文本)和「会做」(权重)统一在一个推理框架里的具体路径,而不是像现在这样两套机制各跑各的。

它的实用价值集中在数据稀缺、任务难、又有可复用历史经验的场景(MMLU-ProX 这种)。如果下游任务样本充足又简单,直接训就够了,SkillSmith 帮不上多少。

局限与存疑

只验证了 N=2(从两个源任务合成),能不能合成更多技能、合成链条拉长后会不会衰减,论文没碰。

参数化技能只用了 prefix-tuning 这一种 PEFT 形式(KV cache)。作者说概念上能推广到 LoRA 等其他形式,但没实测,而主流 PEFT 合并工作恰恰集中在 LoRA,这个推广到底成不成立是空的。

只在 Gemma 3 4B 一个模型上做的,更大模型、更强的 base 下这套还能不能保持优势,不知道。

训练主要靠合成的 Composite-SNI(约 21K 任务),迁移到真实任务分布的效果虽然在 SNI 和 MMLU-ProX 上验证了,但覆盖面有限。

零样本下打不过基础模型自带的 ICL,意味着它必须配合一点下游数据才显出价值,不是拿来即用。

术语

原文与代码

社区讨论

相关论文

全部论文解读