タスク演算が、重みの更新を利用してモデルの挙動をどのように調整するのかをご紹介します。Ultralytics 、完全な再学習を行わずにタスクを統合したり、特徴を「アンラーニング」したりする方法を学びましょう。
タスク算術は、 特定の重みの更新を加減算することで、 事前学習済みのニューラルネットワークの挙動を修正する、高度な機械学習技術です。 モデルをゼロから完全に再学習させる代わりに、実務者はベースモデルと 微調整済みモデルの間で学習された差異を特定することができます。これらの差異は、本質的に特定の実力や 挙動を内包した方向性のある更新です。 これらの更新に加算や減算といった基本的な数学演算を適用することで、開発者は ディープラーニングシステムを動的に編集できます。この パラダイムは、タスク算術に関する最近の arXivの研究で大きな注目を集めており、大規模モデルを新たな要件に適応させるための、軽量で 計算効率の高い手法を提供しています。
この手法の基礎は、 事前学習済みのベースモデルと、特定の データセットで微調整を行ったバージョンの 間のモデル重みの差を計算することにあります。この抽出された差分が、新たなスキルの局所的な表現となります。 PyTorch 直接 操作したり、 TensorFlow を活用したりすることで、 エンジニアはこれらの重みの差を拡張・結合することができます。 例えば、特定の重みの更新分を差し引くことで、 モデルに学習した挙動を「忘れる」よう強制することができ、これは Anthropic モデル安全性に関するAnthropic 深く探求されている概念です。
タスク演算は、現代の コンピュータビジョンや自然言語処理の パイプラインにおいて、いくつかの極めて効率的なワークフローを実現します:
IEEE Xploreのアーカイブや ACMデジタルライブラリを閲覧していると、タスク演算と関連する 手法とを混同してしまいがちです:
これらのモデル最適化戦略を 実際に適用するには、モデルの内部状態を慎重に管理する必要があります。以下は、 PyTorch を使用して更新を計算・適用する例です。これは、 最近のコンピュータビジョン分野の論文で頻繁に取り上げられている手法です。
import torch
# Load the state dictionaries of the pre-trained base and fine-tuned models
base_weights = torch.load("yolo26_base.pt")
tuned_weights = torch.load("yolo26_tuned.pt")
# Calculate the task vector and add it back to the base model with a scaling factor
scaling_factor = 0.5
for key in base_weights.keys():
task_vector = tuned_weights[key] - base_weights[key]
base_weights[key] += scaling_factor * task_vector
複雑な データアノテーションのパイプラインや、複数の微調整済み モデルバージョンを管理するチームにとって、Ultralytics 、クラウド上でのトレーニングとシームレスなデプロイメントを監督するための効率的な 環境を提供し、モデルの反復的な改善管理を はるかに効率的にします。
未来の機械学習で、新たな一歩を踏み出しましょう。