モデルマージが複数の事前学習済みモデルを1つに結合する方法を知りましょう。Ultralytics YOLO26の重みを融合して、余分なレイテンシなしにパフォーマンスを向上させる方法を学びましょう。
モデルマージングは、複数の事前学習済みモデルから学習されたパラメータ(重み)を単一の統合モデルに結合する、 機械学習 (ML)における革新的な手法です。従来の複数モデル設定とは異なり、マージングはパラメータ空間内で モデルウェイトを直接融合します。これにより、異なるタスクやデータセットでファインチューニングされた複数のモデルの専門知識を、複数のモデルを同時に実行する際のメモリや計算コストを発生させることなく組み合わせることが可能になります。
重みに直接操作を適用することで、モデルマージは単一ネットワークのアーキテクチャフットプリントを維持します。これは、高度なコンピュータービジョン(CV)パイプラインをエッジデバイスにデプロイする際に特に価値があり、そこでは推論レイテンシの削減とメモリの節約が重要です。
モデルマージをモデルアンサンブルや転移学習といった関連概念と区別することは、その理解を深める上で役立ちます。
研究者たちは、最近のarXivの学術研究で探求されているように、ネットワークの基盤となる能力を損なうことなく重みを効果的に結合するいくつかの方法を開発しました。
モデルマージングは、ゼロから再学習することなく汎用的なシステムを構築する上で非常に効果的です。
PyTorchを使用して基本的なモデルマージを簡単に実行できます。以下の例は、2つの同一構造モデルの状態辞書を平均化する方法を示しています。
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")
データセットのアノテーション、トレーニング、デプロイメントという複雑なワークフローを簡素化したいチームにとって、Ultralytics Platformは、エンドツーエンドのビジョンAIプロジェクトを簡単に管理するための直感的なインターフェースを提供します。
未来の機械学習で、新たな一歩を踏み出しましょう。