YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

Docker

Dockerがいかに再現可能なAIデプロイメントを可能にするかを探ります。Ultralytics YOLO26モデルをコンテナにパッケージ化し、クラウドからエッジデバイスまでシームレスにスケーリングする方法を学びましょう。

Dockerは、コンテナ化を使用してアプリケーションのデプロイ、スケーリング、管理を自動化できるオープンソースプラットフォームです。人工知能および機械学習の文脈では、Dockerはコードとそのすべての依存関係(ライブラリ、システムツール、設定など)をパッケージ化する標準化されたソフトウェア単位として機能し、アプリケーションが1つのコンピューティング環境から別の環境へ迅速かつ確実に実行されるようにします。これにより、一般的な「私のマシンでは動作する」という問題が解消され、研究者のラップトップで学習されたニューラルネットワークが、大規模なクラウドサーバーやエッジデバイスにデプロイされたときもまったく同じように動作することが保証されます。

なぜDockerはAIと機械学習にとって重要なのか

現代の 機械学習オペレーション (MLOps) は、再現性とポータビリティに大きく依存しています。AIプロジェクトは、多くの場合、特定バージョンのpython、 GPUアクセラレーション用のCUDAドライバー、そして深層学習 フレームワークであるPyTorchTensorFlowのような複雑なソフトウェアスタックを伴います。 これらを異なるチームやインフラストラクチャ間で手動で管理することは、エラーが発生しやすくなります。

Dockerは、軽量でスタンドアロンなコンテナを作成することでこれを簡素化します。各インスタンスに完全なオペレーティングシステムを必要とする従来の仮想マシン(VM)とは異なり、コンテナはホストマシンのOSカーネルを共有しますが、分離されたユーザー空間で実行されます。これにより、リソース効率が大幅に向上し、起動が高速になります。これは、モデルサービングインフラストラクチャをスケーリングしたり、分散学習ジョブを実行したりする際に非常に重要です。

実際のアプリケーション

Dockerは、初期の実験から最終的なデプロイに至るまで、AIライフサイクル全体で遍在しています。

  1. 一貫したトレーニング環境: データサイエンスチームは、Dockerイメージを使用して統一された開発環境を共有する場合があります。例えば、オブジェクト検出に取り組む研究者は、必要なすべてのドライバーとライブラリを含む事前構築済みイメージをプルできます。これにより、YOLO26モデルをトレーニングする際に、基盤となるハードウェアの違いに関係なく、同僚によって結果が再現可能であることが保証されます。
  2. エッジAIデプロイメント: スマートシティ監視において、更新されたモデルは、交通カメラやドローンなどの数千のエッジデバイスにプッシュされる必要があります。Dockerコンテナを使用すると、エンジニアは新しいモデルバージョンをパッケージ化し、無線でデプロイできます。コンテナには推論ランタイムが含まれているため、更新プロセスはシームレスであり、デバイスのコアオペレーティングシステムに干渉しません。

Docker vs. Kubernetes vs. 仮想マシン

Dockerを関連技術と区別することは、その特定の役割を理解する上で役立ちます。

  • Docker vs. 仮想マシン (VM): VMはハードウェアを仮想化するため、各VMはハイパーバイザー上で完全なOS(WindowsやLinuxなど)を実行します。これは相当なメモリとCPUを消費します。Dockerはオペレーティングシステムを仮想化するため、コンテナはVMよりもはるかに小さく高速です。
  • Docker vs. Kubernetes: これらは競合するのではなく、補完的な技術です。Dockerは個々のコンテナを作成および実行するためのツールであり、KubernetesはDockerコンテナのクラスターを管理するコンテナオーケストレーションプラットフォームで、大規模なクラウドコンピューティング環境におけるオートスケーリング、ロードバランシング、自己修復などのタスクを処理します。

例:コンテナ内での推論の実行

以下の例は、コンピュータビジョン用に設計されたDockerコンテナ内でPythonスクリプトがどのように見えるかを示しています。このスクリプトは、 ultralytics モデルをロードし、推論を実行するためのパッケージ。コンテナ環境は、正しい依存関係(例:)を確実にします。 opencv-python そして torch) は既に存在します。

from ultralytics import YOLO

# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")

# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")

ワークフローへのDockerの統合

コンテナ化を開始するには、開発者は通常、次を定義します。 Dockerfileイメージを組み立てるためのすべてのコマンドを含むテキストドキュメントであり、一度構築されたイメージは、レジストリに保存できます。 Docker Hub またはその NVIDIA NGCカタログGPUに最適化されたコンテナを提供するものです。

Dockerfileを手動で管理することなく、トレーニングとデプロイメントプロセスを効率化したい方には、Ultralytics Platformがクラウド環境の複雑さを処理する統合ツールを提供します。これにより、ユーザーはインフラストラクチャの構成ではなく、モデル精度の向上に集中できます。さらに、Dockerクイックスタートガイドをご覧いただくことで、Ultralyticsモデルをコンテナで即座に実行する方法を学ぶことができます。

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

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