Task Vectors
タスクベクトルが効率的なモデル統合と挙動制御をどのように可能にするか学びます。ゼロショットのマルチタスクに向けて、Ultralytics YOLO26のウェイトを操作する方法を発見しましょう。
タスクベクトルは、新しい機能を実現するためのファインチューニング中に、neural network'sの重みに行われた具体的な変更を表します。foundational base modelのパラメータをファインチューニング済みモデルのパラメータから引くことで、研究者は重み空間においてその特定のタスクで学習された動作をカプセル化する方向ベクトルを分離できます。このアプローチにより、開発者は追加のトレーニング計算を必要とせず、シンプルなarithmetic operations on model parametersを使用してモデルの動作を誘導、修正、またはマージできます。
Task Vectorsと転移学習の違い#
transfer learningの概念には、既存の知識を適応させるために新しいデータセットでモデルを順次トレーニングすることが含まれますが、タスクベクトルはトレーニング後のモデルの構造的な重みに直接作用します。新しいドメインを学習するために勾配を再トレーニングする代わりに、タスクベクトルを使用したweight space interpolationにより、実務者は独立してトレーニングされた複数のモデルからの重みの差を線形に結合できます。これにより、ゼロショットのmodel mergingが可能になり、通常のcomputational overhead during trainingなしで、単一のモデルが複数の機能を同時に継承できるようになります。
実社会での応用#
deep learningモデルを代数的に操作する能力により、最新のAIパイプライン全体でいくつかの影響力のあるアプリケーションが実現しました:
- Multi-Task Model Merging: エンジニアは、object detection用に最適化されたタスクベクトルと、image segmentation用にトレーニングされた別のベクトルを組み合わせることができます。Ultralytics YOLO26ベースモデルに適用すると、両方のタスクで同時に優れ、それぞれの元のファインチューニングの強みを維持する二重目的のアーキテクチャが作成されます。
- Machine Unlearning and AI Safety: モデルが偏った出力や危険な出力を示す場合、研究者はその特定の望ましくない動作を表すタスクベクトルを計算できます。このベクトルをモデルの重みから引くことで、その動作を効果的に「消去」することができ、高度なAI safetyおよび堅牢なAI ethics基準の向上に大きく貢献します。
- Domain Adaptation in Computer Vision: 日中から夜間へのreal-time inferenceへの移行など、特定の環境に合わせてモデルを適応させる場合、タスクベクトルを使用すると、ユーザーは適応の大きさをスケーリングできます。ベクトルの小部分(例: 0.5のスケーリングファクター)を適用すると、両方のドメインで良好に機能するバランスの取れたモデルが得られます。
PyTorchにおけるTask Vectorsの使用#
タスクベクトルの作成と適用には、PyTorch state dictionaryへのアクセスと操作が必要です。以下の例は、ファインチューニングされたUltralytics 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]重み操作の未来#
large language modelsや大規模なビジョンTransformerなどのアーキテクチャのパラメータ数が増加するにつれて、わずかな調整ごとにそれらを再トレーニングすることは経済的に実行不可能になっています。タスクベクトルは、トレーニング後のmodel optimizationのための数学的に洗練された代替手段を提供します。巨大なマルチギガバイトのモデル全体ではなく、軽量なタスクベクトルを共有することにより、AIコミュニティはopen-source collaboration in AIを加速させることができます。カスタムタスクベクトルが洗練されたら、Ultralytics Platformを利用して、その後のmodel deploymentおよび監視プロセスを簡素化し、最適化された重みが本番環境対応のエンドポイントに直接変換されるようにします。






