Yolo 深圳
深セン
今すぐ参加

MLflow統合を使用したUltralytics YOLO 実験の記録

Abirami Vina

4分で読めます

2024年12月30日

MLflowの統合とロギングにより、Ultralytics YOLO 実験がどのように向上し、コンピュータビジョンアプリケーションの優れたトラッキングが可能になるかをご覧ください。

コンピュータビジョンプロジェクトをパズルのように考えることができます。基本的に、データセットの収集、モデルのトレーニング、デプロイなど、パズルのピースを組み合わせて、マシンに視覚データを理解させることを教えます。すべてが適合すると、画像やビデオを効果的に分析して理解できるシステムが得られます。

しかし、実際のパズルのように、コンピュータビジョンプロジェクトのすべての部分が簡単であるとは限りません。実験の追跡(設定、構成、およびデータの記録を保持する)やロギング(結果とパフォーマンスメトリックをキャプチャする)などのタスクには、多くの時間と労力がかかる可能性があります。これらの手順は、コンピュータビジョンモデルを改善および改良するために重要ですが、ボトルネックのように感じられることがあります。

そこで、Ultralytics YOLO モデルとMLflowとの統合が活躍する。このようなモデルは Ultralytics YOLO11のようなモデルは、物体検出、インスタンスセグメンテーション、画像分類を含む幅広いコンピュータビジョンタスクをサポートします。これらの機能は、エキサイティングなコンピュータビジョンアプリケーションの作成を可能にします。MLflow統合のような統合に依存するオプションがあることで、ビジョンエンジニアは細部にとらわれることなく、モデル自体に集中することができます。 

特に、MLflow統合は、トレーニングプロセス全体を通して様々なメトリクス、パラメータ、アーティファクトを記録することで、プロセスを簡素化します。この記事では、MLflow統合がどのように機能し、どのような利点があり、Ultralytics YOLO ワークフローを合理化するためにどのように使用できるかを探ります。

MLflowとは?

MLflowは、機械学習ライフサイクル全体を効率化および管理するために設計されたオープンソースプラットフォーム(Databricksによって開発)です。機械学習モデルの開発、デプロイ、および保守のプロセスを包含します。 

MLflowには、次の主要コンポーネントが含まれています。

  • 実験の追跡:このコンポーネントは、モデルの設定、結果、各モデルのトレーニング実行のファイルなど、重要な詳細を記録することに重点を置いています。モデルの比較、変更がパフォーマンスに与える影響の確認、最適なモデルの発見に役立ちます。
  • モデル登録:モデルのストレージシステムのようなもので、異なるバージョンをtrack し、テスト、ステージング、本番などのステージごとに整理することができます。
  • プロジェクトのパッケージ化: MLflowを使用すると、コード、設定、および必要なツールを含む機械学習プロジェクトを簡単にバンドルできるため、チームや環境全体で一貫して共有および使用できます。
  • モデルのデプロイ: MLflowは、トレーニング済みのモデルをワークステーションやAWSやAzureなどのクラウドプラットフォームに迅速にデプロイするためのツールを提供し、実際の使用に備えることができます。
__wf_reserved_inherit
図1. MLflowの構成要素。

MLflowのコンポーネントは、機械学習プロセスをより簡単かつ効率的に管理します。この統合により、Ultralytics MLflowの実験追跡機能を使用し、 YOLO モデルのトレーニング中にパラメータ、メトリクス、アーティファクトを記録することが可能になります。これにより、異なるYOLO モデルのバージョンをtrack し、比較することが簡単になります。

MLflowの統合により、トレーニングが効率化されます。

MLflowとは何かを説明しましたので、MLflowの統合の詳細と、それが提供する機能について詳しく見ていきましょう。 

MLflowの統合は、コンピュータビジョン実験の重要な側面を自動的に追跡および記録することにより、トレーニングプロセスをより効率的かつ組織的にするために構築されています。メトリクス、パラメータ、アーティファクトという3つの主要なロギングを容易にします。

以下に、各ログの種類について詳しく見ていきましょう。

  • メトリクスのロギング: メトリクスは、トレーニング中にモデルのパフォーマンスを測定する定量的な値です。例えば、精度、適合率、再現率、または損失のようなメトリクスは、各エポック(データセット全体の完全なパス)の終わりに追跡されます。 
  • パラメータロギング: パラメータとは、学習率、バッチサイズ(1回のトレーニングステップで処理されるサンプル数)、エポック数など、モデルのトレーニングを開始する前に定義する設定のことです。これらのパラメータは、モデルの動作とパフォーマンスに大きく影響します。
  • 成果物のログ記録: 成果物とは、トレーニング中に生成される出力またはファイルのことです。これには、モデルの重み(モデルがトレーニング中に学習する数値)、構成ファイル(トレーニング設定を保存するファイル)、およびその他の関連データなどの重要なファイルが含まれます。
__wf_reserved_inherit
図2. MLflow統合の主要なロギング機能。画像は著者による。

MLflow連携の仕組み

MLflow統合を有効にするためのステップバイステップの手順については、Ultralytics ドキュメントを参照してください。一度セットアップすると、統合は自動的に追跡し、前述のように、トレーニング実験の重要な詳細をログに記録します。これにより、手動で追跡する必要がなくなり、モデルの改良に集中することができます。

MLflow との統合により、すべてのトレーニング実行が一箇所に保存されるため、結果の比較やさまざまな構成の評価が容易になります。ログに記録された結果を比較することで、最適な構成を特定し、その情報を活用してモデルを強化できます。これにより、ワークフローがより効率的になり、適切に文書化され、再現可能になります。

