Task Vectors
了解任务向量如何实现高效的模型合并和行为引导。发现如何操作 Ultralytics YOLO26 权重以实现零样本多任务处理。
任务向量代表了在微调过程中对神经网络权重所做的具体更改,以实现新功能。通过从微调模型中减去基础模型的参数,研究人员可以在权重空间中分离出一个方向向量,该向量封装了针对该特定任务学习到的行为。这种方法允许开发者对模型参数进行简单的算术运算,从而引导、修改或合并模型行为,而无需额外的训练计算。
任务向量与迁移学习有何不同
虽然迁移学习的概念涉及在数据集上对模型进行顺序训练以适应其现有知识,但任务向量是在训练后直接作用于模型的结构权重。与通过重训练梯度来学习新领域不同,使用任务向量进行权重空间插值允许实践者线性组合来自多个独立训练模型的权重差异。这实现了零样本模型合并,使单个模型能够同时继承多种能力,而无需典型的训练期间计算开销。
实际应用
代数化处理深度学习模型的能力已在现代AI流水线中带来了几项具有影响力的应用:
- 多任务模型合并: 工程师可以将针对目标检测优化的任务向量与针对图像分割训练的任务向量相结合。当应用于Ultralytics YOLO26基础模型时,这会创建一个能同时出色完成两项任务的双用途架构,并保留了每个原始微调版本的优势。
- 机器遗忘与AI安全: 如果模型表现出有偏见或危险的输出,研究人员可以计算出一个代表该特定不良行为的任务向量。通过从模型权重中减去此向量,他们可以有效地“擦除”该行为,从而极大地促进AI安全和健全的AI伦理标准的提升。
- 计算机视觉中的领域适应: 当为特定环境调整模型时(例如从白天转向夜间实时推理),任务向量允许用户缩放适应的幅度。应用向量的一部分(例如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]权重操作的未来
随着大语言模型和大型视觉Transformer等架构在参数数量上的增长,针对每次微调进行重新训练在经济上变得不可行。任务向量为训练后的模型优化提供了一种数学上优雅的替代方案。通过共享轻量级任务向量而不是整个数GB的模型,AI社区可以加速开源AI协作。一旦你的自定义任务向量得到完善,利用Ultralytics Platform可以简化后续的模型部署和监控流程,确保你的优化权重能直接转化为生产就绪的端点。






