深圳Yolo 视觉
深圳
立即加入
词汇表

模型合并

了解模型合并如何将多个预训练模型组合成一个。学习如何融合 Ultralytics YOLO26 权重以在不增加额外延迟的情况下提升性能。

模型合并是 机器学习 (ML) 中的一种创新技术,它将多个预训练模型的学习参数(权重)组合成一个统一的模型。与传统的多模型设置不同,合并直接在参数空间中融合 模型权重。这使得实践者能够结合在不同任务或数据集上微调的多个模型的专业知识,而无需承担同时运行多个模型的内存和计算成本。

通过直接对权重进行操作,模型合并保持了单个网络的架构足迹。这在将先进的 计算机视觉 (CV) 流水线部署到边缘设备时尤其有价值,因为在边缘设备上,减少 推理延迟 和节省内存至关重要。

区分模型融合

将模型合并与 模型集成迁移学习 等相关概念区分开来是有帮助的。

  • 模型合并 vs. 模型集成:模型集成保持各个网络独立,在推理时分别运行每个网络并平均它们的输出。这提高了准确性,但增加了计算开销。模型合并在推理之前结合实际权重,从而形成一个不需要额外运行时计算的单一模型。
  • 模型合并 vs. 迁移学习:迁移学习涉及获取一个基础模型并在新数据集上进一步训练它。模型合并不需要额外的微调;它使用数学运算来融合已训练的模型。

常用技术

研究人员已经开发出几种有效结合权重而不破坏网络底层能力的方法,正如最近 arXiv 上的学术研究 所探讨的。

  • 权重平均: 最简单的方法,即对共享相同架构的多个模型的权重取平均值。
  • 任务算术:一种技术,通过添加或减去“任务向量”(微调模型与其基础模型之间的差异),来结合或移除特定行为。
  • TIES-Merging:一种先进的方法,通过修剪冗余值并在模型之间选择一致的符号来解决参数干扰,从而在不同任务中保持性能。

实际应用

模型合并对于无需从头开始重新训练即可构建通用系统非常有效。

  • 自动驾驶汽车: 自动驾驶汽车可能会使用Ultralytics YOLO26基础模型。工程师可以独立训练一个模型版本来detect细微的行人运动,另一个版本来读取复杂的道路标志。合并这两个模型可以创建一个单一、高性能的检测器,同时处理这两个任务,而不会使推理时间加倍。
  • 医疗AI:在医学影像领域,由于严格的数据隐私法律,不同的研究医院可能会在专门的本地数据集(例如,一个用于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项目。

让我们一起共建AI的未来!

开启您的机器学习未来之旅