Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
インテグレーション

ClearMLを使用してUltralytics YOLOv5をリモートでトレーニングおよびモニタリング

ClearMLを使って実験を追跡し、データセットをバージョン管理し、ハイパーパラメーターを調整して、リモートマシンでUltralytics YOLOv5モデルをトレーニングする方法を学びます。

Nuvola LadiNuvola Ladi7 分で読めます
ClearMLを使ったYOLOv5のトレーニングとモニタリング

Ultralyticsは、YOLOv5などのオープンソースツールを誰もが無料で利用できるようにするため、研究開発の資金調達を支援する他のスタートアップと商業提携しています。この記事には、提携先へのアフィリエイトリンクが含まれる場合があります。

ClearMLは、時間の節約を目的に設計されたオープンソースのツールボックスで、私たちの新しいパートナーです。

ClearMLは、MLの導入を加速するという使命のもと、あらゆるソフトウェア製品やハードウェア製品にMLを簡単に統合できるようにします。

この統合により、YOLOv5モデルのトレーニングがさらに簡単になり、ClearMLの実験マネージャーを使って実験を自動的に追跡できます。ClearMLデータセットのバージョンIDを入力データとして簡単に指定でき、自動的にモデルのトレーニングに使用されます。

実験の追跡を次のレベルへ#

  • YOLOv5のすべてのトレーニング実行を実験マネージャーで追跡できます。
  • 統合されたClearML Data Versioning Toolを使って、カスタムトレーニングデータのバージョンを管理し、簡単にアクセスできます。
  • ClearML Hyperparameter Optimizationで最高のmAPを実現できます。
  • ClearML Servingを使えば、わずか数個のコマンドで新たにトレーニングしたYOLOv5モデルをAPIに変換できます。

これらのツールをいくつ使うかは自由です。実験マネージャーだけを使うことも、すべてを連携させて高度なパイプラインを構築することもできます。

セットアップ#

実験とデータを追跡するには、ClearMLがサーバーと通信する必要があります。選択肢は2つあります。ClearML Hosted Serviceに無料で登録するか、独自のサーバーをセットアップしてください。

サーバーもオープンソースなので、機密データを扱う場合でも問題ありません。

  1. ClearML Pythonパッケージをインストールします:pip install clearml
  2. 認証情報を作成してClearML SDKをサーバーに接続します(右上の「Settings → Workspace → Create new credentials」に進みます)。次に、以下のコマンドを実行して指示に従います:clearml-init

これで使い始める準備が整いました。

ClearMLを使ったYOLOv5のトレーニング#

ClearMLの実験追跡を有効にするには、ClearML pipパッケージをインストールするだけです。

pip install clearml

これにより、YOLOv5のトレーニングスクリプトとの統合が有効になります。以降のすべてのトレーニング実行は、ClearMLの実験マネージャーによって記録・保存されます。project_nameまたはtask_nameを変更する場合は、カスタムロガーで変更できます: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

次の情報が記録されます:

  • ソースコード + 未コミットの変更
  • インストール済みパッケージ
  • (ハイパー)パラメーター
  • モデルファイル(nエポックごとにチェックポイントを保存するには、--save-period nを使用します)
  • コンソール出力
  • スカラー値(mAP50、mAP50-95、適合率、再現率、損失、学習率など)
  • マシンの詳細、実行時間、作成日などの一般情報
  • ラベル相関図や混同行列など、生成されたすべてのプロット
  • 各エポックのバウンディングボックス付き画像
  • 各エポックのモザイク画像
  • 各エポックの検証画像

これで、トレーニングの進捗状況を概観するために、ClearML UIですべての情報を可視化できます。テーブルビューにカスタム列(mAP50など)を追加すると、最も高い性能を示すモデルで簡単に並べ替えられます。または、複数の実験を選択して直接比較できます!

この情報を活用すれば、ハイパーパラメーター最適化やリモート実行など、さらに多くのことができます。方法を知るには、このまま読み進めてください。

データセットのバージョン管理#

データをコードとは別にバージョン管理するのは一般に有効で、最新バージョンの取得も簡単になります。このリポジトリではデータセットのバージョンIDを指定でき、データがまだない場合は自動的に取得されます。さらに、このワークフローでは使用したデータセットIDもタスクのパラメーターとして保存されるため、どの実験でどのデータを使ったかをいつでも確認できます。

データセットを準備する#

