Link to this sectionUltralytics YOLO向けMLflow統合#
Link to this sectionはじめに#
Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.
本ドキュメントページは、お使いのUltralytics YOLOプロジェクトでMLflowのログ記録機能を設定および利用するための包括的なガイドです。
Link to this sectionMLflowとは何ですか?#
MLflowは、エンドツーエンドの機械学習ライフサイクルを管理するためにDatabricksが開発したオープンソースプラットフォームです。これには、実験の追跡、再現可能な実行のためのコードのパッケージ化、モデルの共有とデプロイを行うためのツールが含まれています。MLflowは、あらゆる機械学習ライブラリおよびプログラミング言語で動作するように設計されています。
Link to this section機能#
- 指標(メトリクス)のログ記録: 各エポックの終了時およびトレーニング終了時に指標を記録します。
- パラメータのログ記録: トレーニングで使用されたすべてのパラメータを記録します。
- アーティファクトのログ記録: トレーニング終了時に、ウェイトや設定ファイルを含むモデルアーティファクトを記録します。
Link to this section設定と前提条件#
MLflowがインストールされていることを確認してください。インストールされていない場合は、pipを使用してインストールします:
pip install mlflowUltralytics設定でMLflowのログ記録が有効になっていることを確認してください。通常、これは設定のmlflowキーによって制御されます。詳細は設定ページを参照してください。
Within the Python environment, call the update method on the settings object to change your settings:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Link to this section使用方法#
Link to this sectionコマンド#
-
プロジェクト名の設定: 環境変数を使用してプロジェクト名を設定できます:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEまたは、YOLOモデルのトレーニング時に
project=<project>引数を使用します(例:yolo train project=my_project)。 -
実行名の設定: プロジェクト名の設定と同様に、環境変数を使用して実行名を設定できます:
export MLFLOW_RUN=YOUR_RUN_NAMEまたは、YOLOモデルのトレーニング時に
name=<name>引数を使用します(例: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'ディレクトリに保存されます。トレーニングの実行先を別の追跡サーバーに向けるには、トレーニングの前にMLFLOW_TRACKING_URIをエクスポートしてください:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
トレーニング終了後もMLflowの実行をアクティブに保つ: デフォルトでは、Ultralyticsはトレーニング終了時に自動的にMLflowの実行を終了します。実行を継続(同じノートブックから追加の指標やアーティファクトを記録するなど)するには、トレーニングの前に
MLFLOW_KEEP_RUN_ACTIVEをTrueに設定します:export MLFLOW_KEEP_RUN_ACTIVE=True値は大文字と小文字を区別せずに解析されます。文字列
trueのみがこの動作を有効にし、それ以外の値(未設定を含む)はデフォルトの実行終了動作を維持します。後でmlflow.end_run()を使用して手動で終了させることを忘れないでください。 -
MLflowサーバーインスタンスの停止: 実行中のすべてのMLflowインスタンスを停止するには、以下を実行します:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Link to this sectionログ記録#
ログ記録は、on_pretrain_routine_end、on_fit_epoch_end、およびon_train_end コールバック関数によって処理されます。これらの関数はトレーニングプロセスの各ステージで自動的に呼び出され、パラメータ、指標、およびアーティファクトのログ記録を管理します。
Link to this section例#
-
Logging Custom Metrics: You can add custom metrics to be logged by modifying the
trainer.metricsdictionary beforeon_fit_epoch_endis called. -
実験の表示: ログを表示するには、MLflowサーバー(通常は
http://127.0.0.1:5000)に移動し、実験と実行を選択してください。
-
実行の表示: 実行は実験内の個々のモデルです。実行をクリックすると、アップロードされたアーティファクトやモデルのウェイトを含む実行の詳細を確認できます。

Link to this sectionMLflowの無効化#
MLflowのログ記録をオフにするには:
yolo settings mlflow=FalseLink to this section結論#
Ultralytics YOLOとのMLflowログ統合は、機械学習実験を追跡するための効率的な方法を提供します。これにより、パフォーマンス指標を監視し、アーティファクトを効果的に管理できるようになり、堅牢なモデル開発とデプロイをサポートします。詳細については、MLflow公式ドキュメントをご覧ください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralytics YOLOでMLflowのログ記録を設定するにはどうすればよいですか?#
Ultralytics YOLOでMLflowのログ記録を設定するには、まずMLflowがインストールされていることを確認する必要があります。pipを使用してインストールできます:
pip install mlflow次に、Ultralytics設定でMLflowのログ記録を有効にします。これはmlflowキーを使用して制御できます。詳細については、設定ガイドを参照してください。
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()最後に、追跡のためにローカルMLflowサーバーを起動します:
mlflow server --backend-store-uri runs/mlflowLink to this sectionUltralytics YOLOとMLflowを使用して、どのような指標とパラメータを記録できますか?#
MLflowを統合したUltralytics YOLOでは、トレーニングプロセス全体を通じてさまざまな指標、パラメータ、アーティファクトの記録をサポートしています:
- 指標のログ記録: 各エポックの終了時およびトレーニング完了時に指標を追跡します。
- パラメータのログ記録: トレーニングプロセスで使用されるすべてのパラメータを記録します。
- アーティファクトのログ記録: トレーニング後、ウェイトや設定ファイルなどのモデルアーティファクトを保存します。
詳細については、Ultralytics YOLO追跡ドキュメントを参照してください。
Link to this sectionMLflowのログ記録を有効にした後、無効にすることはできますか?#
はい、設定を更新することでUltralytics YOLOのMLflowログ記録を無効にできます。CLIを使用した方法は以下の通りです:
yolo settings mlflow=False設定のさらなるカスタマイズやリセットについては、設定ガイドを参照してください。
Link to this sectionUltralytics 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その他のコマンドオプションについては、コマンドセクションを参照してください。
Link to this sectionトレーニング終了後もMLflowの実行をアクティブに保つにはどうすればよいですか?#
トレーニングの前に環境変数MLFLOW_KEEP_RUN_ACTIVEをTrueに設定します:
export MLFLOW_KEEP_RUN_ACTIVE=TrueデフォルトではこれはFalseであるため、Ultralyticsはトレーニング完了時にmlflow.end_run()を呼び出します。MLFLOW_KEEP_RUN_ACTIVE=Trueに設定すると、実行がアクティブなままになるため、同じPythonセッションから追加の指標、パラメータ、またはアーティファクトを記録できます。完了後はmlflow.end_run()を使用して手動で終了してください。値は大文字と小文字を区別せず、trueのみがこの動作を有効にします。
Link to this sectionUltralytics YOLOとMLflowを統合して実験追跡を行うメリットは何ですか?#
MLflowとUltralytics YOLOを統合することで、機械学習実験の管理においていくつかのメリットが得られます:
- 実験追跡の強化: 異なる実行とその結果を簡単に追跡・比較できます。
- モデルの再現性向上: すべてのパラメータとアーティファクトを記録することで、実験の再現性を確保します。
- パフォーマンス監視: 時間の経過に伴うパフォーマンス指標を可視化し、モデル改善のためのデータに基づいた意思決定を支援します。
- ワークフローの効率化: ログ記録プロセスを自動化し、手動での追跡ではなくモデル開発に集中できるようにします。
- コラボレーション開発: 実験結果をチームメンバーと共有し、コラボレーションとナレッジ共有を促進します。
Ultralytics YOLOでMLflowを設定し活用するための詳細については、Ultralytics YOLO向けMLflow統合ドキュメントをご覧ください。