具体的には、各トレーニングセッションは実験として編成され、複数の実行のコンテナとして機能します。実験内では、関連するすべての実行を表示し、それらのパフォーマンスを並べて比較し、異なる構成全体の傾向を分析できます。 

例えば、Ultralytics YOLOv8様々な学習率やバッチサイズをテストしている場合、以下のように関連するすべての実行が同じ実験にグループ化され、比較や分析が容易になります。

__wf_reserved_inherit
図3 MLflowインテグレーションを使用した実験を表示できます。

一方、個々の実行レベルでは、MLflowは特定のトレーニングセッションに関する詳細な洞察を提供します。エポックごとの精度、損失、適合率などのメトリクスを表示したり、使用されたトレーニングパラメータ(バッチサイズや学習率など)を確認したり、モデルの重みや構成ファイルなどの生成されたアーティファクトにアクセスしたりできます。これらの詳細は整理された形式で保存されるため、あらゆる実行を簡単に再検討または再現できます。

MLflow連携の選択:その際立った特徴

Ultralytics ドキュメントを読み、利用可能な統合を調べていくうちに、次のような疑問が湧いてくるかもしれません:MLflowインテグレーションは何が違うのか、なぜ自分のワークフローに選ぶべきなのか。

メトリクスの追跡と結果の視覚化のためのツールも提供するTensorBoardのような統合により、MLflow統合を際立たせる独自の品質を理解することが重要です。 

MLflowがYOLO プロジェクトに理想的な選択となりうる理由はここにある:

  • ユーザーフレンドリーなインターフェース:MLflowダッシュボードを使用すると、実験の表示、実行の比較、結果の分析が簡単になり、最適な構成をすばやく特定できます。
  • カスタムメトリクスのロギング:ビジョンエンジニアは、標準のメトリクスに加えてカスタムメトリクスを記録できるため、プロジェクトのニーズに特化したより詳細な分析が可能になります。
  • 多言語ワークフローのサポートMLflow は、Python、R、Java を含む複数のプログラミング言語と互換性があり、多様な機械学習パイプラインへの統合を容易にします。

YOLO11 MLflow統合の実用的アプリケーション

MLflowの統合をどのような場合に使用できるかをより包括的に理解するために、X線やCTスキャンの画像から腫瘍をdetect するためにYOLO11 訓練する必要がある、ヘルスケアにおけるAIアプリケーションを考えてみましょう。 

このようなシナリオでは、データセットはアノテーションが付けられた医療画像で構成されます。最適な精度を達成するには、学習率、バッチサイズ、画像の前処理技術など、さまざまな構成を試す必要があります。医療分野ではリスクが高く、精度と信頼性が非常に重要であるため、各実験を手動で追跡すると、すぐに管理不能になる可能性があります。

__wf_reserved_inherit
図4. Ultralytics YOLO11用いた腫瘍の検出。

MLflowの統合は、すべての実験のパラメータ、メトリクス、およびアーティファクトを自動的に記録することにより、この課題に対処します。たとえば、学習率を変更したり、新しいデータ拡張戦略を適用したりすると、MLflowはこれらの変更をパフォーマンスメトリクスとともに記録します。また、MLflowは、学習済みモデルの重みと構成を保存し、成功したモデルを簡単に再現およびデプロイできるようにします。 

これは、MLflow統合がVision AIアプリケーションにおける実験管理を強化する一例にすぎません。同じ機能は、以下を含む他のコンピュータビジョンアプリケーションにも適用されます。

  • 自律走行:YOLO11 使用して、歩行者、車両、交通標識をリアルタイムでdetect ・classify し、自動運転システムの安全性と効率を向上させることができる。
  • 小売店の分析:物体検出モデルは、ビデオフィードを通じて店内の動きを分析することで、顧客の行動を監視し、商品の配置をtrack し、在庫を最適化することができる。
  • セキュリティと監視:セキュリティ強化のため、モデルを訓練して異常をdetect したり、機密エリアでの活動をリアルタイムで監視したりすることができる。

MLflow連携の利点

MLflowとYOLO モデルの統合により、機械学習実験の管理がより簡単かつ効率的になります。主要なタスクを自動化し、すべてを整理しておくことで、モデルの構築と改善に集中することができます。主な利点は以下の通りです:

  • 大規模プロジェクトに対応: このプラットフォームは、複数の実験とモデルを効率的に処理できるため、大規模なチームや複雑なワークフローに適しています。
  • 詳細な実験履歴: プラットフォームは実験の完全な履歴を保持し、過去の実行を再検討し、以前の構成を分析し、以前の結果から学習することができます。
  • オプションの無効化とリセット: MLflowロギングは、不要な場合は簡単に無効にでき、設定はデフォルトにリセットできるため、さまざまなワークフロー要件に適応する柔軟性を提供します。

主なポイント

MLflowの統合により、Ultralytics YOLO 実験の管理と最適化がより簡単かつ効率的になります。パラメータ、メトリクス、成果物などの主要な詳細を自動的に追跡することで、プロセスを簡素化し、手作業による実験管理の手間を省きます。 

腫瘍検出のようなヘルスケアソリューション、自動運転システムの改善、小売分析の強化など、どのような作業においても、この統合はすべてを整理し、再現性を高めるのに役立ちます。MLflowは、直感的なインターフェースと柔軟性により、開発者がより優れたモデルの構築とVision AIアプリケーションのイノベーションの推進に集中できるようにします。

AIについて学ぶには、コミュニティにご参加いただき、GitHubリポジトリをご確認ください。ソリューションページでは、製造業におけるコンピュータビジョン自動運転車におけるAIなど、さまざまな応用例も紹介しています。

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる