モデルマージングによって、複数の事前学習済みモデルがどのように1つに統合されるのかをご紹介します。Ultralytics 重みデータを融合させ、追加の遅延を生じさせることなくパフォーマンスを向上させる方法をご確認ください。
モデルマージングは、機械学習(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 は、直感的なインターフェースを備えており、 エンドツーエンドのビジョンAIプロジェクトをスムーズに管理できます。
未来の機械学習で、新たな一歩を踏み出しましょう。