YOLO26の紹介: 次世代のビジョンAI。
Ultralytics
統合

ClearMLを使用してUltralytics YOLOv5を遠隔トレーニングおよび監視する

シームレスなML統合、実験追跡などを備えた、より優れたUltralytics YOLOv5体験のためのClearMLとのパートナーシップを探ります。

ULUltralyticsチーム
4 min read
ClearMLを用いたYOLOv5のトレーニングと監視

Ultralyticsでは、YOLOv5のような優れたオープンソースツールの研究開発資金を確保し、誰でも無料で利用できるようにするため、他のスタートアップ企業と商業的なパートナーシップを結んでいます。この記事には、それらのパートナーへのアフィリエイトリンクが含まれている場合があります。

ClearMLは当社の最新のパートナーであり、時間を節約するために設計されたオープンソースのツールボックスです。

ML導入の加速をミッションに掲げるClearMLは、あらゆるソフトウェアおよびハードウェア製品にMLをシームレスに統合できるようにします。

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

Link to this section実験追跡を次のレベルへ#

  • すべてのYOLOv5トレーニング実行を実験マネージャーで追跡します。
  • 統合されたClearMLデータバージョニングツールを使用して、カスタムトレーニングデータをバージョン管理し、簡単にアクセスできます。
  • ClearMLのハイパーパラメータ最適化を使用して、最高のmAPを実現しましょう。
  • ClearML Servingを使用すれば、わずかなコマンドでトレーニング済みのYOLOv5モデルをAPI化できます。

これらのツールをどれだけ使用するかは自由です。実験マネージャーのみを使用することも、すべてを連携させて印象的なパイプラインを構築することも可能です。

Link to this sectionセットアップ#

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

サーバー自体もオープンソースであるため、機密データを扱っている場合でも問題ありません!

  1. clearml pythonパッケージをインストールします: pip install clearml
  2. ClearML SDKをサーバーに接続するには、認証情報を作成(右上の設定 → ワークスペース → 新しい認証情報の作成に移動)してから、以下のコマンドを実行して指示に従ってください: clearml-init

これで完了です!準備は整いました...

Link to this sectionClearMLを使用した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

以下がキャプチャされます:

  • ソースコード + コミットされていない変更
  • インストール済みのパッケージ
  • (ハイパー)パラメータ
  • モデルファイル (--save-period n を使用してnエポックごとにチェックポイントを保存)
  • コンソール出力
  • スカラー (mAP_0.5, mAP_0.5:0.95, 精度, 再現率, 損失, 学習率, ...)
  • マシン詳細、ランタイム、作成日などの一般情報
  • ラベルコレログラムや混同行列など、生成されたすべてのプロット
  • エポックごとのバウンディングボックス付き画像
  • エポックごとのモザイク画像
  • エポックごとの検証画像

素晴らしいですね!これで、ClearML UIでこれらの情報をすべて可視化し、トレーニングの進捗状況を概観できるようになりました。テーブルビューにカスタム列(例: mAP_0.5)を追加すれば、パフォーマンスの高いモデルで簡単にソートできます。また、複数の実験を選択して直接比較することも可能です!

ハイパーパラメータ最適化やリモート実行など、これらの情報を使ってさらに多くのことができます。読み進めてその方法を学びましょう!

Link to this sectionデータセットのバージョン管理#

コードとは別にデータをバージョン管理することは一般的に良い習慣であり、最新バージョンを簡単に取得できるようになります。このリポジトリはデータセットバージョンIDの指定をサポートしており、データが存在しない場合は確実に取得します。さらに、このワークフローでは使用したデータセットIDがタスクパラメータの一部として保存されるため、どの実験でどのデータが使用されたかを常に確実に把握できます!

Link to this sectionデータセットを準備する#

YOLOv5リポジトリは、情報を含むYAMLファイルを使用することで多くの異なるデータセットをサポートしています。デフォルトでは、データセットはリポジトリのルートフォルダに関連する../datasetsフォルダにダウンロードされます。したがって、YAML内のリンクまたはyolov5が提供するスクリプトを使用してcoco128データセットをダウンロードした場合、以下のフォルダ構造になります:

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

