用語集

コンテナ化

AI/MLプロジェクトにおけるコンテナ化の威力をご覧ください。ワークフローを合理化し、一貫性を確保し、最先端のツールで効率的に拡張します。

コンテナ化とは、アプリケーションとその依存関係(ライブラリ、フレームワーク、設定ファイルなど)を、コンテナと呼ばれる単一の分離されたユニットにパッケージ化することを可能にする、オペレーティング・システム仮想化の軽量な形態である。これにより、あるコンピューティング環境から別の環境に移動したときに、ソフトウェアが正しく実行されないという一般的な問題が解決される。機械学習(ML)の文脈では、コンテナ化によって、複雑なAIモデルとその複雑なソフトウェア・スタックの移植性、再現性、拡張性が保証され、最新のMLOpsプラクティスの重要な構成要素となる。

最も広く使われているコンテナ化技術はDockerで、コンテナを構築、出荷、実行するための標準化された方法を提供している。各コンテナはホストシステムのOSカーネルを共有するが、ユーザー空間では独立したプロセスとして実行される。Open Container Initiative(OCI)などの組織によって標準化されたこのアプローチにより、コンテナは従来の仮想マシンよりもはるかにリソース効率が高く、起動も高速になります。コンテナ化の基礎については、Red Hat のコンテナに関する説明などのリソースで詳しく学ぶことができます。

コンテナ化と関連概念の比較

コンテナ化と類似技術の違いを理解することは、AI/MLワークフローにおけるコンテナ化の役割を理解するための鍵となる。

  • 仮想マシン(VM):コンテナとVMはどちらも分離された環境を提供するが、動作レベルは異なる。VMは、完全なゲストOSを含むハードウェアスタック全体をエミュレートするため、起動が重く遅い。対照的に、コンテナはOSを仮想化し、ホスト・カーネルを共有する。これによりコンテナはより軽量で高速になるが、VMはより高度なハードウェアレベルの分離を提供できる。
  • Dockerコンテナ化とは、その根底にある概念である。Dockerはこのコンセプトを実装する最も一般的なプラットフォームであり、個々のコンテナを作成・管理するためのツールを提供する。実用的なスタートとして、UltralyticsはYOLOモデルを実行するためのDockerクイックスタートガイドを提供しています。また、Dockerの公式リソースでより詳細な情報を調べることもできます。
  • KubernetesDockerがホスト上の単一のコンテナを管理するのに対し、Kubernetesはコンテナ・オーケストレーション・プラットフォームだ。マシンのクラスタにまたがる何千ものコンテナのデプロイ、スケーリング、管理を自動化する。一般的なワークフローは、Dockerでコンテナを構築し、Kubernetesを使ってスケール管理するというものだ。より深く掘り下げるには、Kubernetesの公式ドキュメントを参照。
  • サーバーレス・コンピューティングサーバーレスとは、クラウドプロバイダーがコードの実行に必要なインフラを自動的に管理する実行モデルのことだ。これにより、サーバーやコンテナが完全に抽象化される。コンテナ化がアプリケーションの環境をコントロールするのに対し、AWS Lambdaのようなサーバーレス・プラットフォームは、すべてのインフラ管理を隠すことで使いやすさを優先する。

AI/MLの実世界での応用

コンテナ化は、実験から本番モデルのデプロイまで、AI/MLのライフサイクル全体を通じて広く利用されている。

  1. オブジェクト検出モデルのデプロイ: オブジェクト検出用に学習されたUltralytics YOLOモデルは、Dockerコンテナにパッケージ化することができます。このコンテナには、モデルの重み、推論スクリプト、PyTorchや NVIDIA CUDAライブラリなどの必要な依存関係がすべて含まれています。この自己完結型ユニットは、強力なクラウドGPUからリソースに制約のあるEdge AIデバイスまで、様々なプラットフォーム上に一貫してデプロイすることができ、環境に関係なくモデルが期待通りに動作することを保証します。
  2. NLPモデルをマイクロサービスとして提供する: Hugging Faceのようなプラットフォームからのモデルを使用して自然言語処理(NLP)アプリケーションを開発しているチームは、異なるコンポーネント(例えば、テキストの前処理、モデルの推論、APIエンドポイント)を別々のマイクロサービスとしてコンテナ化することができます。これらのコンテナはKubernetesを使用して管理することができ、各コンポーネントの独立したスケーリングと更新を可能にする。これはマイクロサービス・アーキテクチャの原則に従い、より弾力性のあるシステムにつながります。Ultralytics HUBのようなプラットフォームは、合理化されたモデル管理とデプロイのためにコンテナ化の原則を活用しています。

一貫性のある分離された環境を提供することで、コンテナ化は、特に急速に進化するAIやコンピュータビジョン(CV)の分野において、最新のソフトウェア開発の基礎となっています。開発者やMLOpsエンジニアは、Google Cloudや Amazon Elastic Container Serviceなどのプラットフォーム上で、信頼性の高いAIアプリケーションをより高速かつ効率的に構築、テスト、デプロイできるようになります。

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

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク