Ejecutar Milvus con soporte para GPU mediante Docker Compose

En esta página se explica cómo iniciar una instancia de Milvus con soporte para GPU mediante Docker Compose.

Requisitos previos

Si tienes algún problema al descargar la imagen, ponte en contacto con nosotros en community@zilliz.com con los detalles del problema y te proporcionaremos la ayuda necesaria.

Instalar Milvus

Para instalar Milvus con soporte para GPU utilizando Docker Compose, sigue estos pasos.

1. Descarga y configura el archivo YAML

Descárgalo milvus-standalone-docker-compose-gpu.yml y guárdalo como docker-compose.yml manualmente o con el siguiente comando.

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

Debe realizar algunos cambios en las variables de entorno del servicio independiente en el archivo YAML, tal y como se indica a continuación:

  • Para asignar un dispositivo de GPU específico a Milvus, localice el campo « deploy.resources.reservations.devices[0].devices_ids » en la definición del servicio « standalone » y sustituya su valor por el ID de la GPU deseada. Puede utilizar la herramienta « nvidia-smi », incluida con los controladores de pantalla de las GPU de NVIDIA, para determinar el ID de un dispositivo de GPU. Milvus admite varios dispositivos de GPU.

Asignar un único dispositivo de GPU a Milvus:

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

Asignar varios dispositivos de GPU a Milvus:

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

2. Iniciar Milvus

En el directorio que contiene el archivo docker-compose.yml, inicia Milvus ejecutando:

$ sudo docker compose up -d

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

Si no ha podido ejecutar el comando anterior, compruebe si su sistema tiene instalado Docker Compose V1. Si es así, se recomienda migrar a Docker Compose V2 debido a las notas que figuran en esta página.

Tras iniciar Milvus,

  • los contenedores denominados milvus-standalone, milvus-minio y milvus-etcd estarán en funcionamiento.
    • El contenedor milvus-etcd no expone ningún puerto al host y asigna sus datos a volumes/etcd en la carpeta actual.
    • El contenedor «milvus-minio» atiende los puertos 9090 y 9091 de forma local con las credenciales de autenticación predeterminadas y asigna sus datos a «volumes/minio» en la carpeta actual.
    • El contenedor «milvus-standalone» atiende los puertos 19530 localmente con la configuración predeterminada y asigna sus datos a la carpeta «volumes/milvus» de la carpeta actual.

Puedes comprobar si los contenedores están en funcionamiento utilizando el siguiente comando:

$ 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

También puede acceder a la interfaz web de Milvus en http://127.0.0.1:9091/webui/ para obtener más información sobre su instancia de Milvus. Para más detalles, consulte la interfaz web de Milvus.

Si ha asignado varios dispositivos GPU a Milvus en el archivo docker-compose.yml, puede especificar qué dispositivo GPU es visible o está disponible para su uso.

Hacer que el dispositivo GPU 0 sea visible para Milvus:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Hacer que los dispositivos GPU 0 y 1 sean visibles para Milvus:

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

Puede detener y eliminar este contenedor de la siguiente manera.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

Configurar el grupo de memoria

Una vez que Milvus esté en funcionamiento, puede personalizar el grupo de memoria modificando los ajustes de initMemSize y maxMemSize en el archivo milvus.yaml.

El archivo « milvus.yaml » se encuentra en el directorio « /milvus/configs/ », dentro del contenedor de Milvus.

Para configurar el grupo de memoria, modifica los ajustes initMemSize y maxMemSize del archivo milvus.yaml de la siguiente manera.

  1. Utiliza el siguiente comando para copiar el archivo « milvus.yaml » desde el contenedor de Milvus a tu equipo local. Sustituye « <milvus_container_id> » por el ID real de tu contenedor de Milvus.

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. Abre el archivo « milvus.yaml » copiado con tu editor de texto preferido. Por ejemplo, si utilizas vim:

    vim milvus.yaml
    
  3. Edita los ajustes de « initMemSize » y « maxMemSize » según sea necesario y guarda los cambios:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: Tamaño inicial del grupo de memoria. El valor por defecto es 1024.
    • maxMemSize: Tamaño máximo del pool de memoria. El valor predeterminado es 2048.
  4. Utiliza el siguiente comando para copiar el archivo « milvus.yaml » modificado de vuelta al contenedor de Milvus. Sustituye « <milvus_container_id> » por el ID real de tu contenedor de Milvus.

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Reinicia el contenedor de Milvus para aplicar los cambios:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

Storage V3 está desactivado de forma predeterminada. Actívelo antes de utilizar funciones que dependan de él. Para conocer los requisitos y las consideraciones de compatibilidad, consulte Storage V3.

Próximos pasos

Una vez instalado Milvus en Docker, puedes:

Traducido porDeepL

Office Hours

Horario de oficina de Milvus

Obtenga ayuda con el despliegue de producción de Zilliz, los expertos en Milvus.

Reserve una sesión 1:1 gratuita

Prueba Milvus gestionado gratis

Zilliz Cloud no da problemas, funciona con Milvus y es 10 veces más rápido.

Empezar
Feedback

¿Fue útil esta página?