玩过扩散模型的人都碰过这个需求:社区里一个画风 LoRA 很棒,一个角色还原 LoRA 很强,还有一个打光 LoRA 很专业——能不能合并成一个,一次生成全都要?理论上只是几个小文件相加,实际上几乎所有试过的人都得到了同一结果:画风串味、角色崩坏、细节丢失。合并得越多,事故越彻底。
一篇入选 ICML 2026 的工作 SSR-Merge(vivo BlueImage Lab 与南京大学合作)给出了不同的解题思路:不在参数空间做算术,在信号空间做路由。更关键的是——不需要训练,不需要调参。
老方法为什么注定互相打架
现有合并方法全部在参数空间里动手:直接相加(任务算术)最简单,两个 LoRA 改了同一批参数,加在一起就是互相覆盖;TIES、DARE 这类稀疏化方法先剪掉一部分参数再加,冲突确实缓解了,代价是"丢卒保车"——靠牺牲一部分能力换稳定,任务一多就藏不住了。
一个直观实验能看清问题:给合并后的模型输入不同任务指令,观察每个 LoRA 模块的激活强度。理想情况是一条干净的对角线——哪个任务的指令就激活哪个模块。用 DARE 合并的模型激活图一片通红:一个指令进来所有模块都被唤起,信号在共享参数里四处串音。参数空间里不同任务的更新本来就你中有我,怎么剪怎么加权都是在纠缠状态下做取舍。

换个战场:信号路由三步走
SSR(Subspace Signal Routing)把问题搬进信号空间,三步不需要任何训练:
- 合并通道:把 K 个 LoRA 的下投影矩阵沿秩方向拼接、上投影矩阵横向拼接,构造统一子空间。所有任务的信号挤进同一条通道——这是串扰的物理基础,也是路由的前提;
- 解混:拿一小批校准数据跑一次前向,统计各路信号的相关矩阵 G,乘上 G 的逆,就把缠绕在一起的信号按统计规律拆开——好比几个人同时说话被一支麦克风录成混音,知道怎么混进去的,就能反向拆出来;
- 导航:构造方向矩阵 Q,把解混后的第 i 路信号对准第 i 个 LoRA 的出口,不让它串进别人的通道。
路由器 R = QG⁻¹ 的角色像网络交换机:不关心数据包内容,只负责让每个包走对路。

数学上它恰好等价于最小二乘估计的投影——不是接近最优的启发式,是让合并后特征重建误差最小的唯一解析解。
工程落地账本
真正决定能不能用的,是这几条工程特性:
| 项目 | 数值/做法 | 意义 |
|---|---|---|
| 校准成本 | 每任务一条代表性提示词,一个时间步前向 | 不需要数据集和真值图像 |
| 内存 | 流式累加协方差,复杂度 O((Kr)²) | 常数级,不缓存全量激活 |
| 合并耗时 | FLUX.1-dev 合并 9 个 LoRA 全程 34.26 秒 | 比 TIES 快约 2.6 倍 |
| 部署形态 | 路由器吸收进上投影矩阵,产物是标准 LoRA | 推理零额外开销,现有生态直接加载 |
最后一条最实用:合并产物在结构上就是一个普通 LoRA,ComfyUI 等工具链照常加载,社区里那些靠参数算术的合并节点做不到这一点。

效果与边界
最严苛的 9 任务合并下,单任务保真度(DINOv2 相似度 0.6713)超过最强基线,且从 3 任务到 9 任务始终保持在单任务上限九成以上的恢复率;多任务同图生成成功率 91%,比 DARE 高出 29 个百分点——稀疏化方法的表面稳定是靠丢任务换的,成功率把这笔账暴露了。

它的边界也要说清楚:方法优化的是局部线性重建目标,不保证完整非线性扩散过程全局最优;被合并的任务存在严重域冲突或高度语义重叠时,信号本身就难区分,性能会掉。另外动手复现前注意底座授权——FLUX.1-dev 是非商用许可,业务落地前先过一遍法务。复现验收可以走两条硬指标:一是构造探测指令看各 LoRA 模块的激活矩阵是否收敛到对角结构,二是固定测试集上对比合并前后的主体相似度(DINOv2)与图文一致性(CLIP),恢复率低于单任务上限的九成就要回头查校准样本的质量。
人像精修场景的对比更直观:口红、腮红、眼影三个编辑 LoRA 合并后一次上妆,SSR 的妆效强度和位置最接近商业软件串行执行的参考结果。

这个工作更大的启示在方法论:凡是"多个增量模块共享一个底座"的场景,把干扰问题重新表述成信号空间里的估计问题,最优解往往自己浮出来。调参的艺术终归要走向估计的科学。

评论0