コンテンツへスキップ

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



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (6), Burhan-Q (1)

コメント