DockerでAI/MLワークフローを簡素化しましょう!モデルのデプロイ方法、再現性の確保、環境全体での効率的なスケーリングについて学びます。
Dockerは、コンテナ化によってアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのプラットフォームです。 コンテナ化です。急速に進化する 人工知能(AI)の分野で、Docker は、「自分のマシン上で動作する」問題として知られる重要な課題を解決します。機械学習(ML)モデルを 機械学習(ML)モデルを Dockerは、機械学習(ML)モデルをそのコード、ランタイム、システムツール、ライブラリとともにコンテナと呼ばれる標準化されたユニットにパッケージ化することで、ソフトウェアが厳密に同じ方法で実行されることを保証する。 ソフトウェアは、コンピューティング環境に関係なく、厳密に同じ方法で実行されることが保証される。この一貫性は、最新の MLOpsパイプラインには不可欠であり、以下のことを容易にします ローカル開発から クラウド・コンピューティング・インフラやエッジ・デバイスへのスムーズな移行を促進します。
Dockerを理解するには、そのワークフローを定義する3つの基本コンポーネントに精通する必要がある。
Dockerは、堅牢なコンピュータ・ビジョン(CV)ソリューションのデプロイに不可欠です。 コンピュータビジョン(CV)ソリューションのデプロイに不可欠です。
Dockerコンテナ内で推論を実行することで、環境をクリーンな状態に保ち、依存関係が他のシステムレベルのパッケージと衝突しないようにすることができます。 他のシステムレベルのパッケージと衝突しないようにします。以下は、通常Dockerコンテナ内で実行されるシンプルなPython スクリプトです。 コンテナ内で実行されるシンプルなPythonスクリプトです。 検出タスクを実行します。
from ultralytics import YOLO
# Load the YOLO11 model (downloads automatically if not present)
model = YOLO("yolo11n.pt")
# Perform object detection on an online image source
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected to verify inference
print(f"Detected {len(results[0].boxes)} objects in the image.")
どちらの技術もアプリケーションを分離するが、その機能は異なる。
DockerとKubernetesは別物だが、補完的なツールである。 ツールである。Dockerは個々のコンテナの作成と実行に使用される。しかし、数百のコンテナをモデルサービング用のサーバークラスタ全体で管理する場合 サーバーのクラスタ全体で数百のコンテナを管理する場合は、オーケストレーション・ツールが必要になる。 オーケストレーションツールが必要になる。KubernetesはDockerコンテナのスケジューリングと実行を調整し、エンタープライズグレードの高可用性とスケーラビリティを確保します。 エンタープライズグレードの AIエージェントのための高可用性とスケーラビリティを保証します。この相乗効果については Kubernetesのドキュメントをご覧ください。
Ultralytics Platformなど、Ultralytics エコシステムの今後の開発では、このようなコンテナ化の原則を活用して、データソーシングやトレーニング、デプロイメントのワークフローを合理化する予定です。 コンテナ化の原則を活用し、データソーシング、トレーニング、デプロイのワークフローを合理化し、複雑なインフラ管理をさらに抽象化します。 インフラ管理の複雑さをさらに抽象化します。