ヨロビジョン深圳
深セン
今すぐ参加

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には、次の主要コンポーネントが含まれています。

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

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

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の統合は何が特別なのか、また、ワークフローにMLflowを選択する理由は何なのか、と思われるかもしれません。

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

MLflowがYOLOプロジェクトに最適な選択肢となる理由を以下に示します。

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

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

MLflow統合をいつ使用できるかをより包括的に理解するために、X線またはCTスキャン画像で腫瘍を検出するためにYOLO11をトレーニングする必要があるヘルスケアにおけるAIアプリケーションを考えてみましょう。 

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

__wf_reserved_inherit
図4. Ultralytics YOLO11を使用して腫瘍を検出します。

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

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

  • 自動運転: YOLO11は、歩行者、車両、交通標識をリアルタイムで検出し、分類することで、自動運転システムの安全性と効率性を向上させることができます。
  • リテール分析: オブジェクト検出モデルは、ビデオフィードを通じて店内での活動を分析することにより、顧客の行動を監視し、製品の配置を追跡し、在庫を最適化できます。
  • セキュリティと監視: モデルをトレーニングして、異常を検出し、セキュリティを強化するために、機密エリアでのリアルタイムアクティビティを監視できます。

MLflow連携の利点

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

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

主なポイント

MLflowの統合により、Ultralytics YOLOの実験の管理と最適化がより簡単かつ効率的になります。パラメータ、メトリクス、アーティファクトなどの重要な詳細を自動的に追跡することで、プロセスが簡素化され、手動による実験管理の手間が省けます。 

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

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

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

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

無料ではじめる
クリップボードにコピーしました