Task Vectors
タスクベクトルは、ファインチューニング済みモデルとベースモデルの重みの差で、1つのスキルを捉えています。スキルの追加、削除、統合に利用できます。用途について説明します。
タスクベクトルは、新たな能力を獲得するためのニューラルネットワークの重みの変化を、ファインチューニング中に記録したものです。基盤となるベースモデルのパラメーターをファインチューニング済みモデルのパラメーターから差し引くことで、研究者は特定のタスクについて学習された動作を表す、重み空間内の方向性ベクトルを切り分けられます。この方法では、追加の学習計算を必要とせず、モデルパラメーターへの算術演算だけでモデルの動作を誘導、変更、統合できます。
タスクベクトルと転移学習の違い#
転移学習では、モデルが既存の知識を適応させるため、新しいデータセットで逐次的にトレーニングします。一方、タスクベクトルはトレーニング後にモデルの構造的な重みに直接作用します。新しいドメインを学習するために勾配を再学習させる代わりに、タスクベクトルを用いた重み空間補間によって、複数の独立してトレーニングされたモデルの重み差分を線形に組み合わせることができます。これによりゼロショットのモデルマージが可能になり、通常のトレーニング時の計算オーバーヘッドなしで、1つのモデルに複数の能力を同時に継承させられます。
実際のアプリケーション#
ディープラーニングモデルを代数的に操作できることで、最新のAIパイプラインに大きな影響を与える複数の応用が生まれています。
- 複数タスクのモデル統合: エンジニアは、異なるデータセットで学習した2つの物体検出モデルなど、同じベースモデルをファインチューニングしたモデルのタスクベクトルを結合できます。タスクベクトルを結合できるのは同一のアーキテクチャ間に限られるため、物体検出モデルのファインチューニング結果を画像セグメンテーションモデルと統合することはできません。Ultralytics YOLO26のベースモデルに適用すると、元の各ファインチューニングモデルの長所を受け継ぐ単一のモデルを作成できます。
- 機械アンラーニングとAIの安全性: モデルが偏った出力や危険な出力を示す場合、研究者はその望ましくない動作を表すタスクベクトルを算出できます。このベクトルをモデルの重みから差し引くと、その動作を効果的に「消去」でき、AIの安全性と堅牢なAI倫理基準の向上に大きく貢献します。
- コンピュータービジョンにおけるドメイン適応: 昼間から夜間のリアルタイム推論への移行など、特定の環境にモデルを適応させる際、タスクベクトルを使うと適応の度合いを調整できます。ベクトルの一部(たとえばスケーリング係数0.5)を適用すると、両方のドメインで良好に動作するバランスの取れたモデルを実現できます。
PyTorchでのタスクベクトルの利用#
タスクベクトルの作成と適用には、PyTorchのstate dictionaryへのアクセスと操作が必要です。次の例では、ファインチューニング済みのUltralytics YOLO26モデルからタスクベクトルを抽出し、特定のスケーリング係数を使ってベースモデルに適用する方法を示します。
from ultralytics import YOLO
# ベースモデルとファインチューニング済みモデルのstate dictionaryを読み込みます
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()
# タスクベクトル(調整済み重みからベース重みを差し引いたもの)を計算し、整数バッファーはスキップします
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights if base_weights[k].is_floating_point()}
# スケーリング係数0.5を使って、タスクベクトルをベースモデルに適用します
for k, delta in task_vector.items():
base_weights[k] += 0.5 * delta重み操作の未来#
大規模言語モデルや大規模なビジョントランスフォーマーのようなアーキテクチャでは、パラメーター数が増加するにつれて、小さな調整のたびに再トレーニングすることは経済的に困難になります。タスクベクトルは、トレーニング後のモデル最適化に数学的に洗練された代替手段を提供します。数ギガバイトに及ぶモデル全体ではなく軽量なタスクベクトルを共有することで、AIコミュニティはAIのオープンソースコラボレーションを加速できます。カスタムのタスクベクトルを調整した後は、Ultralytics Platformを利用すると、その後のモデルデプロイとモニタリングのプロセスが簡素化され、最適化した重みを本番環境ですぐに使えるエンドポイントに確実に反映できます。










