了解模型融合如何将多个预训练模型整合为一个。学习如何融合Ultralytics 的权重,在不增加额外延迟的情况下提升性能。
模型融合是机器学习(ML)中的一项创新技术, 它将多个预训练模型的已学习 参数(权重)整合为一个统一的模型。 与传统的多模型 架构不同,模型融合直接在 参数空间中融合模型权重。这使得从业者能够整合针对 不同任务或数据集进行微调的多个模型的专业知识,同时避免了同时运行多个模型 所产生的内存和计算成本。
通过直接对权重进行操作,模型合并能够保持单个 网络的架构规模。这在将先进的 计算机视觉(CV)管道部署到边缘设备时尤为重要, 因为在该场景下,降低推理延迟和节省 内存至关重要。
区分模型融合与相关概念(如 模型集成和 迁移学习)是有帮助的。
研究人员开发了多种方法,可以在不破坏网络底层 能力的前提下有效组合权重,这一点在arXiv上近期 发表的学术研究中已有探讨。
模型融合在构建泛化系统时非常有效,且无需从头开始重新训练。
您可以轻松地使用 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 提供了一个直观的界面,可轻松管理 端到端的视觉 AI 项目。
开启您的机器学习未来之旅