Exécuter Milvus avec prise en charge du GPU à l'aide de Docker Compose

Cette page explique comment démarrer une instance Milvus avec prise en charge GPU à l'aide de Docker Compose.

Prérequis

Si vous rencontrez des difficultés pour récupérer l'image, contactez-nous à l'adresse community@zilliz.com en précisant les détails du problème, et nous vous fournirons l'assistance nécessaire.

Installer Milvus

Pour installer Milvus avec prise en charge du GPU à l'aide de Docker Compose, suivez ces étapes.

1. Téléchargez et configurez le fichier YAML

Téléchargez milvus-standalone-docker-compose-gpu.yml et enregistrez-le sous le nom docker-compose.yml manuellement ou à l’aide de la commande suivante.

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

Vous devez apporter quelques modifications aux variables d'environnement du service autonome dans le fichier YAML comme suit :

  • Pour attribuer un GPU spécifique à Milvus, repérez le champ « deploy.resources.reservations.devices[0].devices_ids » dans la définition du service « standalone » et remplacez sa valeur par l’ID du GPU souhaité. Vous pouvez utiliser l’outil « nvidia-smi », fourni avec les pilotes d’affichage des GPU NVIDIA, pour déterminer l’ID d’un GPU. Milvus prend en charge plusieurs GPU.

Attribuer un seul GPU à Milvus :

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

Attribuer plusieurs GPU à Milvus :

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

2. Démarrer Milvus

Dans le répertoire contenant le fichier docker-compose.yml, démarrez Milvus en exécutant la commande suivante :

$ sudo docker compose up -d

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

Si vous ne parvenez pas à exécuter la commande ci-dessus, vérifiez si Docker Compose V1 est installé sur votre système. Si c’est le cas, il est recommandé de migrer vers Docker Compose V2 en raison des remarques figurant sur cette page.

Une fois Milvus démarré,

  • les conteneurs nommés milvus-standalone, milvus-minio et milvus-etcd sont en cours d'exécution.
    • Le conteneur milvus-etcd n’expose aucun port vers l’hôte et mappe ses données vers le répertoire volumes/etcd du dossier actuel.
    • Le conteneur « milvus-minio » sert localement les ports 9090 et 9091 avec les identifiants d'authentification par défaut et mappe ses données vers le répertoire « volumes/minio » du dossier actuel.
    • Le conteneur milvus-standalone expose localement les ports 19530 avec les paramètres par défaut et stocke ses données dans le répertoire volumes/milvus du dossier actuel.

Vous pouvez vérifier si les conteneurs sont opérationnels à l’aide de la commande suivante :

$ 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

Vous pouvez également accéder à l’interface Web de Milvus à l’adresse http://127.0.0.1:9091/webui/ pour en savoir plus sur votre instance Milvus. Pour plus de détails, consultez la documentation sur l’interface Web de Milvus.

Si vous avez attribué plusieurs périphériques GPU à Milvus dans le fichier docker-compose.yml, vous pouvez spécifier quel périphérique GPU est visible ou disponible à l’utilisation.

Rendre le périphérique GPU 0 visible pour Milvus :

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Rendre les périphériques GPU 0 et 1 visibles pour Milvus :

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

Vous pouvez arrêter et supprimer ce conteneur comme suit.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

Configurer le pool de mémoire

Une fois Milvus opérationnel, vous pouvez personnaliser le pool de mémoire en modifiant les paramètres initMemSize et maxMemSize dans le fichier milvus.yaml.

Le fichier milvus.yaml se trouve dans le répertoire /milvus/configs/ à l’intérieur du conteneur Milvus.

Pour configurer le pool de mémoire, modifiez les paramètres initMemSize et maxMemSize dans le fichier milvus.yaml comme suit.

  1. Utilisez la commande suivante pour copier le fichier « milvus.yaml » depuis le conteneur Milvus vers votre machine locale. Remplacez « <milvus_container_id> » par l'ID réel de votre conteneur Milvus.

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. Ouvrez le fichier « milvus.yaml » copié à l’aide de votre éditeur de texte préféré. Par exemple, avec vim :

    vim milvus.yaml
    
  3. Modifiez les paramètres « initMemSize » et « maxMemSize » selon vos besoins, puis enregistrez vos modifications :

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: Taille initiale du pool de mémoire. La valeur par défaut est 1024.
    • maxMemSize: Taille maximale du pool de mémoire. Valeur par défaut : 2048.
  4. Utilisez la commande suivante pour recopier le fichier milvus.yaml modifié dans le conteneur Milvus. Remplacez <milvus_container_id> par l'ID réel de votre conteneur Milvus.

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Redémarrez le conteneur Milvus pour appliquer les modifications :

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

Storage V3 est désactivé par défaut. Activez-le avant d’utiliser les fonctionnalités qui en dépendent. Pour connaître les prérequis et les considérations de compatibilité, consultez la section Storage V3.

Étapes suivantes

Maintenant que Milvus est installé dans Docker, vous pouvez :

Traduit parDeepL

Office Hours

Heures de bureau à Milvus

Obtenez de l'aide pour le déploiement de la production de la part de Zilliz, les experts de Milvus.

Réservez une session 1:1 gratuite

Essayez Milvus géré gratuitement

Zilliz Cloud est sans souci, propulsé par Milvus et 10 fois plus rapide.

Commencer
Feedback

Cette page a-t - elle été utile ?