しかし、これはご希望のどのようなデータセットでも構いません。このフォルダ構造に従う限り、自由に使用できます。

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

基本的には、path, train, test, val, nc, namesというキーが必要です。

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

Link to this sectionデータセットをアップロードする#

このデータセットをバージョン管理されたデータセットとして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

Link to this sectionClearMLデータセットを使用してトレーニングを実行する#

ClearMLデータセットを作成したら、それを使用してカスタムYOLOv5モデルを非常に簡単にトレーニングできます。

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

Link to this sectionハイパーパラメータ最適化#

実験とデータのバージョンが用意できたので、その上で何を構築できるかを見ていきましょう!

コード情報、インストール済みパッケージ、環境の詳細を使用することで、実験自体が完全に再現可能になりました。実際、ClearMLでは実験をクローンしたり、パラメータを変更したりできます。そして、それらの新しいパラメータで自動的に再実行するだけでよく、これが実質的にHPOが行うことです!

ハイパーパラメータ最適化をローカルで実行するために、あらかじめ用意されたスクリプトを同梱しています。トレーニングタスクが少なくとも1回実行され、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

Link to this sectionリモート実行(高度)#

HPOをローカルで実行するのは非常に便利ですが、実験をリモートマシンで実行したい場合はどうすればよいでしょうか?オンサイトに非常に強力なGPUマシンがある場合や、クラウドGPUを使用する予算がある場合などです。ここでClearMLエージェントの出番です。

エージェントでできることについては、以下を確認してください:

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

任意のマシン(クラウドVM、ローカルのGPUマシン、自分のノートPC)をClearMLエージェントにするには、以下のコマンドを実行するだけです:

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

Link to this sectionクローン、編集、エンキュー#

エージェントが動作していれば、作業を割り当てることができます。HPOセクションで学んだように、タスクをクローンしてハイパーパラメータを編集できることは覚えていますか?インターフェースからもそれが可能です!

🪄 実験を右クリックしてクローンを作成する

🎯 ハイパーパラメータを希望の値に編集する

⏳ タスクを右クリックして任意のキューにエンキューする

Link to this sectionタスクをリモートで実行する#

上記のようにタスクをクローンすることもできますし、現在のスクリプトにtask.execute_remotely()を追加してマークするだけでも構いません。実行時にキューに入れられ、エージェントが作業を開始します!

YOLOv5トレーニングスクリプトをリモートで実行するには、ClearMLロガーをインスタンス化した後、train.pyスクリプトにこの行を追加するだけです:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

質問はありますか?コミュニティに参加して、今すぐ質問を投稿してください!

Explore solutions

Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら
Real-time AI that works with your team

ロボティクスにおけるAI

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律航行、認識、物体追跡、リアルタイム制御を推進します。
詳細はこちら
Real-time AI that works with your team

物流におけるAI

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物の検査、仕分け、車両追跡、リアルタイムの倉庫安全モニタリングが可能になります。
詳細はこちら
Real-time AI that works with your team

小売業界におけるAI

Ultralytics YOLOモデルで小売を再定義しましょう。ビジョンAIは、在庫追跡、棚のモニタリング、キュー管理、そしてより賢明な顧客インサイトを促進します。
詳細はこちら
Real-time AI that works with your team

ヘルスケアにおけるAI

Ultralytics YOLOモデルを使用してヘルスケアソリューションを構築しましょう。ヘルスケア分野におけるビジョンAIは、より高速な医療画像診断、よりスマートな診断、患者モニタリングを推進します。
詳細はこちら
Real-time AI that works with your team

製造におけるAI

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPEコンプライアンス、組立ラインの自動化を促進します。
詳細はこちら
Real-time AI that works with your operation

自動車におけるAI

Ultralytics YOLOモデルを使用して、自動車分野にコンピュータビジョンを適用しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳細はこちら
Real-time AI tailored to your operation

農業におけるAI

Ultralytics YOLOモデルを使用して、スマート農業にビジョンAIを導入しましょう。作物モニタリング、家畜のトラッキング、精密農業を強化し、より高くスマートな収穫を実現します。
詳細はこちら

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

機械学習の未来とともに旅を始めましょう