返回 Ultralytics 词汇表
Model Merging
探索模型合并如何将多个预训练模型组合成一个。了解如何融合 Ultralytics YOLO26 权重以在不增加额外延迟的情况下提高性能。
模型合并是machine learning (ML)中的一项创新技术,它将多个预训练模型的学得参数(权重)组合成一个单一的统一模型。与传统的多模型设置不同,合并直接在参数空间中融合model weights。这让从业者能够结合在不同任务或数据集上进行微调的多个模型的专业知识,而无需承担同时运行多个模型的内存和计算成本。
通过直接对权重应用操作,模型合并保持了单个网络的架构占用。当将先进的computer vision (CV)流水线部署到边缘设备时,这一点尤其有价值,因为在边缘设备上,减少inference latency和节省内存至关重要。
区分模型融合#
区分模型合并与Model Ensemble和Transfer Learning等相关概念会很有帮助。
- 模型融合与模型集成:模型集成保持各个网络独立,在推理时分别运行并取其输出的平均值。这提高了准确性,但也成倍增加了计算开销。模型融合在推理之前结合了实际权重,从而产生一个不需要额外运行时计算的单一模型。
- Model Merging vs. Transfer Learning:迁移学习涉及获取一个基础模型并在新数据集上对其进行进一步训练。模型合并不需要额外的fine-tuning;它使用数学运算来融合已经训练好的模型。
常见技术#
正如在最近的academic research on arXiv中所探讨的那样,研究人员已经开发了几种方法来有效地组合权重,同时又不会破坏网络的底层能力。
- Weight Averaging:最简单的方法,即取共享相同架构的多个模型的权重的平均值。
- 任务算术:一种通过添加或减去“任务向量”(微调模型与基础模型之间的差异)来合并或删除特定行为的技术。
- TIES-Merging:一种先进的方法,通过修剪冗余值并选择跨模型一致的符号来解决参数干扰,从而在不同任务中保持性能。
实际应用#
模型融合对于构建无需从头开始重新训练的通用系统非常有效。
- Autonomous Vehicles:自动驾驶汽车可能会使用Ultralytics YOLO26基础模型。工程师可以独立训练一个模型版本来检测微妙的行人动作,并训练另一个版本来读取复杂的路标。合并这两个模型会创建一个单一且能力极强的检测器,能够同时处理这两项任务,而不会使推理时间加倍。
- AI in Healthcare:在医学成像中,由于严格的数据隐私法,不同的研究医院可能会在专门的本地数据集上微调模型(例如,一个用于MRI扫描,另一个用于CT扫描)。通过安全地合并这些模型,研究人员可以创建一个受益于多样化数据分布的综合诊断工具。
示例:简单权重平均#
你可以使用PyTorch轻松执行基本的模型合并。以下示例演示了如何对两个结构相同的模型的状态字典进行平均。
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")对于希望简化数据集标注、训练和部署的复杂工作流的团队,Ultralytics Platform提供了一个直观的界面,可轻松管理端到端视觉AI项目。






