Ultralytics YOLOのMLflow連携
はじめに
実験のロギングは、さまざまなメトリクス、パラメータ、およびアーティファクトの追跡を可能にする機械学習ワークフローの重要な側面です。モデルの再現性を高め、問題をデバッグし、モデルのパフォーマンスを向上させるのに役立ちます。リアルタイムの物体検出機能で知られるUltralytics YOLOは、完全な機械学習ライフサイクル管理のためのオープンソースプラットフォームであるMLflowとの統合を提供するようになりました。
このドキュメントページは、Ultralytics YOLOプロジェクトのMLflowロギング機能を設定および利用するための包括的なガイドです。
MLflowとは何ですか?
MLflowは、Databricksが開発した、エンドツーエンドの機械学習ライフサイクルを管理するためのオープンソースプラットフォームです。実験の追跡、再現可能な実行へのコードのパッケージ化、モデルの共有とデプロイのためのツールが含まれています。MLflowは、あらゆる機械学習ライブラリおよびプログラミング言語と連携するように設計されています。
機能
- メトリクスロギング:各エポックの終了時とトレーニングの終了時にメトリクスを記録します。
- パラメータロギング: 学習で使用されるすべてのパラメータを記録します。
- アーティファクトのログ記録: トレーニング終了時に、重みや構成ファイルを含むモデルアーティファクトをログに記録します。
セットアップと前提条件
MLflowがインストールされていることを確認してください。インストールされていない場合は、pipを使用してインストールしてください。
pip install mlflow
Ultralyticsの設定でMLflowロギングが有効になっていることを確認してください。通常、これは設定によって制御されます。 mlflow
キーをご覧ください。 設定 詳細については、こちらのページをご覧ください。
Ultralytics MLflow設定の更新
Python 環境内で、以下を呼び出します。 update
のメソッド settings
オブジェクトから設定を変更するには:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
コマンドラインインターフェースを使用する場合は、次のコマンドで設定を変更できます。
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
使用方法
コマンド
-
プロジェクト名を設定: 環境変数を使用してプロジェクト名を設定できます。
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
または、以下を使用してください。
project=<project>
YOLO モデルをトレーニングする際の引数、例えばyolo train project=my_project
. -
実行名を設定: プロジェクト名を設定するのと同様に、環境変数を使用して実行名を設定できます。
export MLFLOW_RUN=YOUR_RUN_NAME
または、以下を使用してください。
name=<name>
YOLO モデルをトレーニングする際の引数、例えばyolo train project=my_project name=my_name
. -
ローカルMLflowサーバーの起動: トラッキングを開始するには、以下を使用します。
mlflow server --backend-store-uri runs/mlflow
これにより、ローカルサーバーが起動します。
http://127.0.0.1:5000
デフォルトでは、すべてのmlflowログを'runs/mlflow'ディレクトリに保存します。別のURIを指定するには、以下を設定します。MLFLOW_TRACKING_URI
環境変数。 -
MLflowサーバーインスタンスの停止: 実行中のすべてのMLflowインスタンスを停止するには、以下を実行します。
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
ロギング
ロギングはによって処理されます。 on_pretrain_routine_end
, on_fit_epoch_end
、および on_train_end
コールバック関数これらの関数は、トレーニングプロセスのそれぞれの段階で自動的に呼び出され、パラメータ、メトリクス、アーティファクトのロギングを処理します。
例
-
カスタムメトリクスのロギング:カスタムメトリックをログに記録するには、
trainer.metrics
辞書より前にon_fit_epoch_end
が呼び出されます。 -
実験の表示:ログを表示するには、MLflowサーバー(通常は
http://127.0.0.1:5000
)を選択して実験を実行します。 -
実行の表示: Runsは、実験内の個々のモデルです。Runをクリックすると、アップロードされたアーティファクトやモデルの重みなど、Runの詳細が表示されます。
MLflowの無効化
MLflowロギングをオフにするには:
yolo settings mlflow=False
結論
Ultralytics YOLOとMLflowのロギング統合により、機械学習の実験を効率的に追跡できます。パフォーマンス指標の監視と成果物の効果的な管理を可能にし、堅牢なモデル開発とデプロイを支援します。詳細については、MLflowの公式ドキュメントをご覧ください。
よくある質問
Ultralytics YOLO で MLflow ロギングを設定するにはどうすればよいですか?
Ultralytics YOLOでMLflowロギングを設定するには、まずMLflowがインストールされていることを確認する必要があります。pipを使用してインストールできます:
pip install mlflow
次に、Ultralytics設定でMLflowロギングを有効にします。これは、以下を使用して制御できます。 mlflow
キーをご覧ください。詳細については、 設定ガイド.
Ultralytics MLflow設定の更新
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
最後に、追跡のためにローカルMLflowサーバーを起動します。
mlflow server --backend-store-uri runs/mlflow
Ultralytics YOLO で MLflow を使用して、どのような指標やパラメータを記録できますか?
MLflowを使用したUltralytics YOLOは、トレーニングプロセス全体でさまざまなメトリクス、パラメータ、およびアーティファクトのログ記録をサポートしています。
- メトリクスロギング:各エポックの終了時およびトレーニング完了時にメトリクスを追跡します。
- パラメータロギング: 学習プロセスで使用されるすべてのパラメータを記録します。
- アーティファクトのログ記録: トレーニング後、重みや構成ファイルなどのモデルアーティファクトを保存します。
より詳細な情報については、Ultralytics YOLOトラッキングのドキュメントをご覧ください。
MLflowロギングを有効にした後で無効にできますか?
はい、設定を更新することで、Ultralytics YOLOのMLflowロギングを無効にできます。CLIを使用してこれを行う方法は次のとおりです。
yolo settings mlflow=False
設定のカスタマイズやリセットについては、設定ガイドを参照してください。
Ultralytics YOLOトラッキング用のMLflowサーバーを起動および停止するにはどうすればよいですか?
Ultralytics YOLOで実験を追跡するためのMLflowサーバーを起動するには、次のコマンドを使用します。
mlflow server --backend-store-uri runs/mlflow
このコマンドは、ローカルサーバーを起動します。 http://127.0.0.1:5000
デフォルトです。MLflowサーバーインスタンスの実行を停止する必要がある場合は、次のbashコマンドを使用します。
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
コマンドオプションの詳細については、コマンドセクションを参照してください。
実験の追跡のために MLflow を Ultralytics YOLO と統合する利点は何ですか?
MLflow を Ultralytics YOLO と統合すると、機械学習実験の管理にいくつかの利点があります。
- 実験の追跡機能の強化: さまざまな実行とその結果を簡単に追跡および比較できます。
- モデルの再現性の向上: すべてのパラメータとアーティファクトを記録することにより、実験の再現性を確保します。
- パフォーマンスモニタリング: 経時的なパフォーマンス指標を視覚化して、データに基づいた意思決定を行い、モデルを改善します。
- 効率化されたワークフロー: 手動での追跡作業を減らし、モデル開発により集中できるように、ログ記録プロセスを自動化します。
- Collaborative Development: より良いコラボレーションと知識共有のために、実験結果をチームメンバーと共有します。
Ultralytics YOLOでMLflowをセットアップして活用する方法の詳細については、Ultralytics YOLOのMLflow統合ドキュメントをご覧ください。