evolutionary-model-merge
用进化算法在大模型融合空间中自动搜索最优配方,让不同专长模型合体超越源模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用进化算法在大模型融合空间中自动搜索最优配方,让不同专长模型合体超越源模型
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,随着大语言模型(LLM)能力飞速提升,一个新问题浮出水面:如何将多个各有专长的模型合并成一个超级模型?
传统的模型融合(Model Merging)方法——比如简单的权重平均——存在致命缺陷:不同模型往往在某些任务上表现优异,在另一些任务上却表现糟糕,强行取平均的结果往往是"样样都行,样样不精"。这个难题困扰着整个 AI 社区,直到一个来自日本的年轻 AI 实验室——Sakana AI——提出了一种全新的解决思路。

Sakana AI(意为"鱼")是 2023 年成立于东京的 AI 研究机构,团队成员来自 Sony、Preferred Networks 等日本顶尖科技公司,专注于大语言模型、视觉语言模型和进化计算研究。他们的愿景是:用自然计算的灵感解决 AI 的核心问题。Evolutionary Model Merge 是他们最具影响力的研究成果之一,论文已被 ICLR 2024 接收,引发学术界与工业界的广泛关注。
传统的模型融合就像做一道没有菜谱的融合菜——厨师只能靠经验和猜测来决定不同食材的配比,结果全凭运气。而 Evolutionary Model Merge 的核心思想,是用**进化算法(Evolutionary Algorithm)**来自动搜索最优的模型融合方案。
具体来说,这个过程模拟了自然界"适者生存"的进化逻辑:

图1:Evolutionary Model Merge 方法流程图——通过进化算法在大模型融合空间中搜索最优解
这种方法的优势在于:它不需要梯度信息,不需要下游任务的标注数据,甚至不需要了解模型内部结构。只要定义好评估指标和融合空间,算法就能自动发现远超人类直觉的最优融合方案。
本项目采用 Python + PyTorch + Transformers 构建,代码组织清晰,分为三大核心模块:
evomerge/models/)causallm.py:封装了基于 vLLM 推理引擎的因果语言模型推理接口。vLLM 是目前最流行的高吞吐量 LLM 推理库,支持 PagedAttention 和连续批处理。融合后的模型通过 vLLM 加载,支持 bf16 精度推理。llava.py:封装了 LLaVA-1.6-Mistral-7B 视觉语言模型的推理流程,包含图像预处理、多模态提示词构建和文本生成逻辑。prompt_templates.py:定义了日语指令微调的提示词模板(如 JA_ALPACA_COT_TEMPLATE),用于日语文本推理。evomerge/eval/)ja_mgsm.py:日语文学推理基准评估器,衡量模型的数学推理能力。ja_vg_vqa.py 和 ja_vlm_wild.py:日文视觉问答评估器,衡量视觉语言模型在真实场景下的表现。evomerge/utils.py)instantiate_from_config:参考 Stable Diffusion 的 SGM 框架,使用字符串反射(Reflection)机制动态实例化任意 Python 类。这是一种高度可扩展的依赖注入模式,让用户只需修改 YAML 配置文件即可切换模型或评估器,无需改动代码。evaluate.py)整个评估流程由 evaluate.py 驱动,核心逻辑三步走:
instantiate_from_config)配置文件格式为 YAML,所有论文实验中使用的配置均保存在 configs/ 目录下,包括各源模型的配置和融合后模型的评估配置。
从 pyproject.toml 可以看出项目的关键依赖:
| 依赖 | 用途 | 重要性 |
|---|---|---|
transformers ^4.38.2 | 模型加载与推理 | 核心 |
vllm (SakanaAI fork) | 高吞吐 LLM 推理 | 核心 |
accelerate ^0.27.2 | 分布式推理加速 | 重要 |
gradio ^4.21.0 | Web 可视化界面 | 重要 |
datasets ^2.18.0 | 评测数据加载 | 重要 |
einops ^0.7.0 | 张量重塑 | 辅助 |
值得注意的是,项目使用了一个 SakanaAI 定制的 vLLM fork(commit: 538aa22a),这暗示在标准 vLLM 基础上做了特殊修改,可能是针对日本语模型的优化。
论文在日语领域进行了系统性评估,结果令人印象深刻:
日语文学理解(EvoLLM 系列):
| 模型 | MGSM-JA(日语数学推理) | lm-eval-harness 平均 |
|---|---|---|
| Shisa Gamma 7B v1 | 9.6 | 66.1 |
| WizardMath 7B V1.1 | 18.4 | 60.1 |
| Abel 7B 002 | 30.0 | 56.5 |
| Arithmo2 Mistral 7B | 24.0 | 56.4 |
| EvoLLM-JP-A-v1-7B | 52.4 | 69.0 |
| EvoLLM-JP-v1-7B | 52.0 | 70.5 |
以 EvoLLM-JP-v1-7B 为例:融合后的模型在日语数学推理上从源模型最高的 30.0 提升到 52.0,提升幅度达 73%;同时在通用基准上从 66.1 提升到 70.5,实现了性能全面提升,彻底解决了"样样都行、样样不精"的问题。
日文视觉问答(EvoVLM-JP):
| 模型 | JA-VG-VQA-500 | JA-VLM-Bench-In-the-Wild |
|---|---|---|
| LLaVA-1.6-Mistral-7B | 14.32 | 41.10 |
| Japanese Stable VLM | - | 40.50 |
| Heron BLIP Japanese StableLM | 14.51 | 33.26 |
| EvoVLM-JP-v1-7B | 19.70 | 51.25 |
视觉语言模型的融合效果同样显著,在野外部署场景下提升了 24.7%。
项目要求 Python 3.10.12 + CUDA 12.3,这是相对严格的环境要求,推荐使用 conda 或 venv 创建独立环境:
git clone https://github.com/SakanaAI/evolutionary-model-merge.git
cd evolutionary-model-merge
pip install -e .
需要手动下载 fasttext 语言识别模型 lid.176.ftz,这是评测日语数据时判断语言属性的关键工具。
python evaluate.py --config_path configs/llm/evollm-v1-jp-7b.yaml
配置文件指定了模型来源(HuggingFace 路径)、推理精度(bfloat16)、提示词模板和评估器。评估结果自动保存到 results/ 目录。
SakanaAI 在 HuggingFace Spaces 提供了 EvoVLM-JP 的在线 Demo,用户可直接上传图片并用日语提问,体验融合后模型的多模态能力。
Evolutionary Model Merge 的意义远不止于日本语模型。它证明了模型融合可以是一种系统性的工程问题,而不仅仅是一种启发式技巧。2024 年下半年,随着 IsoNN、MergeKit 等工具的跟进,"进化式融合"正在从单点研究演变为一种可复现的方法论范式。
从增长曲线看,模型融合相关论文在 2024 年 ACL、ICLR、NeurIPS 上均有显著曝光,SakanaAI 的这项工作在其中扮演了"方法论奠基"的角色。对 AI 开发者而言,理解融合背后的进化计算逻辑,有助于在资源受限场景下"拼凑"出超越单一模型的超级专家组合。
| 维度 | 评价 |
|---|---|
| 创新性 | ★★★★★ — 首次将进化计算系统性地引入模型融合 |
| 代码质量 | ★★★★☆ — 模块化清晰,配置驱动,但缺少容器化 |
| 可复现性 | ★★★★☆ — 评测代码完整,模型权重开放 |
| 部署难度 | ★★★☆☆ — 无 Docker,中等硬件门槛 |
| 行业影响 | ★★★★★ — ICLR 2024 接收,推动融合方法论发展 |