Yolo 深圳
深セン
今すぐ参加

Ultralytics YOLO トレーニングを高速化

データから本番環境への展開までのプロセスを加速させるために構築されたエンドツーエンド環境「Ultralytics 」を活用し、YOLO トレーニングを高速化する方法をご覧ください。

Ultralyticsでコンピュータビジョンプロジェクトをスケールアップ

始める

先週、Ultralytics 、チームによるコンピュータビジョンモデルの構築、トレーニング、デプロイのプロセスを簡素化するために設計された統合ワークスペース「Ultralytics 」Ultralytics 。このプラットフォームにより、複数のツールを切り替えながら作業する必要がなくなり、すべてを一か所に集約できます。これにより、ビジョンAIモデルを構想からデプロイまで、手間なく進めることが可能になります。 

これは極めて重要な点です。なぜなら、コンピュータビジョンは急速に様々な産業の中核的な要素となりつつあるからです。これは、製造検査、小売分析、自律走行といったアプリケーションを支えています。

こうしたビジョン技術を活用したアプリケーションを信頼性の高いシステムにするためには、モデルの学習の質が鍵となります。モデルの学習とは、ラベル付けされたデータから学習を行い、モデルがパターンを認識して正確な予測を行えるようにすることです。一般的に、十分に学習されたモデルほど、実際のアプリケーションにおいて優れた性能を発揮し、より信頼性の高い結果をもたらします。

しかし、コンピュータビジョンモデルのトレーニングは、必ずしも単純な作業とは限りません。これには、環境の構築、適切なコンピューティングリソースの選定、ハイパーパラメータの調整、複数のトレーニング実験の追跡など、さまざまな要素が含まれます。これらの手順が異なるツールやシステムに分散していると、トレーニングのワークフローはすぐに複雑化し、管理が困難になってしまいます。

Ultralytics 、トレーニングプロセス全体を単一の統合ダッシュボードに集約することで、この課題を解決します。クラウド、ローカル環境、Google のいずれで作業していても、トレーニングジョブの設定、実行、監視をすべて一か所で行うことができます。 

