训练一个大模型要花几百万美元。
但如果我有 5 个不同的、各自在某方面表现不错的模型,能不能把它们合并成一个更强的?
这就是 Darwin 系列项目的核心思路:进化合并(Evolutionary Merging)。
不是蒸馏、不是微调、不是继续预训练。是把多个模型的参数用进化算法做有向组合,让好的权重保留、差的权重淘汰——就像自然选择一样。
进化合并是什么
传统的模型优化方法有几个:
- 微调:用新数据继续训练。需要数据和算力。
- 蒸馏:大模型教小模型。需要一个已经很强的教师模型。
- 集成:多个模型投票。推理成本高,部署复杂。
进化合并走的是第四条路:参数级别的智能合并。
核心思路是:每个模型都有"好"的参数和"差"的参数。如果能把 A 模型在数学上强的参数和 B 模型在语言上强的参数组合起来,得到的模型就比任何一个都强。
但这不是简单平均。简单平均(model averaging)的问题是所有参数权重一样,没有区分。进化合并用进化算法(遗传算法、CMA-ES 等)搜索最优的参数组合策略——哪些层的哪些参数应该来自哪个模型。
工具层面
Darwin 项目提供了完整的工具链:
- 合并引擎:核心算法实现,支持多种合并策略
- 评估框架:自动化基准测试,对比合并前后的性能
- 可视化:参数空间的进化过程可视化
开发者可以:
- 加载多个基础模型(比如 3-5 个开源 LLM)
- 定义目标(数学、代码、推理等)
- 运行进化合并
- 得到合并后的模型
效果如何
根据项目公布的数据:
- 合并后的模型在目标基准上 优于任何单一基础模型
- 合并过程 不需要训练数据——只需要评估用的 benchmark
- 合并后的模型 参数量和基础模型相同——不是更大的模型,而是更"聪明"的相同大小的模型
关键优势在于成本。训练一个同等水平的模型需要大量算力和数据。进化合并只需要运行评估和搜索——算力消耗远小于训练。
和 Model Soup 的区别
你可能听说过 Model Soup——多个模型权重简单平均的方法。
进化合并和 Model Soup 的核心区别是:Model Soup 是民主,进化合并是精英筛选。
Model Soup 对所有参数一视同仁地平均。进化合并对每个参数/层做选择——哪些来自模型 A、哪些来自模型 B。它承认一个事实:不同模型在不同维度上各有所长,不能简单地"平均"。
实际应用场景
成本敏感的团队:买不起大模型的 API 订阅,但有几个不同的小模型。合并后可能达到大模型 80% 的能力,成本只有 20%。
垂直领域优化:你有通用模型和行业模型,合并后得到在行业场景下表现更好的定制模型。
模型保险:某个模型在特定任务上突然表现下降(版本更新导致),用进化合并快速回退到稳定版本。
需要注意的
第一,适用范围有限。 进化合并主要适用于同架构或相似架构的模型。Gemma 和 Llama 的参数结构不同,直接合并没有意义。
第二,评估质量决定合并质量。 进化算法需要评估函数来判断"哪个合并方案更好"。如果评估基准不全面,合并结果可能在不关心的维度上退化。
第三,还在早期。 这个项目在 GitHub 上的热度在快速上升,但实际生产应用案例还不多。它更像是一个有潜力的新方向,而不是成熟的生产工具。
我的看法
进化合并提出一个有趣的视角:模型优化不一定要靠更多数据和算力,也可以靠更聪明的组合。
这就像做乐队——不需要每个成员都是世界顶级,但把他们放在正确的位置上,整体的声音就出来了。
对于买不起顶级模型的团队来说,这可能是一条被忽视的路线。
主要来源:
- Darwin Family GitHub 组织
- 项目 README 和算法文档
- 相关论文和 benchmark 数据