コンテンツへスキップ

MLflowの統合Ultralytics YOLO

MLflowエコシステム

はじめに

実験ロギングは、様々なメトリクス、パラメータ、アーティファクトの追跡を可能にする、機械学習ワークフローの重要な側面である。これは、モデルの再現性を高め、問題をデバッグし、モデルのパフォーマンスを向上させるのに役立ちます。 UltralyticsYOLOリアルタイムのオブジェクト検出機能で知られるMLflowは、現在、完全な機械学習ライフサイクル管理のためのオープンソースプラットフォームであるMLflowとの統合を提供しています。

このドキュメンテーション・ページは、Ultralytics YOLO プロジェクトのための MLflow ロギング機能のセットアップと利用に関する包括的なガイドです。

MLflowとは?

MLflowは、機械学習のライフサイクルをエンドツーエンドで管理するためにDatabricks社が開発したオープンソースのプラットフォームです。実験の追跡、再現可能な実行へのコードのパッケージ化、モデルの共有とデプロイのためのツールが含まれています。MLflowは、どのような機械学習ライブラリやプログラミング言語でも動作するように設計されています。

特徴

  • メトリクス・ロギング:各エポック終了時とトレーニング終了時にメトリクスをログに記録します。
  • パラメータログ:トレーニングで使用されたすべてのパラメータをログに記録します。
  • 成果物のログ:トレーニング終了時に、重みと設定ファイルを含むモデルの成果物をログに記録します。

セットアップと前提条件

MLflowがインストールされていることを確認する。インストールされていない場合は、pipを使用してインストールしてください:

pip install mlflow

Ultralytics の設定でMLflowのロギングが有効になっていることを確認してください。通常、これは mflow キーを参照してください。 設定 のページを参照。

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 runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

使用方法

コマンド

  1. プロジェクト名を設定する:環境変数でプロジェクト名を設定できます:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    または project=<project> YOLO 引数で指定する。 yolo train project=my_project.

  2. ラン名の設定:プロジェクト名の設定と同様に、環境変数を使ってラン名を設定することができます:

    export MLFLOW_RUN=<your_run_name>
    

    または name=<name> YOLO 引数で指定する。 yolo train project=my_project name=my_name.

  3. ローカル MLflow サーバーを起動します:トラッキングを開始するには

    mlflow server --backend-store-uri runs/mlflow'
    

    でローカル・サーバーを起動する。 http://127.0.0.1:5000 デフォルトでは、すべてのmlflowログは'runs/mlflow'ディレクトリに保存されます。別のURIを指定するには MLFLOW_TRACKING_URI 環境変数。

  4. 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 コールバック関数。これらの関数は、トレーニング・プロセスの各段階で自動的に呼び出され、パラメータ、メトリクス、成果物のロギングを処理します。

  1. カスタムメトリクスのログ:を変更することで、ログに記録するカスタムメトリクスを追加できます。 trainer.metrics 辞書前 on_fit_epoch_end と呼ばれる。

  2. 実験を見る:ログを表示するには、MLflow サーバー(通常は http://127.0.0.1:5000)で実験を選択し、実行する。 YOLO MLflow実験

  3. ランを見る:ランとは、実験内の個々のモデルのことです。ランをクリックすると、アップロードされたアーティファクトやモデルの重みを含むランの詳細を見ることができます。 YOLO MLフロー・ラン

MLflowを無効にする

MLflowのロギングをオフにするには

yolo settings mlflow=False

結論

MLflow logging integration withUltralytics YOLO は、機械学習実験を追跡する合理的な方法を提供します。パフォーマンス・メトリクスを監視し、成果物を効果的に管理することで、堅牢なモデル開発とデプロイを支援します。詳細については、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 runs_dir='/path/to/runs'

# 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 のドキュメントを参照してください。



作成日:2023-11-12 更新日:2024-07-05
作成者:glenn-jocher(8),Burhan-Q(1)

コメント