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