fusion_bench
深度学习模型融合的综合性基准测试与工具包,支持30+融合算法,覆盖CV与NLP多任务场景
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深度学习模型融合的综合性基准测试与工具包,支持30+融合算法,覆盖CV与NLP多任务场景
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象你训练了三个AI模型——一个擅长识别猫,一个擅长识别狗,还有一个在识别鸟类上准确率最高。在传统机器学习中,如果你想让一个模型同时做好这三件事,通常需要从头再训练一遍,既耗时又耗力。
FusionBench 正是为解决这个痛点而生。它提出了一个根本性问题:能不能把多个已经训练好的神经网络,"融合"成一个统一的模型,同时保留每个模型在各自领域的专长?
这个问题在大型语言模型(LLM)时代变得尤为紧迫。LoRA、QLoRA 等高效微调方法让我们能快速训练出针对不同任务的专用模型,但如何将这些专精模型合并回一个通用模型,一直缺乏统一的评估标准。FusionBench 由作者 Anke Tang 提出,并在 arXiv 2406.03280 发表后迅速获得关注。

FusionBench 的设计覆盖了深度模型融合的四大核心场景:
将多个针对不同任务微调的模型权重直接融合,目标是新模型在所有任务上都有良好表现。这是最直观也是最常用的融合方式。
对多个模型的预测结果进行加权平均或投票,FusionBench 支持灵活配置集成策略。
探索不同模型隐藏层表征的线性组合,寻找最优的权重插值方式。
通过融合小模型来构造性能更强的大模型,探索模型能力的边界。
多任务模型融合示意
FusionBench 的代码架构极为清晰,遵循严格的三组件分离原则:
| 组件 | 路径 | 职责 |
|---|---|---|
| Method | fusion_bench/method/ | 融合算法实现(如 Task Arithmetic、DARE、AdaMerging、TIES-Merging 等),每个算法继承 BaseAlgorithm |
| ModelPool | fusion_bench/modelpool/ | 管理模型加载,支持从 HuggingFace Hub、本地路径懒加载模型 |
| TaskPool | fusion_bench/taskpool/ | 管理评测任务和基准数据集 |
这种架构的优势在于高度可扩展:添加新的融合算法只需实现一个 BaseAlgorithm 子类,配置对应的 YAML 文件即可,无需改动核心逻辑。
内置支持超过 30 种融合算法,涵盖:

FusionBench 对模型的支持非常广泛:
所有模型均通过 HuggingFace Hub 托管,支持懒加载和本地缓存,大幅降低存储压力。

FusionBench 本质上是一个命令行工具,但上手门槛相对友好:
安装方式:
pip install fusion-bench
# 或开发模式
git clone https://github.com/tanganke/fusion_bench
cd fusion_bench && pip install -e .
运行方式(Hydra 配置驱动):
# 模型融合
fusion_bench model_fusion=llama method=task_arithmetic modelpool=llama_m2m
# 模型评测
fusion_bench model_fusion=clip-vit method=simple_average modelpool=clip_zeroshot
配置通过 YAML 文件管理,位于 config/ 目录,包含模型池、任务池、融合方法等详细参数。
Docker 部署:
cd fusion_bench && docker build -t fusion-bench .
docker run --gpus all -it fusion-bench
Dockerfile 基于 PyTorch 2.4.1 + CUDA 11.8,已内置所有依赖,开箱即用。
FusionBench 的评测结果引发了学界不少讨论:
FusionBench 的出现填补了深度模型融合领域长期缺乏统一基准的空白。它让研究者能够:
随着 LoRA、模型合并(Model Merging)在开源社区热度持续上升,FusionBench 的工具价值和研究价值将持续凸显。
模型升级示意
一句话总结:FusionBench 是深度学习研究者手中的一把精准尺子,让模型融合从"玄学"变为可量化、可复现的系统性工程。