摘要 (Nature 风格)
将多个专用机器学习模型的知识整合到一个统一实体中的模型合并(Model Merging)技术,已成为提升人工智能能力的前沿方法。然而,现有技术依赖于对模型参数进行预先设定的、固定边界的划分,这极大地限制了参数组合的探索空间,从而制约了最终模型的性能。为了突破这一瓶颈,我们提出了一种名为“自然生态位模型合并”(Model Merging of Natural Niches, M2N2)的新型演化算法。M2N2的核心创新体现在三个方面:首先,它引入了动态合并边界调整机制,允许算法在演化过程中逐步探索更广泛、更精细的参数组合方式;其次,我们设计了一种受自然界资源竞争启发的种群多样性保持机制,该机制能够维持一个由多个高性能且具备互补优势的模型构成的种群,为高效合并创造了理想条件;最后,我们提出了一种基于启发式算法的“吸引力”度量,用于智能识别并配对最具融合潜力的模型。我们的实验结果首次证明,模型合并技术不仅能优化预训练模型,更能从零开始演化出功能完备的模型。具体而言,应用M22N2从随机初始化的网络演化MNIST分类器,其性能媲美经典的CMA-ES算法,但计算效率显著更高。此外,我们将M2N2成功扩展到大规模语言模型和图像生成模型的合并任务中,均取得了当前最佳性能。值得注意的是,M2N2在优化特定适应度函数的同时,能够有效保留模型那些未被直接优化的关键能力,这充分展示了其强大的鲁棒性和通用性。这项工作为自动化、高效地构建多功能、高性能AI模型开辟了新的演化路径。
引言:当AI模型开始“自然选择”
大家好,我是João Abrantes。在Sakana AI,我们团队一直在思考一个有趣的问题:在开源模型百花齐放的今天,我们能否像大自然一样,通过某种“演化”过程,将成千上万个身怀绝技的AI模型融合成一个更强大的“超级个体”?
想象一下如今的AI世界,就像一个物种丰富的热带雨林。有的模型擅长数学推理,像一只精于计算的狐猴;有的模型是代码高手,如同一只巧手织网的蜘蛛;还有的能画出惊艳的图像,仿佛一只色彩斑斓的极乐鸟。传统的方法,比如微调(fine-tuning),好比是训练一只特定的鸟,让它唱得更动听,但它终究还是一只鸟。而我们想做的,是“模型合并”(Model Merging)——一种更激进、也更令人兴奋的尝试。
模型合并,就像是科幻小说里的基因工程,我们试图将不同模型的“能力DNA”提取出来,重新组合,创造出一个全新的、集众家之所长的物种。
早期的模型合并非常“手工”。研究员们凭着直觉和大量的试错,像调酒师一样,小心翼翼地调整不同模型参数的混合比例。后来,演化算法的引入让这个过程自动化了,效率大大提升。但这依然存在一个根本性的限制:我们必须手动将模型的参数划分成固定的“块”(比如神经网络的“层”),然后再去优化这些块的混合比例。这就像我们规定了基因只能在特定的几个点上进行交换,大大限制了创造新物种的可能性。
这正是我们提出 M2N2 (Model Merging of Natural Niches) 的初衷。我们希望打破这些束缚,让模型合并的过程更接近真实的自然演化——一个充满动态、竞争和选择的舞台。我们的工作核心有三把“钥匙”:动态边界、生态位竞争 和 择偶吸引力。接下来,我将带大家一一探索这三把钥匙是如何开启模型演化新大门的。
静态示意图:固定的边界 vs. 演化的边界
传统方法像是在固定的积木块上调色,而M2N2则允许我们切割和重组积木本身,创造出无限可能。
第一把钥匙:打破边界,让融合无拘无束
想象一下,你面前有两个乐高模型,一个是精巧的赛车,一个是雄伟的城堡。传统的模型合并方法,相当于规定你只能把赛车的轮子换成城堡的塔尖,或者把赛车的底盘换成城堡的地基。你能创造的东西很有限。
而M2N2做的,是把这两堆乐高彻底打散,然后告诉你:“你可以在任何位置切开,把左边的部分用赛车的,右边的部分用城堡的。” 不仅如此,这个“切割点”本身也是演化的一部分。这一次可能是在1/3处切割,下一次可能是在7/8处。经过成千上万代的演化,算法自己就能找到那些最神奇的“黄金分割点”,创造出我们之前想都想不到的组合。
我们用一个简单的公式来描述这个过程。假设有两个模型 A 和 B,它们的参数分别是 \(\theta_A\) 和 \(\theta_B\)。我们随机选择一个分割点 \(w_s\) 和一个混合比例 \(w_m\)。新的模型参数 \(\theta_{new}\) 就由以下方式生成:
\[
\theta_{new} = \text{concat}(f_{w_m}(\theta_A^{
这里的 \(\theta^{
交互动画1:动态边界的探索
拖动滑块,亲自扮演“演化之手”,看看不同的分割点和混合比例如何创造出千变万化的新模型。
当前分割点: 0.50, 混合比例: 0.50
第二把钥匙:引入竞争,构建“自然生态位”
模型合并最怕什么?“近亲繁殖”。如果你的模型库里全都是性能相似、特点单一的模型,那么无论怎么合并,都很难产生质的飞跃。多样性是演化的燃料。但问题是,我们如何定义和维持“好的”多样性?
传统方法,比如MAP-Elites,需要我们人为定义多样性的维度。例如,我们可以说“我需要一个擅长数学的模型,和一个擅长写诗的模型”。这在简单任务中可行,但对于复杂的AI模型,能力的维度成千上万,我们根本无法手动定义。
M2N2的灵感直接来自大自然:竞争有限的资源。想象一片森林,里面有各种各样的食物(资源)。如果所有动物都只吃香蕉,那么香蕉很快就会被吃光,最终只有最会抢香蕉的动物能活下来,多样性急剧下降。但如果有的动物学会了吃别的果子,有的学会了吃虫子,它们就开辟了新的“生态位”(Niche),避免了直接竞争,从而能更好地生存下去。
在我们的算法里,“资源”就是训练数据集里的每一个样本。一个模型在一个样本上表现好,就能从这个样本上获得“适应度分数”。我们设定了一个上限:一个样本能提供的总分数是有限的。如果很多模型都能轻松解决样本A,那么它们就要平分这一点点分数,每个模型分到的就很少。但如果某个模型独辟蹊径,解决了其他所有模型都搞不定的样本B,那么它就能独享样本B提供的全部分数!
这种机制自然而然地鼓励模型去探索和攻克不同的难题,形成各自的“专长”。我们的模型库里,就会自动涌现出各种“专才”,而不是一群面目模糊的“通才”。这为我们下一步的合并提供了最优质、最多样化的“基因库”。
数学上,我们修改了适应度函数。一个模型 \(\theta_i\) 的总适应度 \(f(\theta_i)\) 不再是简单地累加它在每个样本 \(x_j\) 上的得分 \(s(x_j|\theta_i)\),而是要除以一个“竞争因子” \(z_j\)。
\[ f(\theta_i) = \sum_{j=1}^{N} \frac{s(x_j|\theta_i)}{z_j + \epsilon} \cdot c_j, \quad \text{其中 } z_j = \sum_{k=1}^{P} s(x_j|\theta_k) \]
这里的 \(c_j\) 是样本 \(j\) 能提供的总分数(资源容量),\(P\) 是种群中模型的数量,\(z_j\) 代表了在样本 \(j\) 上的总竞争强度。可以看到,解决同一个样本的模型越多(\(z_j\) 越大),每个模型从中获得的好处就越少。
交互动画2:生态位竞争
点击“演化一步”,观察模型(彩色圆点)如何在资源点(灰色方块)上竞争。解决了稀有资源点的模型会获得更高的适应度(变得更大),从而在种群中占据优势。
演化代数: 0. 种群多样性 (熵): 0.00
第三把钥匙:智能择偶,寻找“灵魂伴侣”
有了多样化的基因库,我们还需要解决一个问题:谁和谁合并,效果最好?随机配对当然可以,但效率不高。在自然界,择偶是一个非常复杂且重要的过程。我们也应该为我们的AI模型引入一种“择偶策略”。
我们称之为“吸引力”。这个想法非常直观:一个好的伴侣,应该能在你的弱项上帮助你。也就是说,如果模型A在解决某些问题时表现不佳,那么一个对它有“吸引力”的模型B,应该恰好擅长解决这些问题。
所以,在M2N2中,我们首先根据模型的综合实力(经过生态位竞争调整后的适应度)选出第一个“求偶者”模型A。然后,我们不再是随机挑选模型B,而是为模型A计算一个专属的“吸引力排行榜”。排行榜上,那些在模型A表现差的样本上表现优异,并且这些样本本身又是“稀有资源”(竞争不激烈)的模型,排名会非常靠前。
这就像是在寻找一个“互补型”的合作伙伴。你擅长进攻,我就找一个精于防守的队友。这样的组合,战斗力自然会飙升。
这个吸引力分数 \(g(\theta_A, \theta_B)\) 的计算方式如下:
\[ g(\theta_A, \theta_B) = \sum_{j=1}^{N} \frac{c_j}{z_j} \cdot \max(s(x_j|\theta_B) - s(x_j|\theta_A), 0) \]
这个公式的含义是:我们遍历所有样本 \(j\),只看那些模型B比模型A做得好的地方 (\(s(x_j|\theta_B) > s(x_j|\theta_A)\))。这个优势越大,吸引力就越高。同时,我们还乘上了一个权重 \(\frac{c_j}{z_j}\),这意味着在那些“高价值、低竞争”的稀有资源点上取得的优势,会获得更高的吸引力加成。通过这种方式,M2N2能更高效地找到强强联合、优势互补的合并对象,大大加速了演化进程。
交互动画3:寻找最佳拍档
点击一个模型(父模型A),系统会自动计算并高亮显示与其最互补、吸引力最高的模型(父模型B)。观察它们的技能条,看看“互补”是如何体现的。
当前选择模型A: -. 最佳匹配模型B: -
实验结果:从零到英雄,从数学到艺术
理论说起来很美,但M2N2在实践中表现如何呢?我们进行了一系列实验,结果非常令人振奋。
首先,我们做了一个极限挑战:从零开始演化一个图像分类器。我们没有使用任何预训练模型,而是从一堆完全随机的、像“数字原生质”一样的神经网络开始。结果,M2N2演化出的模型在MNIST手写数字识别任务上,性能竟然可以和强大的传统演化算法CMA-ES相媲美,而我们的计算开销要小得多!这证明了M2N2不仅仅是“优化师”,更是“创造者”。
接着,我们把目光投向了更大的挑战:大规模语言模型(LLM)和文生图模型。在一个实验中,我们成功地将一个“数学家”LLM(擅长解数学题)和一个“网购高手”LLM(擅长在模拟购物网站中完成任务)融合,创造出的新模型在这两项任务上都表现出色,远超简单的模型平均。
在另一个更酷的实验中,我们将一个擅长理解日语的文生图模型(JSDXL)和其他几个顶级的英文模型(如SDXL)进行融合。我们的目标是创造一个既能理解日语提示词,又能生成顶级画质的模型。通过M2N2的演化,我们得到的最终模型做到了!更神奇的是,虽然我们在演化过程中只用了日语数据进行评估,但最终模型丝毫没有忘记英语!它成了一个真正的双语艺术大师。这充分展示了模型合并作为一种无梯度优化方法的巨大优势——它能有效避免“灾难性遗忘”,这是传统微调方法的一大痛点。
交互动画4:演化收敛过程
这是一个柏林噪声驱动的粒子流场,模拟了演化算法在广阔的“模型空间”中搜索最优解的过程。每个粒子代表一个模型,它们在适应度地形的引导下,从混乱走向有序,最终汇聚到高性能区域。
交互动画5:融合前后的能力变化
观察两个父模型(蓝色和红色)在不同能力维度上的表现。点击“融合”按钮,见证它们如何通过M2N2结合,生成一个能力更全面、更强大的子模型(紫色)。
结论与未来:AI演化的新篇章
M2N2的成功,让我们看到了一个与当前主流的梯度下降不同的、充满潜力的AI发展方向。它更像是一门“群体智能”的艺术,我们不再是去雕琢一个个体,而是去营造一个让优秀个体能够涌现、交流、融合的“生态系统”。
我们相信,竞争、吸引力和无边界融合这三大支柱,不仅对模型合并有价值,也可能为其他使用交叉操作的演化算法带来启发。未来,我们还想探索更多有趣的方向。比如,模型之间是否存在“生殖隔离”?我们能否通过演化,形成几个互不兼容但内部高度兼容的“模型物种”?我们能否将模型的“兼容性”也作为一个可优化的指标,加入到吸引力函数中?
AI的世界正在从“大炼模型”的时代,走向“巧用模型”的时代。我们希望M2N2能成为这个新时代里一把有力的工具,帮助我们更智能、更高效地驾驭和组合全世界AI研究者的智慧结晶,共同演化出更强大的未来。
技术细节附录
本节为对技术细节感兴趣的读者提供更深入的说明。
A1. 球面线性插值 (SLERP)
在合并模型参数时,我们没有使用简单的线性插值 (LERP),即 \(\theta_{new} = (1-w)\theta_A + w\theta_B\),因为它可能导致模型性能的突然下降(即所谓的“过谷”问题)。我们采用球面线性插值 (SLERP),它将参数向量视为高维空间中的点,并在连接它们的球面上进行插值。这能更好地保持模型的内在几何结构。
SLERP的公式为: \[ \text{SLERP}(\theta_A, \theta_B, w) = \frac{\sin((1-w)\Omega)}{\sin(\Omega)}\theta_A + \frac{\sin(w\Omega)}{\sin(\Omega)}\theta_B \] 其中,\(\Omega\) 是向量 \(\theta_A\) 和 \(\theta_B\) 之间的夹角,计算方式为 \(\Omega = \arccos(\frac{\theta_A \cdot \theta_B}{||\theta_A|| \cdot ||\theta_B||})\)。SLERP保证了插值过程中的“步长”是恒定的,路径更平滑。
A2. 竞争强度参数 \(\alpha\)
在我们的生态位竞争机制中,可以引入一个超参数 \(\alpha\) 来控制竞争的激烈程度。修改后的适应度函数如下: \[ f(\theta_i) = \sum_{j=1}^{N} \frac{s(x_j|\theta_i)}{z_j^\alpha + \epsilon} \cdot c_j \] 当 \(\alpha=0\) 时,分母为1,竞争消失,算法退化为简单的遗传算法(GA)。当 \(\alpha=1\) 时,即为我们在正文中讨论的标准形式。当 \(\alpha > 1\) 时,竞争会变得异常激烈,因为分母会随着竞争者数量的增加而急剧增大。这会更强力地惩罚那些挤在热门资源点的模型。实验表明,\(\alpha\) 值过低会导致过早收敛,而过高的 \(\alpha\) 值可能会过度惩罚,减慢收敛速度。选择一个合适的 \(\alpha\) 值(如1.0)对算法性能至关重要。
A3. 实验设置细节
MNIST分类器演化:我们使用的神经网络是一个包含两个全连接层的简单结构,总计19,210个参数。在从零开始的实验中,模型权重被随机初始化。M2N2和GA的种群(我们称之为“档案库”)大小为20。CMA-ES的种群大小也为20。
LLM合并:我们合并的两个模型 WizardMath-7B-V1.0 和 AgentEvol-7B 都是基于 Llama-2-7B 架构,拥有32个解码器层。我们主要对这32层的参数进行合并。档案库大小为15。CMA-ES则直接优化32个混合系数。
文生图模型合并:我们固定了所有模型的VAE部分(来自SDXL),并保留了JSDXL的tokenizer和text encoder以确保日语理解能力。合并操作主要在U-Net部分进行。我们发现将注意力层(attention layers)与其他部分分开,作为独立的“染色体”进行合并,效果更佳。这为演化提供了有用的归纳偏置,同时保留了动态边界的灵活性。