Ultralytics YOLO27:
インテグレーション

ClearMLを使用してUltralytics YOLOv5をリモートでトレーニング・監視する

ClearMLとのパートナーシップにより、シームレスなML統合、実験トラッキングなどを実現し、Ultralytics YOLOv5の体験を向上させる取り組みをご覧ください。

NUNuvola Ladi7 min read
ClearMLでYOLOv5をトレーニング・監視する

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

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

ML導入の加速を使命とするClearMLは、あらゆるSoftwareおよびHardware製品へのMLの統合をシームレスにします。

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

実験のトラッキングを次のレベルへ引き上げる#

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

これらのツールをいくつ使用するかは自由に選択できます。実験マネージャーだけを使用することも、すべてをつなぎ合わせて優れたパイプラインにすることもできます。

セットアップ#

実験とデータを追跡するため、ClearMLはサーバーと通信する必要があります。方法は2つあります。ClearML Hosted Serviceに無料登録するか、独自のサーバーをセットアップしてください。詳しくはClearML Server deployment docsをご覧ください。

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

  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を使用します)
  • コンソール出力
  • スカラー(mAP_0.5、mAP_0.5:0.95、precision、recall、losses、learning rates、...)
  • マシンの詳細、ランタイム、作成日などの一般情報
  • ラベル相関図や混同行列など、生成されたすべてのプロット
  • エポックごとのバウンディングボックス付き画像
  • エポックごとのモザイク
  • エポックごとの検証画像

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

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

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

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

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

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

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

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

cd coco128

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

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

# 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の機能です。

ハイパーパラメーター最適化をローカルで実行するために、あらかじめ用意されたスクリプトを同梱しています。トレーニングタスクが少なくとも1回実行され、ClearML実験マネージャーに登録されていることを確認してください。基本的には、そのタスクをクローンしてハイパーパラメーターを変更します。

スクリプト内にあるこのテンプレートタスクのID(utils/loggers/clearml/hpo.py)を入力して実行します。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エージェントはまさにそれを実行します。キューで着信タスクを待機し、タスクを見つけると環境を再作成して実行しながら、スカラーやプロットなどを実験マネージャーに引き続き報告します。

次のコマンドを実行するだけで、あらゆるマシン(クラウドVM、ローカルGPUマシン、自分のノートパソコン)をClearMLエージェントにできます:

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

クローン、編集、キューへの追加#

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

🪄 実験を右クリックしてクローンします

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

⏳ タスクを右クリックして、いずれかのキューに追加します

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

上記で説明したようにタスクをクローンすることも、現在のスクリプトに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

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

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

Ultralytics YOLOを使用して、ドローンや航空画像から農業、水産業、環境モニタリング、保全、地理空間分析向けのリアルタイムなインサイトを生成します。
詳細を見る
航空宇宙におけるコンピュータビジョン

航空宇宙におけるコンピュータビジョン

Ultralytics YOLOモデルを使用して、ビジョンAIを空中モニタリングに導入します。コンピュータビジョンソリューションで、ドローン、航空宇宙ワークフロー、環境保護、および地理空間産業を強力にサポートします。
詳細を見る

Ultralytics YOLOモデルであらゆるサイトを保護します。ビジョンAIは、境界モニタリング、脅威検出、ナンバープレート認識、職場安全をサポートします。
詳細を見る
ロボティクスのコンピュータービジョン

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

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

物流のコンピュータービジョン

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

小売のコンピュータービジョン

Ultralytics YOLOモデルで小売を再構築します。Vision AIにより、在庫追跡、棚監視、待ち行列管理、より高度な顧客インサイトを実現します。
詳細を見る
ヘルスケア向けコンピュータービジョン

ヘルスケア向けコンピュータービジョン

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

製造業向けコンピュータービジョン

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

自動車分野のコンピュータビジョン

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

農業分野のコンピュータビジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入します。作物のモニタリング、家畜の追跡、精密農業を支援し、より高くスマートな収穫量を実現します。
詳細を見る
航空画像向けコンピュータービジョン

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

Ultralytics YOLOを使用して、ドローンや航空画像から農業、水産業、環境モニタリング、保全、地理空間分析向けのリアルタイムなインサイトを生成します。
詳細を見る
航空宇宙におけるコンピュータビジョン

航空宇宙におけるコンピュータビジョン

Ultralytics YOLOモデルを使用して、ビジョンAIを空中モニタリングに導入します。コンピュータビジョンソリューションで、ドローン、航空宇宙ワークフロー、環境保護、および地理空間産業を強力にサポートします。
詳細を見る

Ultralytics YOLOモデルであらゆるサイトを保護します。ビジョンAIは、境界モニタリング、脅威検出、ナンバープレート認識、職場安全をサポートします。
詳細を見る
ロボティクスのコンピュータービジョン

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

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

物流のコンピュータービジョン

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

小売のコンピュータービジョン

Ultralytics YOLOモデルで小売を再構築します。Vision AIにより、在庫追跡、棚監視、待ち行列管理、より高度な顧客インサイトを実現します。
詳細を見る
ヘルスケア向けコンピュータービジョン

ヘルスケア向けコンピュータービジョン

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

製造業向けコンピュータービジョン

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

自動車分野のコンピュータビジョン

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

農業分野のコンピュータビジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入します。作物のモニタリング、家畜の追跡、精密農業を支援し、より高くスマートな収穫量を実現します。
詳細を見る
航空画像向けコンピュータービジョン

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

Ultralytics YOLOを使用して、ドローンや航空画像から農業、水産業、環境モニタリング、保全、地理空間分析向けのリアルタイムなインサイトを生成します。
詳細を見る
航空宇宙におけるコンピュータビジョン

航空宇宙におけるコンピュータビジョン

Ultralytics YOLOモデルを使用して、ビジョンAIを空中モニタリングに導入します。コンピュータビジョンソリューションで、ドローン、航空宇宙ワークフロー、環境保護、および地理空間産業を強力にサポートします。
詳細を見る

Ultralytics YOLOモデルであらゆるサイトを保護します。ビジョンAIは、境界モニタリング、脅威検出、ナンバープレート認識、職場安全をサポートします。
詳細を見る
ロボティクスのコンピュータービジョン

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

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

物流のコンピュータービジョン

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

小売のコンピュータービジョン

Ultralytics YOLOモデルで小売を再構築します。Vision AIにより、在庫追跡、棚監視、待ち行列管理、より高度な顧客インサイトを実現します。
詳細を見る
ヘルスケア向けコンピュータービジョン

ヘルスケア向けコンピュータービジョン

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

製造業向けコンピュータービジョン

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

自動車分野のコンピュータビジョン

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

農業分野のコンピュータビジョン

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

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

機械学習の未来への歩みを始めましょう