Configuración de Milvus en Google Colaboratory para facilitar la creación de aplicaciones ML
El progreso tecnológico hace que la inteligencia artificial (IA) y el análisis a escala de máquina sean cada vez más accesibles y fáciles de usar. La proliferación del software de código abierto, los conjuntos de datos públicos y otras herramientas gratuitas son las principales fuerzas que impulsan esta tendencia. Combinando dos recursos gratuitos, Milvus y Google Colaboratory ("Colab" para abreviar), cualquiera puede crear soluciones de IA y análisis de datos potentes y flexibles. Este artículo proporciona instrucciones para configurar Milvus en Colab, así como para realizar operaciones básicas utilizando el kit de desarrollo de software (SDK) de Python.
Ir a:
- ¿Qué es Milvus?
- ¿Qué es Google Colaboratory?
- Primeros pasos con Milvus en Google Colaboratory
- Ejecutar operaciones básicas de Milvus en Google Colab con Python
- Milvus y Google Colaboratory funcionan perfectamente juntos
¿Qué es Milvus?
Milvus es un motor de búsqueda de similitud vectorial de código abierto que puede integrarse con bibliotecas de índices ampliamente adoptadas, incluyendo Faiss, NMSLIB y Annoy. La plataforma también incluye un amplio conjunto de API intuitivas. Al emparejar Milvus con modelos de inteligencia artificial (IA), se puede construir una amplia variedad de aplicaciones que incluyen:
- Motores de búsqueda de imágenes, vídeo, audio y texto semántico.
- Sistemas de recomendación y chatbots.
- Desarrollo de nuevos fármacos, cribado genético y otras aplicaciones biomédicas.
¿Qué es Google Colaboratory?
Google Colaboratory es un producto del equipo de Google Research que permite a cualquier persona escribir y ejecutar código python desde un navegador web. Colab se creó pensando en aplicaciones de aprendizaje automático y análisis de datos, ofrece un entorno gratuito de cuadernos Jupyter, se sincroniza con Google Drive y permite a los usuarios acceder a potentes recursos de computación en la nube (incluidas las GPU). La plataforma es compatible con muchas bibliotecas populares de aprendizaje automático y puede integrarse con PyTorch, TensorFlow, Keras y OpenCV.
Primeros pasos con Milvus en Google Colaboratory
Aunque Milvus recomienda el uso de Docker para instalar e iniciar el servicio, el entorno actual de la nube de Google Colab no admite la instalación de Docker. Además, este tutorial pretende ser lo más accesible posible - y no todo el mundo utiliza Docker. Instale e inicie el sistema compilando el código fuente de Milvus para evitar el uso de Docker.
Descargar el código fuente de Milvus y crear un nuevo cuaderno en Colab
Google Colab viene con todo el software de soporte para Milvus preinstalado, incluidas las herramientas de compilación necesarias GCC, CMake y Git y los controladores CUDA y NVIDIA, lo que simplifica el proceso de instalación y configuración de Milvus. Para empezar, descarga el código fuente de Milvus y crea un nuevo bloc de notas en Google Colab:
- Descarga el código fuente de Milvus: Milvus_tutorial.ipynb.
Wget https://raw.githubusercontent.com/milvus-io/bootcamp/0.10.0/getting_started/basics/milvus_tutorial/Milvus_tutorial.ipynb
- Sube el código fuente de Milvus a Google Colab y crea un nuevo bloc de notas.
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_2.png
Compilar Milvus a partir del código fuente
Descargar el código fuente de Milvus
git clone -b 0.10.3 https://github.com/milvus-io/milvus.git
Instalar dependencias
% cd /content/milvus/core ./ubuntu_build_deps.sh./ubuntu_build_deps.sh
Compilar el código fuente de Milvus
% cd /content/milvus/core
!ls
!./build.sh -t Release
# To build GPU version, add -g option, and switch the notebook settings with GPU
#((Edit -> Notebook settings -> select GPU))
# !./build.sh -t Release -g
Nota: Si la versión GPU está correctamente compilada, aparecerá un aviso "GPU resources ENABLED!".
Inicie el servidor Milvus
Añada el directorio lib/ a LD_LIBRARY_PATH:
% cd /content/milvus/core/milvus
! echo $LD_LIBRARY_PATH
import os
os.environ['LD_LIBRARY_PATH'] +=":/content/milvus/core/milvus/lib"
! echo $LD_LIBRARY_PATH
Inicie y ejecute el servidor Milvus en segundo plano:
% cd scripts
! ls
! nohup ./start_server.sh &
Mostrar el estado del servidor Milvus:
! ls
! cat nohup.out
Nota: Si el servidor Milvus se inicia correctamente, aparece el siguiente aviso:
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_3.png
Ejecutar operaciones básicas de Milvus en Google Colab con Python
Después de iniciar con éxito en Google Colab, Milvus puede proporcionar una variedad de interfaces API para Python, Java, Go, Restful y C++. A continuación encontrará instrucciones para utilizar la interfaz Python para realizar operaciones básicas de Milvus en Colab.
Instale pymilvus:
! pip install pymilvus==0.2.14
Conéctese al servidor:
# Connect to Milvus Server
milvus = Milvus(_HOST, _PORT)
# Return the status of the Milvus server.
server_status = milvus.server_status(timeout=10)
Crear una colección/partición/índice:
# Information needed to create a collection
param={'collection_name':collection_name, 'dimension': _DIM, 'index_file_size': _INDEX_FILE_SIZE, 'metric_type': MetricType.L2}
# Create a collection.
milvus.create_collection(param, timeout=10)
# Create a partition for a collection.
milvus.create_partition(collection_name=collection_name, partition_tag=partition_tag, timeout=10)
ivf_param = {'nlist': 16384}
# Create index for a collection.
milvus.create_index(collection_name=collection_name, index_type=IndexType.IVF_FLAT, params=ivf_param)
Insertar y vaciar:
# Insert vectors to a collection.
milvus.insert(collection_name=collection_name, records=vectors, ids=ids)
# Flush vector data in one collection or multiple collections to disk.
milvus.flush(collection_name_array=[collection_name], timeout=None)
Cargar y buscar:
# Load a collection for caching.
milvus.load_collection(collection_name=collection_name, timeout=None)
# Search vectors in a collection.
search_param = { "nprobe": 16 }
milvus.search(collection_name=collection_name,query_records=[vectors[0]],partition_tags=None,top_k=10,params=search_param)
Obtener información de colección/índice:
# Return information of a collection. milvus.get_collection_info(collection_name=collection_name, timeout=10)
# Show index information of a collection. milvus.get_index_info(collection_name=collection_name, timeout=10)
Obtener vectores por ID:
# List the ids in segment
# you can get the segment_name list by get_collection_stats() function.
milvus.list_id_in_segment(collection_name =collection_name, segment_name='1600328539015368000', timeout=None)
# Return raw vectors according to ids, and you can get the ids list by list_id_in_segment() function.
milvus.get_entity_by_id(collection_name=collection_name, ids=[0], timeout=None)
Obtener/establecer parámetros:
# Get Milvus configurations. milvus.get_config(parent_key='cache', child_key='cache_size')
# Set Milvus configurations. milvus.set_config(parent_key='cache', child_key='cache_size', value='5G')
Borrar índice/vectores/partición/colección:
# Remove an index. milvus.drop_index(collection_name=collection_name, timeout=None)
# Delete vectors in a collection by vector ID.
# id_array (list[int]) -- list of vector id milvus.delete_entity_by_id(collection_name=collection_name, id_array=[0], timeout=None)
# Delete a partition in a collection. milvus.drop_partition(collection_name=collection_name, partition_tag=partition_tag, timeout=None)
# Delete a collection by name. milvus.drop_collection(collection_name=collection_name, timeout=10)
Milvus y Google Colaboratory se complementan a la perfección
Google Colaboratory es un servicio en la nube gratuito e intuitivo que simplifica enormemente la compilación de Milvus a partir del código fuente y la ejecución de operaciones básicas en Python. Ambos recursos están disponibles para que cualquiera pueda utilizarlos, haciendo que la IA y la tecnología de aprendizaje automático sean más accesibles para todos. Para más información sobre Milvus, consulte los siguientes recursos:
- Para obtener tutoriales adicionales que cubren una amplia variedad de aplicaciones, visite Milvus Bootcamp.
- Los desarrolladores interesados en realizar contribuciones o aprovechar el sistema pueden encontrar Milvus en GitHub.
- Para más información sobre la empresa que lanzó Milvus, visite Zilliz.com.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word