Docker Compose を使用して GPU 対応の Milvus を実行する

このページでは、Docker Compose を使用して GPU 対応の Milvus インスタンスを起動する方法について説明します。

前提条件

イメージの取得で問題が発生した場合は、問題の詳細をcommunity@zilliz.comまでご連絡ください。必要なサポートを提供いたします。

Milvusのインストール

Docker Compose を使用して GPU 対応の Milvus をインストールするには、以下の手順に従ってください。

1. YAML ファイルをダウンロードして設定します

ダウンロード milvus-standalone-docker-compose-gpu.yml 手動で、または以下のコマンドを使用して、docker-compose.yml という名前で保存してください。

$ wget https://github.com/milvus-io/milvus/releases/download/v2.6.23/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

YAML ファイル内のスタンドアロンサービスの環境変数を、次のように変更する必要があります。

  • Milvusに特定のGPUデバイスを割り当てるには、standalone サービスの定義内にあるdeploy.resources.reservations.devices[0].devices_ids フィールドを見つけ、その値を目的のGPUのIDに置き換えてください。GPUデバイスのIDを確認するには、NVIDIA GPUディスプレイドライバーに付属のnvidia-smi ツールを使用できます。Milvusは複数のGPUデバイスに対応しています。

Milvusに単一のGPUデバイスを割り当てる:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ["0"]
...

複数のGPUデバイスをMilvusに割り当てるには:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ['0', '1']
...

2. Milvusの起動

docker-compose.yml が格納されているディレクトリで、以下のコマンドを実行して Milvus を起動します:

$ sudo docker compose up -d

Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

上記のコマンドが実行できなかった場合は、システムに Docker Compose V1 がインストールされているかどうかを確認してください。インストールされている場合は、このページに記載されている注意事項に基づき、Docker Compose V2 への移行を推奨します。

Milvusの起動後、

  • 「milvus-standalone」、「milvus-minio」、「milvus-etcd」という名前のコンテナが起動します。
    • milvus-etcdコンテナはホストに対してポートを公開しておらず、そのデータは現在のフォルダ内のvolumes/etcdにマッピングされます。
    • milvus-minioコンテナは、デフォルトの認証情報を使用してローカルでポート9090および9091を提供し、そのデータを現在のフォルダ内のvolumes/minioにマッピングします。
    • milvus-standaloneコンテナは、デフォルト設定でローカルのポート19530を提供し、そのデータを現在のフォルダ内のvolumes/milvusにマッピングします。

以下のコマンドを使用して、コンテナが起動して正常に動作しているかどうかを確認できます。

$ sudo docker compose ps

      Name                     Command                  State                            Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd         etcd -advertise-client-url ...   Up             2379/tcp, 2380/tcp
milvus-minio        /usr/bin/docker-entrypoint ...   Up (healthy)   9000/tcp
milvus-standalone   /tini -- milvus run standalone   Up             0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp

また、http://127.0.0.1:9091/webui/ から Milvus WebUI にアクセスして、お使いの Milvus インスタンスに関する詳細を確認することもできます。詳細については、Milvus WebUI を参照してください。

docker-compose.yml で Milvus に複数の GPU デバイスを割り当てている場合、どの GPU デバイスを可視化するか、または使用可能にするかを指定できます。

GPUデバイス0 を Milvus から認識可能にするには:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

GPU デバイス0 および1 を Milvus から認識可能にするには:

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

このコンテナは、次のように停止および削除できます。

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

メモリプールの設定

Milvusの起動後、milvus.yaml ファイル内のinitMemSize およびmaxMemSize の設定を変更することで、メモリプールをカスタマイズできます。

milvus.yaml ファイルは、Milvusコンテナ内の/milvus/configs/ ディレクトリにあります。

メモリプールを設定するには、milvus.yaml ファイル内のinitMemSize およびmaxMemSize の設定を次のように変更します。

  1. 次のコマンドを使用して、Milvus コンテナ内の `milvus.yaml ` をローカルマシンにコピーします。<milvus_container_id> には、実際の Milvus コンテナ ID を指定してください。

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. コピーしたmilvus.yaml ファイルを、お好みのテキストエディタで開きます。たとえば、vim を使用する場合:

    vim milvus.yaml
    
  3. 必要に応じてinitMemSize およびmaxMemSize の設定を編集し、変更を保存してください:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: メモリプールの初期サイズ。デフォルトは 1024 です。
    • maxMemSize: メモリプールの最大サイズ。デフォルトは 2048 です。
  4. 以下のコマンドを使用して、変更した `milvus.yaml ` ファイルを Milvus コンテナにコピーし直します。`<milvus_container_id> ` を実際の Milvus コンテナ ID に置き換えてください。

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. 変更を反映させるために、Milvusコンテナを再起動します:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

次の手順

DockerにMilvusをインストールしたら、次のことができます:

翻訳DeepL

Office Hours

ミルバス営業時間

Milvusの専門家であるZillizから、本番導入の支援を受けましょう。

無料1:1セッションを予約する

マネージド Milvus を無料で試す

Zilliz Cloud は手間いらず、Milvus を基盤に 10 倍高速です。

始める
フィードバック

このページは役に立ちましたか ?