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

任务向量

了解任务向量如何实现高效的模型融合和行为引导。探索如何调整Ultralytics 的权重以实现零样本多任务学习。

任务向量代表了在微调过程中对 神经网络权重所做的具体调整, 以实现新的能力。 通过将微调后模型的参数 减去基础模型的参数, 研究人员可以在权重空间中分离出一个方向向量,该向量封装了针对该 特定任务所学习的行为。这种方法使开发者能够对模型参数 进行简单的 算术运算,从而引导、修改或合并模型行为,而无需额外的训练计算资源。

任务向量与迁移学习的区别

虽然迁移学习的概念涉及 在新的数据集上对模型进行序列化训练以适应其现有知识,但任务向量直接作用于 模型训练后的结构权重。 与通过重新训练梯度来学习新领域不同, 利用任务向量进行权重空间插值,使从业者能够 线性组合多个独立训练模型的权重差异。这实现了零样本 模型融合,使单个模型能够同时继承 多种能力,且无需承受训练过程中通常存在的 计算开销

实际应用

能够通过代数方法操作深度学习模型 这一能力已在现代人工智能管道中催生了多项具有深远影响的应用:

  • 多任务模型融合工程师可以将 一个针对目标检测优化的任务向量与 另一个针对图像分割训练的任务向量相结合。当 将其应用于Ultralytics 基础模型时, 这将形成一种双重用途的架构,能够同时出色地完成这两项任务,并保留了 每个原始微调模型的优势。
  • 机器“忘学”与人工智能安全如果 模型产生了带有偏见或危险的输出结果,研究人员可以计算出一个任务向量,该向量代表了这种特定的 不良行为。通过将该向量从模型的权重中减去,他们可以有效地“消除”这种 行为,从而为提升 人工智能安全性和建立稳健的 人工智能伦理标准做出重大贡献。
  • 计算机视觉中的场景适应 在将模型适应特定环境时——例如从白天到夜晚的 实时推理——任务向量允许用户 调整适应的程度。应用向量的一部分(例如,缩放因子为0.5)可以 得到一个在两个场景中均表现良好的平衡模型。

在PyTorch中使用任务向量

创建和应用任务向量需要访问并操作 PyTorch 字典。 以下示例演示了如何从微调后的 YOLO26 模型中提取任务向量,并将其应用回 基础模型,同时使用特定的缩放因子。

from ultralytics import YOLO

# Load the state dictionaries for the base and fine-tuned models
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()

# Calculate the task vector (tuned weights minus base weights)
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights.keys()}

# Apply the task vector to the base model using a 0.5 scaling factor
for k in base_weights.keys():
    base_weights[k] += 0.5 * task_vector[k]

体重调控的未来

随着 大型语言模型和巨型视觉 变换器等架构的参数数量不断增加,为每次微小的调整而重新训练它们在经济上已不再可行。任务 任务向量为模型训练后的 优化提供了数学上优雅的替代方案。通过共享 轻量级的任务向量而非整个数GB级的模型,AI 社区能够加速 AI 领域的开源协作。一旦 您的自定义任务向量得到优化,利用 Ultralytics 即可简化后续的 模型部署和监控流程, 确保您的优化权重能直接转化为生产就绪的端点。

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

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