Primeros pasos con Milvus impulsado por GPU: desbloquea un rendimiento 10 veces mayor
¿Estás listo para mejorar tu búsqueda vectorial con aceleración por GPU? Milvus 2.3, la versión más reciente de Milvus, admite oficialmente las GPU NVIDIA A100, proporcionando un aumento de 10 veces en el rendimiento y reducciones significativas en la latencia. Esta publicación de blog profundizará en las motivaciones detrás de esta innovación estratégica y te mostrará cómo empezar con la versión GPU de Milvus.
¿Por qué Milvus introduce compatibilidad con GPU?
Las bases de datos vectoriales desempeñan un papel crucial en la recuperación de datos a gran escala y la búsqueda de similitud. Sin embargo, las estrategias tradicionales de indexación basadas en CPU necesitan ayuda para mantenerse al día con la creciente demanda de alto rendimiento y baja latencia, particularmente con el auge de los Grandes Modelos de Lenguaje (LLM) como GPT-3. Al reconocer la posible sinergia entre Milvus y las GPU NVIDIA, el equipo de Milvus decidió introducir compatibilidad con GPU en Milvus 2.3.
Gracias al apoyo del equipo de NVIDIA (un agradecimiento especial a @wphicks y @cjnolet de NVIDIA por sus valiosas contribuciones al código RAFT), la compatibilidad con GPU en Milvus se ha convertido en una realidad, haciendo posible buscar rápida y eficientemente en conjuntos de datos masivos y expandir el panorama de la IA.
Primeros pasos con la versión GPU de Milvus
Profundicemos en los pasos para iniciar tu recorrido con la versión GPU de Milvus.
Instalación del controlador CUDA
En primer lugar, asegúrate de que tu máquina anfitriona reconozca tu GPU NVIDIA. Puedes verificarlo ejecutando el siguiente comando:
lspci
Puedes continuar si ves el campo "NVIDIA" en la salida del dispositivo. A continuación se muestra el resultado de mi dispositivo, que reconoce una tarjeta gráfica NVIDIA T4.
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]00:01.3 Non-VGA unclassified device: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)00:03.0 VGA compatible controller: Amazon.com, Inc. Device 111100:04.0 Non-Volatile memory controller: Amazon.com, Inc. Device 806100:05.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)00:1e.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)00:1f.0 Non-Volatile memory controller: Amazon.com, Inc. NVMe SSD Controller
A continuación, instala los controladores CUDA necesarios. Puedes encontrar el controlador adecuado para tu sistema en el sitio web de NVIDIA.
Por ejemplo, si usas el sistema operativo (SO) Ubuntu Linux 20.04, puedes descargar e instalar el controlador ejecutando los siguientes comandos:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.debsudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt-get update
Nota:
Puedes omitir el paso de instalación de CUDA si tu máquina anfitriona no requiere controladores CUDA.
La versión mínima del controlador requerida depende de tu tipo de GPU:
GPU profesionales de la serie NVIDIA Tesla: >=450.80.02
GPU para videojuegos: >=520.61.05
Después de instalar el controlador, debes reiniciar el sistema para que surta efecto. Una vez completado el reinicio, puedes continuar introduciendo el siguiente comando:
nvidia-smi
Nota: La imagen GPU de Milvus admite tarjetas gráficas NVIDIA con Compute Capability 6.1, 7.0, 7.5 y 8.0.
Para conocer la Compute Capability de tu GPU, visita NVIDIA GPU Compute Capability.
Para obtener instrucciones sobre la instalación de NVIDIA Container Toolkit, consulta la documentación de NVIDIA.
Configuración de GPU de Milvus
La versión GPU de Milvus solo admite un único proceso de Milvus y una única GPU de forma predeterminada. Puedes ejecutar varios procesos o contenedores de Milvus y establecer la variable de entorno CUDA_VISIBLE_DEVICES para utilizar varias GPU.
- En un contenedor, puedes establecer esta variable de entorno usando
-e:
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta
- Puedes establecer esta variable de entorno en Docker Compose usando el campo
device_ids. Consulta el acceso a GPU con la documentación de Docker Compose para obtener más información.
Nota:
Incluso si configuras varias tarjetas gráficas para un único proceso o contenedor de Milvus, Milvus solo puede utilizar una.
Puedes ajustar el rendimiento ajustando variables de entorno como
KNOWHERE_STREAMS_PER_GPU(para la concurrencia de streams de CUDA) yKNOWHERE_GPU_MEM_POOL_SIZE(para el tamaño del pool de memoria de GPU).Recomendamos encarecidamente ajustar tu variable de entorno si implementas dos procesos de Milvus en una sola tarjeta gráfica. De lo contrario, Milvus puede experimentar bloqueos debido a la competencia por la memoria.
Compilar la versión GPU de Milvus localmente
Antes de compilar Milvus localmente, asegúrate de haber instalado las dependencias necesarias.
- CUDA Toolkit
sudo apt install --no-install-recommends cuda-toolkit
- Python 3, pip, libopenblas-dev, libtbb-dev y pkg-config:
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config
- Conan, un gestor de paquetes de C/C++:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin
CMake (>=3.23): consulta el repositorio APT de Kitware para obtener más detalles.
Golang: consulta la documentación de Go para obtener más detalles.
Después de haber instalado todas las herramientas necesarias, compila la versión GPU de Milvus usando el siguiente comando:
make milvus-gpu
Ejecutar Milvus
Inicia Milvus en modo standalone ejecutando el siguiente comando:
cd binsudo ./milvus run standalone
Si prefieres la contenerización, puedes usar el archivo docker-compose.yml proporcionado para la implementación.
docker-compose up -d
Conclusión
La introducción del soporte de GPU en Milvus 2.3 abre posibilidades emocionantes para acelerar el rendimiento de las bases de datos vectoriales. Con las GPU NVIDIA A100 a tu disposición, puedes lograr mejoras notables tanto en throughput como en latencia, lo que lo convierte en una opción atractiva para aplicaciones intensivas en datos y cargas de trabajo de IA.
Sigue leyendo

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.



