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

コンテナ化

AI/MLプロジェクトのためのコンテナ化の力を発見しましょう。ワークフローを効率化し、一貫性を確保し、最先端のツールで効率的にスケールします。

コンテナ化とは、アプリケーションのコードを、あらゆるインフラ上で実行するために必要なすべてのファイルやライブラリとバンドルするソフトウェアのデプロイプロセスのことだ。 をバンドルするソフトウェアのデプロイプロセスです。ソフトウェアとその依存関係を、コンテナという単一の軽量なユニットにカプセル化することで、開発者は、アプリケーションが特定のインフラストラクチャに関係なく一貫して実行されることを保証する。 開発者は、コンテナとして知られる単一の軽量ユニットにソフトウェアとその依存関係をカプセル化することで、特定のコンピューティング環境に関係なくアプリケーションが一貫して実行されることを保証します。 コンピューティング環境に関係なく、一貫してアプリケーションを実行できる。急速に進化する 機械学習(ML)の分野では、コンテナ化は 最新の MLOps戦略の要となっている。これは 複雑なコンピュータ・ビジョン(CV)ワークフローをポータブルにし、実行環境を分離することで、「私のマシンでは動作する」という悪名高い問題を解決する。 コンピュータ・ビジョン(CV)ワークフローをポータブルにする、 再現可能で、拡張が容易です。

AIにおけるコンテナ化の役割

データサイエンティストやMLエンジニアにとって、特定のバージョンの Python, PyTorchや CUDA ドライバーは困難な場合があります。コンテナ化は、不変の環境を作ることでこれに対処する。

  • 携帯性:コンテナ化された YOLO11モデル コンテナ化されたYOLO11モデルは、開発者のローカル・ラップトップから高性能なオンプレミス・サーバーやパブリック・クラウド・インスタンスへと、再構成を必要とせずにシームレスに移動できる。 インスタンスにシームレスに移動できる。この柔軟性は、ハイブリッド クラウド・コンピューティング戦略には不可欠です。
  • 効率性:ハードウェア・スタックとオペレーティング・システム全体をエミュレートする従来の仮想マシン(VM)とは異なり、コンテナはホスト・システムのOSカーネルを共有する。 コンテナはホストシステムのOSカーネルを共有します。これにより、コンテナは大幅に軽量化され のリソース使用を最適化します。 モデル・サービングに最適化されます。
  • スケーラビリティ:コンテナは簡単に複製できる。アプリケーションへのトラフィックが急増すると、オーケストレーションツール ツールは即座に追加のコンテナ・インスタンスをスピンアップして負荷に対応し、低い推論レイテンシを保証する。 推論レイテンシーの低さを保証する。

コア技術とコンセプト

コンテナ化を理解するには、コンテナの構築・管理方法を標準化するいくつかの主要テクノロジーに精通する必要がある。 を標準化するいくつかの主要なテクノロジーに精通している必要がある。

  • Docker:最も広く採用されているプラットフォーム コンテナでアプリケーションを開発、出荷、実行するための最も広く採用されているプラットフォームです。Ultralytics 、包括的な Dockerクイックスタートガイドを提供しています。 オブジェクト検出モデルを効率的に展開することができます。Dockerは、Open Container Initiative (OCI)によって設定された業界標準に準拠しています。 Open Container Initiative (OCI)によって設定された業界標準に準拠しており、異なるプラットフォーム間の互換性を保証します。 プラットフォーム間の互換性を保証します。
  • Kubernetesです:Dockerが個々のコンテナを管理するのに対し Dockerが個々のコンテナを管理するのに対し、Kubernetesはコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオーケストレーション・システムである。 コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオーケストレーション・システムです。多くの場合、コンテナの大規模なクラスタを管理するために使用される。 GPUリソースの 分散トレーニングに使用されます。
  • コンテナ・レジストリ:コンテナ・イメージを保存・共有するリポジトリである。人気のある Docker Hubや、GPUに最適化されたAIソフトウェアをホストするNVIDIA NGC Catalogなどがある。 GPUAIソフトウェアをホストしている。

コンテナ化と仮想マシンの比較

コンテナと仮想マシンを区別することは重要である。 仮想マシン。VMは完全な ゲスト・オペレーティング・システムを実行し、ハイパーバイザーを介してホスト・リソースに仮想的にアクセスする。これにより、高いレベルの 分離されるが、大きなオーバーヘッドが発生する。逆に、コンテナはオペレーティング・システムを仮想化する。 単一のカーネル上で複数の分離されたユーザー空間インスタンスを実行できる。この違いにより、コンテナは リソースが限られているマイクロサービスやエッジAIアプリケーションでは、コンテナが望ましい選択となる。 リソースが限られている場合に適しています。

実際のアプリケーション

コンテナ化は、研究から生産まで、AIのライフサイクルのさまざまな段階で適用される。

1.再現可能な研究環境

学術研究や産業研究において、結果の再現性は極めて重要である。コンテ イメージを定義することで モデル・トレーニングの実験を誰でも再現できるようにします、 どこでも再現できます。これにより、ライブラリのバージョンやシステム構成の違いによる矛盾を排除することができます。例えば 画像セグメンテーションの研究チームは を共有することができ、一貫した結果が保証されます。 結果を保証します。

2.エッジへの展開

のようなエッジデバイスにディープラーニングモデルを展開するには、高度に最適化されたデバイスが必要です。 NVIDIA Jetsonのようエッジデバイスにディープラーニングモデルを展開するには、高度に最適化された 環境が必要です。コンテナにより、開発者は以下のようなモデルをパッケージ化することができます。 YOLO11のようなモデルを、必要な実行時依存関係のみでパッケージ化することができます。この この合理化されたパッケージは、何千ものリモート・デバイスにデプロイすることができ、防犯カメラの物体検出機能を更新することができる。 セキュリティ・カメラ または自律型ロボットの物体検出機能を更新することができます。これについては AWSコンテナの使用例

例コンテナ対応推論スクリプト

アプリケーションをコンテナ化する場合、通常はエントリー・ポイントとなるスクリプトを作成する。次のPython を使った簡単な推論ワークフローを示します。 ultralytics パッケージを使用する。このスクリプトは のために設計されたDockerコンテナ内で実行されるメインプロセスである可能性がある。 リアルタイム推論.

from ultralytics import YOLO

# Load the YOLO11 model (ensure weights are present in the container)
model = YOLO("yolo11n.pt")

# Perform inference on an image URL
# In a container, this might process incoming video streams or API requests
results = model.predict(source="https://ultralytics.com/images/bus.jpg", save=True)

# Print detection results to verify operation
for result in results:
    print(f"Detected {len(result.boxes)} objects in the frame.")

このスクリプトは、依存関係がコンテナ環境で処理される場合に、コードのフットプリントがいかに小さくなるかを効果的に示している。 コンテナ環境イメージに含まれる イメージに含まれるモデルウェイトを活用することで、コンテナ は、デプロイ準備の整った独立したインテリジェンス・ユニットになる。コンテナの基本については Red Hat コンテナドキュメントに を参照してください。

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

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

今すぐ参加