用語集

ドッカー

DockerでAI/MLワークフローを効率化!コンテナ化のメリット、モデルデプロイのヒント、再現可能な実験をご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

Dockerは、コンテナを使用することで、アプリケーションの作成、デプロイ、管理を簡素化するために設計されたオープンソースのプラットフォームです。コンテナは、ソフトウェアとその依存関係をパッケージ化する軽量でポータブルなユニットであり、開発、テスト、本番環境間での一貫性を保証する。Dockerは機械学習(ML)や人工知能(AI)プロジェクトで広く使用され、ワークフローを合理化し、再現性を向上させています。

Dockerの主な特徴

  • コンテナ化:Dockerは、アプリケーションを分離されたコンテナで実行することを可能にし、基盤となるインフラストラクチャに関係なく一貫性を保証します。コンテナ化とMLにおけるその役割について詳しく知る。
  • 移植性:コンテナは、開発者のノートパソコンからクラウドサーバーまで、互換性の問題なしに異なる環境間で簡単に移動できる。
  • リソース効率:仮想マシンとは異なり、DockerコンテナはホストシステムのOSカーネルを共有するため、より軽量で効率的です。
  • スケーラビリティ:Dockerはアプリケーションの迅速なスケーリングをサポートし、これは特に機械学習モデルのトレーニングとデプロイに役立ちます。

AIとMLにおける関連性

AIとMLにおいて、Dockerはモデル開発、テスト、デプロイのための信頼できる環境を確保する上で極めて重要な役割を果たしている。コード、依存関係、設定をコンテナ内にパッケージ化することで、Dockerは一般的な「私のマシンでは動作する」という問題を排除します。これは、チーム間でのコラボレーションや、異なるプラットフォーム上にモデルをデプロイする場合に特に重要です。

AI/MLにおける例:

  1. モデルのデプロイ:Dockerは機械学習モデルをAPIとしてデプロイするためによく使われる。例えば、学習済みのUltralytics YOLO モデルをコンテナ化し、リアルタイムの物体検出アプリケーションにデプロイすることができます。Dockerを使用したモデルデプロイメントオプションをご覧ください。
  2. 再現可能な実験:研究者は、実験を一貫して再現するために必要なすべてのライブラリ、フレームワーク(PyTorch のような)、および設定を含むDockerイメージを共有することができます。詳細な手順については、Ultralytics YOLO Docker クイックスタートガイドをご覧ください。

Dockerの仕組み

Dockerはクライアント・サーバー・アーキテクチャを採用している:

  • Dockerクライアント:Dockerと対話するためのコマンドラインインターフェイス(CLI)。
  • Dockerデーモン:コンテナを管理するバックグラウンドで実行されるサービス。
  • Dockerイメージ:コンテナの作成に使用される設定済みのテンプレート。これらのイメージは、ライブラリ、ツール、コードを含むソフトウェア環境を定義する。
  • Docker Hub:Dockerイメージを共有・保存するためのクラウドベースのリポジトリ。

実践的なデモンストレーションについては、Ultralytics DockerGuideをご覧ください。Ultralytics YOLO モデルの環境設定について説明しています。

実世界での応用

1.AIを活用したヘルスケア

Dockerは、医療用画像処理における腫瘍検出などのタスクのために、病院でのAIモデルの配備を支援する。例えば、コンテナ化されたUltralytics YOLO モデルは、MRIやCTスキャンにおける異常の特定を支援することができます。ヘルスケアにおけるAIの詳細をご覧ください。

2.スマート農業

精密農業では、Dockerは作物モニタリングや害虫検出のためのAIモデルのシームレスな展開を可能にする。コンテナ化されたアプリケーションを使用することで、農家は遠隔地でも予測分析を実行できます。AIが農業イノベーションにどのように力を与えるかをご覧ください。

Dockerと関連技術の比較

Dockerがコンテナ化に重点を置く一方で、Kubernetesのような他のツールはコンテナのオーケストレーションを管理する。Kubernetesは大規模なデプロイメントを処理し、複数のコンテナにワークロードを分散させることに優れており、Dockerを補完するものとなっています。Kubernetesとそのアプリケーションの詳細については、こちらをご覧ください。

機械学習チームのメリット

  1. コラボレーションの簡素化:チームでDockerイメージを共有することで、開発者、研究者、本番エンジニアの間で統一された環境を確保できます。
  2. CI/CDパイプラインとの統合:Dockerは継続的インテグレーション/継続的デプロイメント(CI/CD)ツールとシームレスに統合し、機械学習モデルのデプロイを自動化します。継続的インテグレーションとAIワークフローにおけるその役割について学びましょう。
  3. 多様なフレームワークのサポート:Dockerは、TensorFlow やPyTorch のような一般的なMLフレームワークをサポートしており、タスクに適したツールを柔軟に選択することができます。

AI/MLのためのDocker入門

AI/MLプロジェクトでDockerを使い始めるには、Ultralytics Dockerクイックスタートガイドを参照してください。このガイドでは、インストール、コンテナの作成、パフォーマンスを最適化するためのGPU サポートを使用したDockerの実行について説明します。

DockerがUltralytics HUBのようなUltralytics ツールとどのように統合するかについてのより広範な理解については、Ultralytics HUBのドキュメントをご覧ください。このプラットフォームは、データセットの管理、モデルのトレーニング、AIソリューションのスケールでの展開を簡素化します。

Dockerを活用することで、AIとMLの実務者はセットアップの複雑さを軽減し、コラボレーションを強化し、多様な環境に自信を持ってモデルを展開することができます。

すべて読む