开源社区里常有人发布「合并模型」:把一个擅长写代码的模型和一个擅长写文案的模型揉成一个,期望新模型两头都会。听起来像炼丹,背后其实是一套朴素的数学——AI 模型的「本事」全部记在一堆权重数字里,把两堆数字按合适的比例掺在一起,多数时候得到的仍是一个能正常工作的模型。这篇讲清权重怎么合、社区常用的融合思路,以及这种做法竟然可行的原因。
本事记在数字里:合并合的是权重
要理解合并,先看模型的「记忆」存在哪。模型学到的一切,都以权重数字的形式躺在权重文件里,这份文件的结构见权重文件一篇。两个模型若来自同一个底座,它们的权重文件形状完全一致——同一位置上放的是同一类参数,只是数值不同。合并做的事相当直接:把两个文件里同一位置的数字拿出来,按比例折中,生成一份新文件。最简单的做法是权重平均,两个模型各占一半;再讲究一点用线性插值,比例随意调——可以想象成两杯调好的果汁按不同配比兑在一起,五五开、三七开,口味由配比决定。把几十个模型按各自的配比掺出的版本,业内戏称「模型汤」,汤的浓淡同样靠配比拿捏。
从平均到 TIES:会打架的数字怎么摆平
简单平均常会遇到麻烦。两个模型在同一处参数上的改动方向可能相反:一个往东调、一个往西调,直接平均可能两边互相抵消,本事全冲掉了;还有大量参数其实没怎么动过,掺进来只会稀释有用的改动。社区常用的 TIES 思路就是冲着这两件事来的,分三步走:先挑——把改动幅度小的参数直接清零,只留下各自真正学到的改动,免得被稀释;再投票——同一处参数两个模型方向相反时,看谁的支持票多,按多数方向定夺,避免硬性折中让改动互相打架;后加权——留下来的改动按各自幅度加权掺合。整个过程不训练、不碰数据,纯粹是数字层面的手术。完整的机制拆解见模型合并一篇,那里有更细的展开。
| 步骤 | 怎么做 | 治的是什么问题 |
|---|---|---|
| 先挑 | 把改动幅度小的参数直接清零,只留各自真正学到的改动 | 大量没怎么动过的参数掺进来,稀释有用的改动 |
| 再投票 | 同一处参数两个模型方向相反时,按支持票多的方向定夺 | 硬性折中让两边改动互相抵消 |
| 后加权 | 留下来的改动按各自幅度加权掺合 | 保住各自改动的强度 |
为什么揉得动:近亲才能合
这套做法居然不把模型揉坏,靠一个前提:参与合并的模型得是「近亲」——从同一个底座微调出来的不同版本。同一副骨架的不同微调版本,参数只是从同一起点各自走了一小段路,路线虽然不同,落在的地界是连通的,中途插值出来的点大概率仍在「平地」上,模型照常运转。两个毫不相干的模型就麻烦了:各自的参数空间互不对齐,同一位置的数字根本没有可比的含义,硬掺得到的多半是乱码。这也解释了为什么社区里的合并模型几乎都标着共同底座:合并不是任搭两个模型都能玩的游戏。合出来的效果与原版谁强谁弱、怎么验收,合并与原版一篇做过评估对照。
与微调的分工:教新本事还是拼旧本事
合并与微调经常被放在一起比较,两者的分工其实很清楚。微调是训练:拿数据、花算力,教模型学会一件它原本不太会的事,机制见微调一篇。合并则一行数据都不喂:它不创造新本事,只把几个模型已经学会的本事拼到一个身体里。所以选型的逻辑是——想让模型多学一件新东西,走微调;想让几个现成模型的长处凑到一起又不想再训练,走合并。两者还能接力:先各自微调出几个专才,再合并成一个通才,是社区里常见的玩法。合并也有失效的时候:几种本事互相干扰、掺完两边都变弱,遇到这种情况只能回退到微调或换底座重试。想让流程看得见,可以让豆包检索开源社区里口碑较好的合并模型与它们的底座信息,再让 DeepSeek 把「微调与合并」的适用差别整理成一张对照表。
模型合并速查
- 本质:同一位置的权重数字按比例掺合,生成一份新权重文件
- 基础做法:权重平均与线性插值,配比决定口味
- TIES 三步:挑出有效改动、方向投票、按幅度加权
- 前提:必须同底座的近亲模型,陌生人合不了
- 分工:微调教新本事,合并拼旧本事,不训练不碰数据
关于模型合并的三问三答
- 合并会拖累模型原本的能力吗?:可能。几种能力在同一处参数上要求相反时,会互相抵消,掺完出现「两头都变平庸」;这也是合并后必须跑一遍评估的原因,验收方法见合并与原版一篇。
- 两个不同底座的模型能合吗?:常规做法合不了。不同底座的权重空间互不对齐,同一位置的数字没有可比含义;除非先用特殊手段把两者对齐到同一空间,那已经超出普通合并的范围。
- 配比怎么定?:没有万能数值,通常从五五开起步,按评估结果往效果好的那一侧微调配比;参与合并的模型越多,单家的占比一般要相应调低,避免某一家把整体带偏。