図1.Ultralytics におけるモデル学習の様子(出典

この記事では、Ultralytics モデルのトレーニングをどのように効率化するか、そしてなぜそれがビジョンAIプロジェクトにおいて優位性をもたらすのかについて解説します。さっそく見ていきましょう!

コンピュータビジョンモデルは、モデルの学習を通じてデータから学習します

Ultralytics モデルトレーニングの仕組みについて詳しく説明する前に、まずは一歩引いて、モデルトレーニングとは何か、そしてその内容について順を追って見ていきましょう。

モデルの学習とは、コンピュータビジョンモデルが視覚データを解釈する方法を習得するプロセスです。このプロセスでは、画像や動画を分析し、内部パラメータを徐々に調整することで、物体検出、画像分類、インスタンスセグメンテーションといった視覚タスクを 正確に実行できるようにします。時間の経過とともに、モデルは学習データから直接パターンを学習することで、性能を向上させていきます。

トレーニングの質は、データセットに大きく左右されます。データセットは、教師が生徒を指導する際に使うフラッシュカードのセットのようなものだと考えてください。それぞれの例が、モデルが何に注目すべきかを学習する手助けとなります。

一般的なコンピュータビジョン用データセットには、通常JPGやPNGなどの形式の画像と、各画像に何が写っているかを説明するアノテーションが含まれています。これらのアノテーションは、多くの場合JSONやTXTファイルとして保存されており、モデルが効果的に学習するために必要なラベルや文脈を提供します。

しかし、機械学習のトレーニングとは、単にモデルにデータを投入するだけのことではありません。データセットの準備から、適切なモデルの選択、トレーニングプロセスの設定に至るまで、いくつかの重要なステップが含まれます。それでは、これらのステップのうちいくつかを詳しく見ていきましょう。

データセットの準備方法について

データセットさえあれば、すぐにモデルの学習を始められるように思えるかもしれませんが、その前に、データセットの分割など、いくつか行うべき手順があります。

一般的に、データセットはトレーニングセット、検証セット、テストセットの3つに分割されます。トレーニング画像は、モデルにデータ内のパターンを学習させるために使用され、検証セットはトレーニング中のパフォーマンスを監視し、微調整を行うのに役立ちます。 

テストセットは、最後に、モデルがまったく新しい、これまで見たことのないデータに対してどれほど良好な性能を発揮するかを評価するために使用されます。この設定により、モデルが単にデータを暗記するだけでなく、現実世界のシナリオにも適用できることが保証されます。

トレーニングに適したモデルの選択

トレーニングを行う前のもう一つの重要なステップは、使用するモデルを選ぶことです。多くの場合、これは事前学習済みのモデルを選択することを意味します。YOLO 、すでに大規模なデータセットで学習されており、一般的な視覚パターンを習得しているため、強力な出発点となります。

これらのモデルを使用することは、転移学習の一例です。転移学習とは、既存の知識を活用し、モデルを特定のタスクに合わせて適応させる手法です。このアプローチは、特にデータが限られている場合、学習の高速化と結果の向上に役立ちます。

これらのモデルにはさまざまなサイズがあり、それぞれ速度と精度のバランスが異なります。小型のモデルは高速で効率的ですが、大型のモデルは精度が高い傾向にある一方で、より多くの計算リソースを必要とします。

ビジョンモデルの学習パラメータの設定

データセットの準備が整い、モデルを選択したら、次はモデルの学習方法を設定します。

コンピュータビジョンモデルは、データの処理方法、重みの更新方法、および時間の経過に伴う性能向上を決定する一連のパラメータを用いて学習されます。これらの設定は、学習速度と最終的な精度の両方に直接影響を与えるため、優れた結果を得るためには不可欠です。

以下に、最もよく使用されるトレーニングパラメータをいくつか挙げます:

  • エポック:これは、トレーニング中にモデルがデータセット全体を処理する回数を表します。エポックの数を増やすと、モデルがデータからパターンを学習する機会が増えます。
  • バッチサイズ:これは、1回の学習ステップでまとめて処理される画像の数です。バッチサイズを大きくすると学習速度は向上しますが、より多くのメモリが必要になります。
  • 画像サイズ:トレーニング中に使用される入力画像の解像度を指定します。解像度を高くすると検出精度は向上する可能性がありますが、計算コストが増加します。
  • 学習率:これは、トレーニング中にモデルが内部パラメータを更新する速度のことです。値が高すぎたり低すぎたりすると、トレーニングが不安定になる可能性があります。
  • オプティマイザー:これは、各トレーニング反復で計算された誤差に基づいて、モデルのパラメータを更新する役割を担うアルゴリズムです。

YOLOワークフローでは、これらの設定は通常、YAMLファイルで定義されます。このファイルには、データセットのパス、クラス名、およびデータの分割方法が指定されています。これは、モデルがデータセットをどのように解釈すべきかを指示する中心的な設定ファイルとして機能します。

断片化されたワークフローから、Ultralytics による統合された体験へ

これまで、データセットの準備からモデルの選択、学習パラメータの設定に至るまで、コンピュータビジョンモデルの学習に関わる主な手順について解説してきました。実際には、このプロセスはさらに進んで、実験の追跡、複数の学習実行結果の比較、そして時間の経過に伴うモデルの継続的な改良などが行われることがよくあります。

こうした一連の作業が、1つの場所で一元的に行われることはほとんどありません。データセットの準備はあるツールで行われ、トレーニングの実行は別の環境で行われ、実験の追跡管理はさらに別の方法で管理されるといった具合です。プロジェクトが拡大するにつれ、こうした分断は複雑さを増し、反復プロセスを遅らせ、全体を整理しておくことを困難にします。

Ultralytics 、トレーニングのワークフロー全体を単一の環境に統合することで、こうした複雑さを解消します。ツールを切り替える必要がなく、データセットの管理、トレーニングの設定、実験の実行、結果の監視をすべて一か所で行うことができます。

それでは、Ultralytics どのようにしてモデルのトレーニングをよりスマートにするのか、詳しく見ていきましょう。 

Ultralytics がサポートするトレーニングオプション

実際のアプリケーションでは、コンピュータビジョンモデルのトレーニングには、柔軟な環境が必要となる場合が多くあります。データセットの規模、モデルの複雑さ、利用可能なハードウェアに応じて、クラウド上、ローカルマシン上、あるいは外部のノートブック環境を利用してトレーニングを実行することを選択できます。

Ultralytics 、こうしたニーズに対応するため、以下のトレーニングオプションを提供しています:

  • クラウドトレーニング:トレーニングは、Ultralyticsクラウド上のグラフィックス処理ユニット(GPU)上で実行されます。このオプションは、膨大な計算リソースを必要とする大規模なデータセットや、より複雑なモデルに最適です。
  • ローカルでのトレーニング:このオプションでは、お使いのマシンに搭載されているハードウェアを利用するため、簡単な実験や設定のテスト、小規模なデータセットの処理に最適です。よりスケーラブルなワークロードの場合は、AWSやGCPなどの独自のクラウド環境でトレーニングを実行することも可能です。
  • Google :Ultralytics を使用すれば、Google のホスト型ノートブック環境でトレーニングを実行できるため、ローカルマシンを設定することなく、ブラウザベースの柔軟なワークフローを実現できます。

Ultralytics Platformでのクラウド研修について

コンピュータビジョンプロジェクトにおいて、モデルをローカル環境やノートブック環境でトレーニングするのは、必ずしも容易なことではありません。

例えば、ローカルでのトレーニングの場合、パフォーマンスはハードウェアに完全に依存するため、計算能力が制限され、実験の進行が遅くなる可能性があります。効率的なトレーニングにはGPUが不可欠ですが、すべての環境で確実にGPUを利用できるわけではありません。 

Google のようなノートブック環境は、クラウドベースのGPUを提供することで代替手段となりますが、セッションは一時的なものであることが多く、長時間のトレーニング実行を中断させる可能性があります。データセットが拡大し、ワークフローが複雑化するにつれ、こうした制約はすぐにボトルネックとなり、トレーニングの速度が低下し、信頼性も低下する恐れがあります。

Ultralytics 、クラウドトレーニング機能によってこの課題に対応しています。Python やPyTorch などのフレームワークが事前にPyTorch 、すぐに使える環境を提供しており、追加の設定を行うことなくトレーニングを開始できます。

1つのダッシュボードから、トレーニングジョブを実行し、進捗状況をリアルタイムで監視できます。これにより、インフラの管理に時間を割くことなく、モデルの改善に集中しやすくなります。

それでは、Ultralytics でのクラウドトレーニングを始める方法を見ていきましょう。

ステップ1:ベースモデルを選択する

まず、トレーニング用にベースモデルを選択します。Ultralytics 事前学習済みYOLO を選択したり、コミュニティのモデルをクローンしたり、独自の事前学習済み重みをアップロードして、独自の要件に合わせて調整したりすることができます。

このプラットフォームは、Ultralytics を含むUltralytics YOLO に対応しています。 Ultralytics YOLO11Ultralytics YOLOv8、および Ultralytics YOLOv5は、それぞれナノ (n)、スモール (s)、ミディアム (m)、ラージ (l)、エクストララージ (x) といった異なるサイズバリエーションで利用可能です。各モデルバリエーションは速度と精度のバランスが異なるため、パフォーマンスや計算リソースの要件に合わせて最適なモデルを選択できます。

これらのモデルは、Ultralytics YOLO すでに慣れ親しんでいる、物体検出、インスタンスセグメンテーション、画像分類、オリエンテッド・バウンディングボックス(OBB)検出、姿勢推定など、幅広いコンピュータビジョンタスクに対応しています。

特別な要件がある場合は、事前に学習済みのモデル重みをアップロードすることも可能です。これにより、一から学習を始めるのではなく、プラットフォーム内でオブジェクト検出器などの既存モデルの学習を継続したり、微調整を行ったりすることができます。これは、すでに別の場所でモデルを学習済みである場合や、モデルをより具体的なユースケースに合わせて調整したい場合に特に役立ちます。

ステップ 2: データセットを選択する

次のステップは、トレーニング用のデータセットを選択することです。Ultralytics 、COCO 既存のデータセットを利用したり、コミュニティからデータセットを複製したり、特定の用途に合わせて作成した独自のデータセットをアップロードしたりすることができます。

このプラットフォームは、YOLO COCOなどの一般的なアノテーション形式に対応しています。また、プラットフォーム上で直接カスタムデータのアノテーションを行う場合は、生画像のアップロードにも対応しています。

データセットのアップロードが完了すると、検証、正規化、ラベルの解析、統計情報の生成などの処理が自動的に行われます。これにより、クラスの分布やデータセットの構造など、データを即座に把握できるようになり、トレーニングの準備が万全であることを確認するのに役立ちます。

データセットはトレーニング実行にも自動的に紐付けられるため、各モデルでtrack データtrack 使用されたtrack 、実験全体を通じて一貫性を保つことができます。

ステップ3:トレーニングパラメータの設定

データセットを選択した後、モデルの学習方法を制御するトレーニングパラメータを設定できます。これには、エポック数、バッチサイズ、画像サイズ、およびトレーニングログのラン名などが含まれます。これらのパラメータの多くは、トレーニングにかかる時間とモデルの最終的な性能の両方に影響を与えます。

よりきめ細かなトレーニングを行うために、このプラットフォームでは、学習率、オプティマイザーの種類、カラー拡張の設定、その他のトレーニングオプションといった高度なパラメータを調整することも可能です。これらの設定により、トレーニングプロセスを微調整し、モデルの精度と安定性を向上させることができます。

ステップ4:GPUを選択する

次に、トレーニング実行にGPU を選択できます。適切なGPU 選択は、データセットのサイズ、バッチサイズ、画像の解像度、モデルの複雑さなどの要素によってGPU 。適切なバランスを見つけることで、必要以上の計算リソースを消費することなく、効率的なトレーニングを維持できます。

Ultralytics 、VRAM(GPUメモリ)容量や演算能力が異なる22GPU を提供しており、小規模なタスクから大規模なワークロードまで幅広く対応しています。

これにより、軽量なモデルのトレーニングを行う場合でも、大規模で複雑なデータセットを扱う場合でも、特定のニーズに合わせてハードウェアを選択することができます。詳細については、Ultralytics Platformのトレーニングドキュメントページに掲載されている利用可能なGPUの一覧をご覧ください。

図2.Ultralytics を通じて有効化されたGPU の一部(出典

ステップ5:クラウド研修を開始する

モデル、データセット、トレーニングパラメータ、およびコンピューティングオプションを選択すれば、トレーニングの実行はすぐに開始できます。ダッシュボードからワンクリックでトレーニングを開始でき、プラットフォームが環境の初期化やGPU上でのジョブ実行など、残りの処理をすべて行います。

トレーニングが開始されると、プラットフォーム内で直接進捗状況を確認できます。「Train」タブでは、パフォーマンス指標、損失曲線、システム使用状況、ライブトレーニングログなど、主要な指標をリアルタイムで確認できます。

お住まいの地域でのトレーニングや、Ultralytics Google 活用方法について詳しく知りたい場合は、Ultralytics Platformの公式ドキュメントにあるその他のチュートリアルをご覧ください。

Ultralytics でのモデルの評価と比較

トレーニングが完了したら、次はモデルの性能を評価します。Ultralytics 、1つのプロジェクト内で複数のトレーニング実行結果を比較できるため、さまざまな実験の成果を明確に把握することができます。

モデルを開発する際、結果を改善するために、学習率やバッチサイズ、モデルサイズを変更するなど、さまざまな設定でトレーニングを何度も繰り返すことがよくあります。これらの実行のたびに、わずかに異なるモデルが生成されるため、それらを比較することが極めて重要です。

プロジェクトは、モデルと実験を一元的に管理する中心的な拠点となります。異なるツールや画面を切り替えることなく、track 結果のレビューtrack 、作業に集中し続けることができます。

この統合ビューから、精度、再現率、mAP 平均精度)などの主要なパフォーマンス指標を分析し、モデルが各クラスでどのように機能しているかを把握することもできます。また、トレーニングの実行結果を並べて比較し、どの設定が最良の結果をもたらすかを特定することも可能です。 

これらの指標を補完するために、「Predict」タブを使用すると、学習済みのモデルをサンプル画像やデータで素早くテストでき、パフォーマンスを視覚的に確認したり、潜在的な問題を発見したりするのに役立ちます。

これらの知見をもとに、通常「best.pt」というチェックポイントとして保存されている最も性能の高いモデルを選択し、さらなる評価、モデルを用いた推論の実行、あるいはプラットフォームを通じたモデルのデプロイなど、次の段階へと進むことができます。

図3.Ultralytics での指標表示例(出典

Ultralytics 内でのトレーニング費用の見積もり

クラウド上で物体検出モデルをトレーニングするには、特に高性能GPUを利用する場合、コンピューティングコストが発生します。このプロセスをより円滑にするため、Ultralytics トレーニング開始前にコストの見積もりを提供します。

これにより、予想される使用状況を明確に把握できるため、トレーニングジョブを開始する前に、ワークロードの計画立案や予算管理を行い、予期せぬ費用の発生を防ぐことができます。トレーニングを開始する前に推定コストを確認する方法は以下の通りです。

トレーニング時間の算出方法

コストを正確に見積もるために、プラットフォームはまず、1回のトレーニングエポックにかかる時間を算出します。これは、データセットのサイズ、モデルのサイズ、画像の解像度、バッチサイズ、および選択したGPU処理速度などの要因によって異なります。

これらの入力値をもとに、1エポックあたりの推定時間を算出し、それをトレーニング全体に換算します。総所要時間は、全エポックの合計時間に、わずかな起動オーバーヘッドを加えることで算出されます。

このオーバーヘッドには、環境の初期化、データセットの読み込み、GPUの準備といった作業が含まれており、これにより、推定値が単なるトレーニングループだけでなく、トレーニングプロセス全体を反映したものとなります。

研修費用の算出方法

総トレーニング時間が推定されると、プラットフォームは選択されたGPU時間単価を用いて、それをコストに換算します。

トレーニングの所要時間とGPU 組み合わせることで、実行を開始する前から、そのコストを明確に予測することができます。

事前に状況を把握しておけば、トレーニングパラメータの調整やGPU選択など、設定を容易に変更できるため、パフォーマンスとコストのバランスをより効果的に取ることができます。

図4.Ultralytics におけるモデル学習の設定とコストの推定(出典

Ultralytics をモデル学習に活用する主な利点

ここまで、コンピュータビジョンモデルのトレーニングにおける主要な手順と、それらがUltralytics どのように連携するかを解説してきました。 

これらの主要機能に加え、トレーニングのワークフローを強化する追加機能も備わっています。以下に、モデルトレーニングにUltralytics を活用する主なメリットの概要をご紹介します:

  • 実験の再現性が標準で備わっています:トレーニングの実行ごとに、モデル、データセット、パラメータ、計算環境の設定など、完全な構成情報が自動的に記録されます。これにより、実験を簡単に振り返り、結果を確実に再現することができます。
  • トレーニングの推移に関する分析:最終結果を見るだけでなく、エポックごとのパフォーマンスtrack 、トレーニング中のモデルの挙動をより深く理解することができます。
  • 運用負荷の軽減:環境のセットアップ、依存関係の管理、インフラストラクチャをバックグラウンドで処理するため、このプラットフォームを利用すれば、セットアップ作業に費やす時間を減らし、モデル開発により注力することができます。
  • 実験の一元管理:プロジェクトは、モデル、データセット、トレーニング実行を管理する一元的な場として機能し、ワークフローが複雑化しても実験を体系的に整理しておくのに役立ちます。

主なポイント

トレーニングは、機械学習モデルのライフサイクルにおいて最も重要な段階の一つです。トレーニングによって、モデルが視覚データをどの程度正確に認識・解釈できるかが決まります。 

Ultralytics 、トレーニングデータの構成、モニタリング、実験の比較、コスト見積もりを単一の環境で統合することで、高性能なコンピュータビジョンモデルの構築からデプロイ準備までのプロセスを効率化します。

コンピュータビジョンについて詳しく知りたい方は、拡大を続けるコミュニティや GitHubリポジトリをご覧ください。ビジョンソリューションの構築をご検討中の方は、ライセンスオプションをご確認ください。製造業におけるコンピュータビジョンのメリットや、農業におけるAIの活用について詳しく知りたい方は、ソリューションページをご覧ください。

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

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