MLflowの統合Ultralytics YOLO
はじめに
実験ロギングは、様々なメトリクス、パラメータ、アーティファクトの追跡を可能にする、機械学習ワークフローの重要な側面である。これは、モデルの再現性を高め、問題をデバッグし、モデルのパフォーマンスを向上させるのに役立ちます。 UltralyticsYOLOリアルタイムのオブジェクト検出機能で知られるMLflowは、現在、完全な機械学習ライフサイクル管理のためのオープンソースプラットフォームである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
)で実験を選択し、実行する。 -
ランを見る:ランとは、実験内の個々のモデルのことです。ランをクリックすると、アップロードされたアーティファクトやモデルの重みを含むランの詳細を見ることができます。
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を使用して、どのようなメトリクスやパラメータをログに記録できますか?
Ultralytics YOLO MLflowは、トレーニングプロセス全体を通して、様々なメトリクス、パラメータ、成果物のロギングをサポートします:
- メトリクス・ロギング:各エポックの終了時とトレーニング完了時にメトリクスを追跡します。
- パラメータログ:トレーニングプロセスで使用されたすべてのパラメータをログに記録します。
- 成果物ログ:トレーニング後のウェイトや設定ファイルなどのモデル成果物を保存します。
より詳細な情報については、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 と統合することで、機械学習実験を管理する上でいくつかの利点が得られます:
- 実験追跡機能の強化:異なる実験とその結果を簡単に追跡、比較できます。
- モデルの再現性の向上:すべてのパラメータとアーチファクトを記録することで、実験の再現性を確保します。
- パフォーマンスのモニタリング:パフォーマンス指標を時系列で可視化し、データに基づいてモデル改善の意思決定を行います。
- 合理化されたワークフロー:ロギングプロセスを自動化することで、手作業によるトラッキングよりもモデル開発に集中できます。
- 共同開発:実験結果をチームメンバーと共有し、より良いコラボレーションと知識の共有を実現。
MLflow のUltralytics YOLO でのセットアップと活用の詳細については、MLflow Integration forUltralytics YOLO のドキュメントを参照してください。