MLflowの統合Ultralytics YOLO
はじめに
実験ロギングは、様々なメトリクス、パラメータ、アーティファクトの追跡を可能にする、機械学習ワークフローの重要な側面である。これは、モデルの再現性を高め、問題をデバッグし、モデルのパフォーマンスを向上させるのに役立ちます。 UltralyticsYOLOリアルタイムのオブジェクト検出機能で知られるMLflowは、現在、完全な機械学習ライフサイクル管理のためのオープンソースプラットフォームであるMLflowとの統合を提供しています。
このドキュメンテーション・ページは、Ultralytics YOLO プロジェクトのための MLflow ロギング機能のセットアップと利用に関する包括的なガイドです。
MLflowとは?
MLflowは、機械学習のライフサイクルをエンドツーエンドで管理するためにDatabricks社が開発したオープンソースのプラットフォームです。実験の追跡、再現可能な実行へのコードのパッケージ化、モデルの共有とデプロイのためのツールが含まれています。MLflowは、どのような機械学習ライブラリやプログラミング言語でも動作するように設計されています。
特徴
- メトリクス・ロギング:各エポック終了時とトレーニング終了時にメトリクスをログに記録します。
- パラメータログ:トレーニングで使用されたすべてのパラメータをログに記録します。
- 成果物のログ:トレーニング終了時に、重みと設定ファイルを含むモデルの成果物をログに記録します。
セットアップと前提条件
MLflowがインストールされていることを確認してください。インストールされていない場合は、pipを使用してインストールしてください:
Ultralytics の設定でMLflowのロギングが有効になっていることを確認してください。通常、これは mflow
キーを参照してください。 設定 のページを参照。
Ultralytics MLflow設定の更新
Python 。 update
メソッドを settings
オブジェクトの設定を変更します:
使用方法
コマンド
プロジェクト名を設定する:環境変数でプロジェクト名を設定できます:
または
project=<project>
YOLO 引数で指定する。yolo train project=my_project
.ラン名の設定:プロジェクト名の設定と同様に、環境変数を使ってラン名を設定することができます:
または
name=<name>
YOLO 引数で指定する。yolo train project=my_project name=my_name
.ローカル MLflow サーバーを起動します:トラッキングを開始するには
でローカル・サーバーを起動する。 http://127.0.0.1:5000 デフォルトでは、すべてのmlflowログは'runs/mlflow'ディレクトリに保存されます。別のURIを指定するには
MLFLOW_TRACKING_URI
環境変数。MLflow サーバーインスタンスを停止します:実行中の MLflow インスタンスをすべて停止するには、以下を実行します:
ロギング
ロギングは 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のロギングをオフにするには
結論
MLflow logging integration withUltralytics YOLO は、機械学習実験を追跡する合理的な方法を提供します。パフォーマンス・メトリクスを監視し、成果物を効果的に管理することで、堅牢なモデル開発とデプロイを支援します。詳細については、MLflow の公式ドキュメントを参照してください。
よくあるご質問
Ultralytics YOLO でMLflowのロギングを設定するには?
Ultralytics YOLO でMLflowのロギングをセットアップするには、まずMLflowがインストールされていることを確認する必要があります。pipを使ってインストールできます:
次に、Ultralytics の設定でMLflowのロギングを有効にします。これは mlflow
キーを使用します。詳しくは 設定ガイド.
Ultralytics MLflow設定の更新
最後に、トラッキング用にローカルのMLflowサーバーを立ち上げる:
Ultralytics YOLO でMLflowを使用して、どのようなメトリクスやパラメータをログに記録できますか?
Ultralytics YOLO MLflowは、トレーニングプロセス全体を通して、様々なメトリクス、パラメータ、成果物のロギングをサポートします:
- メトリクス・ロギング:各エポックの終了時とトレーニング完了時にメトリクスを追跡します。
- パラメータログ:トレーニングプロセスで使用されたすべてのパラメータをログに記録します。
- 成果物ログ:トレーニング後のウェイトや設定ファイルなどのモデル成果物を保存します。
より詳細な情報については、Ultralytics YOLO トラッキング・ドキュメントをご覧ください。
一度有効にしたMLflowのロギングを無効にできますか?
はい、Ultralytics YOLO の設定を更新することで、MLflowのロギングを無効にすることができます。以下は、CLI を使った方法です:
さらなるカスタマイズや設定のリセットについては、設定ガイドを参照してください。
Ultralytics YOLO トラッキングのための MLflow サーバーを開始および停止するにはどうすればよいですか?
Ultralytics YOLO で実験を追跡するための MLflow サーバーを開始するには、以下のコマンドを使用します:
このコマンドは、デフォルトではhttp://127.0.0.1:5000でローカル サーバーを起動します。実行中の MLflow サーバー インスタンスを停止する必要がある場合は、次のbash コマンドを使用します:
その他のコマンドオプションについては、コマンドセクションを参照のこと。
実験追跡のためにMLflowをUltralytics YOLO と統合する利点は何ですか?
MLflow をUltralytics YOLO と統合することで、機械学習実験を管理する上でいくつかの利点が得られます:
- 実験追跡機能の強化:異なる実験とその結果を簡単に追跡、比較できます。
- モデルの再現性の向上:すべてのパラメータとアーチファクトを記録することで、実験の再現性を確保します。
- パフォーマンスのモニタリング:パフォーマンス指標を時系列で可視化し、データに基づいてモデル改善の意思決定を行います。
MLflow のUltralytics YOLO でのセットアップと活用の詳細については、MLflow Integration forUltralytics YOLO のドキュメントを参照してください。