YOLOv5リポジトリは、データ情報を含むYAMLファイルを使って、さまざまなデータセットに対応しています。デフォルトでは、データセットはリポジトリのルートフォルダーを基準とした../datasetsフォルダーにダウンロードされます。そのため、YAML内のリンクまたはYOLOv5が提供するスクリプトを使ってCOCO128データセットをダウンロードすると、次のフォルダー構成になります。

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

もちろん、これは任意のデータセットに置き換えられます。このフォルダー構成を維持すれば、ご自身のデータセットも自由に使用できます。

次に、対応するYAMLファイルをデータセットフォルダーのルートにコピーします。これらのYAMLファイルには、ClearMLがデータセットを適切に使用するために必要な情報が含まれています。もちろん、自分で作成することもできます。その場合は、サンプルYAMLの構成に従ってください。

YAMLファイルには次のキーが必要です:path、train、test、val、nc、およびnames。

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

データセットをアップロードする#

このデータセットをバージョン管理されたデータセットとしてClearMLに登録するには、データセットのルートフォルダーに移動して、次のコマンドを実行します。

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

コマンドclearml-data syncは、実際には短縮コマンドです。次のコマンドを順番に実行することもできます。

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

ClearMLデータセットを使って学習を実行する#

ClearMLデータセットを用意できたら、それを使ってカスタムYOLOv5モデルをトレーニングできます。

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

ハイパーパラメーター最適化#

実験とデータのバージョンが揃ったので、次にそれらを活用して何ができるか見ていきましょう。

コード情報、インストール済みパッケージ、環境の詳細を使うことで、実験を完全に再現できるようになりました。実際、ClearMLでは実験を複製し、パラメーターを変更することもできます。その後、変更したパラメーターで自動的に再実行できます。これは基本的にHPOの仕組みです。

ローカルでハイパーパラメーター最適化を実行するためのスクリプトを用意しています。トレーニングタスクを少なくとも一度実行し、ClearML実験マネージャーに登録されていることを確認してください。スクリプトが実験を複製し、ハイパーパラメーターを変更します。

スクリプトutils/loggers/clearml/hpo.pyでこのテンプレートタスクのIDを指定して、実行してください。task.execute_locally()をtask.execute()に変更すると、タスクをClearMLのキューに登録し、代わりにリモートエージェントで実行できます。

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

リモート実行(応用編)#

HPOをローカルで実行するのは便利ですが、実験をリモートマシンで実行したい場合はどうすればよいでしょうか。社内に高性能なGPUマシンがある場合や、クラウドGPUを利用する予算がある場合もあるでしょう。そこで活躍するのがClearML Agentです。

エージェントでできることはこちらをご覧ください。

簡単に言うと、実験マネージャーで追跡される各実験には、別のマシンで再現するために十分な情報(インストール済みパッケージ、未コミットの変更など)が含まれています。ClearML Agentはキューを監視し、タスクを見つけると環境を再構築して実行し、スカラー値やプロットなどを実験マネージャーに報告します。

次のコマンドを実行するだけで、マシン(クラウドVM、ローカルのGPUマシン、ご自身のノートPC)をClearML Agentにできます。

clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]

複製、編集、キューへの登録#

エージェントを起動したら、タスクを割り当てられます。HPOのセクションで説明したように、タスクを複製してハイパーパラメーターを編集できます。これはインターフェースからも実行できます。

  1. 実験を右クリックして複製します。
  2. ハイパーパラメーターを希望する値に編集します。
  3. タスクを右クリックして、任意のキューに登録します。

タスクをリモートで実行する#

上記の説明のようにタスクを複製するか、現在のスクリプトにtask.execute_remotely()を追加してください。実行するとタスクがキューに登録され、エージェントが処理を開始します。

YOLOv5の学習スクリプトをリモートで実行するには、ClearMLロガーを初期化した後、train.pyスクリプトに次の行を追加するだけです。

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # ロガーのインスタンス
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ この行を追加

ご質問はありますか?コミュニティに参加して、ぜひご質問ください。

執筆者

Nuvola Ladi
Nuvola Ladi

デジタルコンテンツマネージャー · Ultralytics

Nuvola LadiはUltralyticsのデジタルコンテンツマネージャーとして、ビジョンAIやUltralytics YOLOに関するコンテンツを制作し、PyTorch Conference 2025などの業界イベントで会社を代表しています。スペインを拠点とし、IE Universityでビジュアル・デジタルメディアの修士号を取得しています。Ultralyticsに入社する前は、XVA Gallery & HotelやRolexなどの組織で職務に就いていました。

コメント

質問したり、結果を共有したり、ほかの人をサポートしたりできます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

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

機械学習の未来に向けた歩みを始めましょう