YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

演算課題

タスク演算が、重みの更新を利用してモデルの挙動をどのように調整するのかをご紹介します。Ultralytics 、完全な再学習を行わずにタスクを統合したり、特徴を「アンラーニング」したりする方法を学びましょう。

タスク算術は、 特定の重みの更新を加減算することで、 事前学習済みのニューラルネットワークの挙動を修正する、高度な機械学習技術です。 モデルをゼロから完全に再学習させる代わりに、実務者はベースモデルと 微調整済みモデルの間で学習された差異を特定することができます。これらの差異は、本質的に特定の実力や 挙動を内包した方向性のある更新です。 これらの更新に加算や減算といった基本的な数学演算を適用することで、開発者は ディープラーニングシステムを動的に編集できます。この パラダイムは、タスク算術に関する最近の arXivの研究で大きな注目を集めており、大規模モデルを新たな要件に適応させるための、軽量で 計算効率の高い手法を提供しています。

このコンセプトの仕組み

この手法の基礎は、 事前学習済みのベースモデルと、特定の データセットで微調整を行ったバージョンの 間のモデル重みの差を計算することにあります。この抽出された差分が、新たなスキルの局所的な表現となります。 PyTorch 直接 操作したりTensorFlow を活用したりすることで、 エンジニアはこれらの重みの差を拡張・結合することができます。 例えば、特定の重みの更新分を差し引くことで、 モデルに学習した挙動を「忘れる」よう強制することができ、これは Anthropic モデル安全性に関するAnthropic 深く探求されている概念です。

実際のアプリケーション

タスク演算は、現代の コンピュータビジョンや自然言語処理の パイプラインにおいて、いくつかの極めて効率的なワークフローを実現します:

  • マルチタスク機能の統合: エンジニアはUltralytics 、 2つの別々のデータセット(1つは特定の 物体検出用、もう1つは 画像分類用)で独立して学習させることができます。両タスクの重みの 差分を算出し、それをベースモデルに加えることで、結果として得られるネットワークは、 「壊滅的忘却」に陥ることなく、両方のタスクを 同時に実行できるようになります。
  • AIの安全性に向けたターゲット型アンラーニング:もし視覚モデルがトレーニングデータから意図せず偏った特徴を学習してしまった場合、研究者はそのモデルのコピーを 偏ったデータで微調整し、特定の重みの差分を抽出して、元のモデルからそれらを差し引くことができます。Google 様々な発見で指摘されているように、これにより、モデルの一般的な 人工知能能力を維持しつつ、 望ましくない挙動を効果的に除去することができます。

関連概念の区別

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 、クラウド上でのトレーニングとシームレスなデプロイメントを監督するための効率的な 環境を提供し、モデルの反復的な改善管理を はるかに効率的にします。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。