Yolo 深圳
深セン
今すぐ参加
用語集

Docker

Dockerが再現性のあるAIデプロイを可能にする仕組みを探求しましょう。Ultralytics モデルをコンテナにパッケージ化し、クラウドからエッジデバイスまでシームレスにスケールさせる方法を学びます。

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

DockerがAIと機械学習にとって重要な理由

現代の機械学習運用(MLOps)は、再現性と移植性に大きく依存しています。AIプロジェクトには、特定のバージョンのPython、GPU 、PyTorchやTensorFlowなどの深層学習フレームワークなど、複雑なソフトウェアスタックが頻繁に含まれます。 PyTorchTensorFlowなどのディープラーニングフレームワークなど、複雑なソフトウェアの積み重ねを伴います。異なるチームやインフラストラクチャ間でこれらを手動で管理することは、エラーが発生しやすいものです。

Dockerは軽量で独立したコンテナを作成することでこれを簡素化します。従来の仮想マシン(VM)が各インスタンスごとに完全なオペレーティングシステムを必要とするのとは異なり、コンテナはホストマシンのOSカーネルを共有しながらも分離されたユーザースペースで動作します。これにより、リソース効率が大幅に向上し、起動が高速化されます。これはモデルサービングインフラのスケールアウトや分散トレーニングジョブの実行において極めて重要です。

実際のアプリケーション

Dockerは、初期の実験段階から最終的なデプロイメントに至るまで、AIライフサイクルのあらゆる段階で広く利用されています。

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

Docker vs. Kubernetes vs. 仮想マシン

Dockerの具体的な役割を理解するには、関連技術との違いを区別することが有用です:

  • Dockerと仮想マシン(VM)の比較:VMはハードウェアを仮想化するため、各VMはハイパーバイザー上で完全なOS(WindowsやLinuxなど)を実行します。これにより大量のCPU消費します。Dockerはオペレーティングシステムを仮想化するため、コンテナはVMよりもはるかに小さく高速です。
  • Dockerと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 カタログGPUコンテナを提供する。

Dockerfileを手動で管理せずにトレーニングとデプロイのプロセスを効率化したい方に向けて、 Ultralytics クラウド環境の複雑性を処理する統合ツールを提供します。 これによりユーザーはインフラ設定ではなく、モデルの精度向上に集中できます。 さらに、当社のDockerクイックスタートガイドを参照すれば、 Ultralytics コンテナ内で即座に実行する方法を学べます。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加