Dockerが再現性のあるAIデプロイを可能にする仕組みを探求しましょう。Ultralytics モデルをコンテナにパッケージ化し、クラウドからエッジデバイスまでシームレスにスケールさせる方法を学びます。
Dockerは、コンテナ化技術を用いてアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースプラットフォームです。人工知能や機械学習の分野では、Dockerはソフトウェアの標準化された単位として機能し、コードとその依存関係(ライブラリ、システムツール、設定など)をパッケージ化します。これにより、アプリケーションは異なるコンピューティング環境間でも迅速かつ確実に動作します。 これにより「私のマシンでは動作する」という 一般的な問題が解消され、研究者のノートPCで 訓練されたニューラルネットワークが、大規模なクラウドサーバーやエッジデバイスにデプロイされた際にも 全く同じ挙動を示すことが保証されます。
現代の機械学習運用(MLOps)は、再現性と移植性に大きく依存しています。AIプロジェクトには、特定のバージョンのPython、GPU 、PyTorchやTensorFlowなどの深層学習フレームワークなど、複雑なソフトウェアスタックが頻繁に含まれます。 PyTorch や TensorFlowなどのディープラーニングフレームワークなど、複雑なソフトウェアの積み重ねを伴います。異なるチームやインフラストラクチャ間でこれらを手動で管理することは、エラーが発生しやすいものです。
Dockerは軽量で独立したコンテナを作成することでこれを簡素化します。従来の仮想マシン(VM)が各インスタンスごとに完全なオペレーティングシステムを必要とするのとは異なり、コンテナはホストマシンのOSカーネルを共有しながらも分離されたユーザースペースで動作します。これにより、リソース効率が大幅に向上し、起動が高速化されます。これはモデルサービングインフラのスケールアウトや分散トレーニングジョブの実行において極めて重要です。
Dockerは、初期の実験段階から最終的なデプロイメントに至るまで、AIライフサイクルのあらゆる段階で広く利用されています。
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.")
コンテナ化を始めるにあたり、開発者は通常、 Dockerfileこれはテキスト文書であり、
イメージを組み立てるための全コマンドを含んでいます。構築されたこれらのイメージは、
レジストリに保存できます。
Docker Hub または
NVIDIA カタログGPUコンテナを提供する。
Dockerfileを手動で管理せずにトレーニングとデプロイのプロセスを効率化したい方に向けて、 Ultralytics クラウド環境の複雑性を処理する統合ツールを提供します。 これによりユーザーはインフラ設定ではなく、モデルの精度向上に集中できます。 さらに、当社のDockerクイックスタートガイドを参照すれば、 Ultralytics コンテナ内で即座に実行する方法を学べます。