Configurer Milvus dans Google Colaboratory pour faciliter la construction d'applications ML
Les progrès technologiques rendent l'intelligence artificielle (IA) et l'analyse à l'échelle de la machine plus accessibles et plus faciles à utiliser. La prolifération des logiciels libres, des ensembles de données publiques et d'autres outils gratuits sont les principaux moteurs de cette tendance. En associant deux ressources gratuites, Milvus et Google Colaboratory ("Colab" en abrégé), tout le monde peut créer des solutions d'IA et d'analyse de données puissantes et flexibles. Cet article fournit des instructions pour configurer Milvus dans Colab, ainsi que pour effectuer des opérations de base à l'aide du kit de développement logiciel (SDK) Python.
Aller à :
- Qu'est-ce que Milvus ?
- Qu'est-ce que Google Colaboratory ?
- Premiers pas avec Milvus dans Google Colaboratory
- Exécuter des opérations Milvus de base dans Google Colab avec Python
- Milvus et Google Colaboratory fonctionnent parfaitement ensemble
Qu'est-ce que Milvus ?
Milvus est un moteur de recherche de similarité vectorielle open-source qui peut s'intégrer à des bibliothèques d'index largement adoptées, notamment Faiss, NMSLIB et Annoy. La plateforme comprend également un ensemble complet d'API intuitives. En associant Milvus à des modèles d'intelligence artificielle (IA), il est possible de créer une grande variété d'applications, notamment :
- Moteurs de recherche d'images, de vidéos, d'audio et de textes sémantiques.
- Systèmes de recommandation et chatbots.
- Le développement de nouveaux médicaments, le dépistage génétique et d'autres applications biomédicales.
Qu'est-ce que Google Colaboratory ?
Google Colaboratory est un produit de l'équipe Google Research qui permet à quiconque d'écrire et d'exécuter du code Python à partir d'un navigateur web. Colab a été conçu pour les applications d'apprentissage automatique et d'analyse de données. Il offre un environnement de notes Jupyter gratuit, se synchronise avec Google Drive et permet aux utilisateurs d'accéder à de puissantes ressources informatiques en nuage (y compris des GPU). La plateforme prend en charge de nombreuses bibliothèques d'apprentissage automatique et peut être intégrée à PyTorch, TensorFlow, Keras et OpenCV.
Démarrer avec Milvus dans Google Colaboratory
Bien que Milvus recommande d'utiliser Docker pour installer et démarrer le service, l'environnement cloud actuel de Google Colab ne prend pas en charge l'installation de Docker. En outre, ce tutoriel vise à être aussi accessible que possible - et tout le monde n'utilise pas Docker. Installez et démarrez le système en compilant le code source de Milvus pour éviter d'utiliser Docker.
Télécharger le code source de Milvus et créer un nouveau carnet de notes dans Colab
Google Colab est livré avec tous les logiciels de prise en charge de Milvus préinstallés, y compris les outils de compilation requis GCC, CMake et Git et les pilotes CUDA et NVIDIA, ce qui simplifie le processus d'installation et de configuration de Milvus. Pour commencer, téléchargez le code source de Milvus et créez un nouveau carnet de notes dans Google Colab :
- Télécharger le code source de Milvus : Milvus_tutorial.ipynb.
Wget https://raw.githubusercontent.com/milvus-io/bootcamp/0.10.0/getting_started/basics/milvus_tutorial/Milvus_tutorial.ipynb
- Téléchargez le code source de Milvus dans Google Colab et créez un nouveau carnet de notes.
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_2.png (en anglais)
Compiler Milvus à partir du code source
Télécharger le code source de Milvus
git clone -b 0.10.3 https://github.com/milvus-io/milvus.git
Installer les dépendances
% cd /content/milvus/core ./ubuntu_build_deps.sh./ubuntu_build_deps.sh
Construire le code source 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
Note : Si la version GPU est correctement compilée, un message "GPU resources ENABLED !" apparaît.
Lancer le serveur Milvus
Ajouter le répertoire lib/ à 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
Démarrer et exécuter le serveur Milvus en arrière-plan :
% cd scripts
! ls
! nohup ./start_server.sh &
Afficher l'état du serveur Milvus :
! ls
! cat nohup.out
Remarque : Si le serveur Milvus est lancé avec succès, l'invite suivante apparaît :
Blog_Set Up Milvus in Google Colaboratory for Easy ML Application Building_3.png (Configurer Milvus dans Google Colaboratory pour faciliter la création d'applications ML)
Exécuter des opérations Milvus de base dans Google Colab avec Python
Après un lancement réussi dans Google Colab, Milvus peut fournir une variété d'interfaces API pour Python, Java, Go, Restful et C++. Vous trouverez ci-dessous des instructions pour utiliser l'interface Python afin d'effectuer des opérations Milvus de base dans Colab.
Installez pymilvus :
! pip install pymilvus==0.2.14
Se connecter au serveur :
# Connect to Milvus Server
milvus = Milvus(_HOST, _PORT)
# Return the status of the Milvus server.
server_status = milvus.server_status(timeout=10)
Créer une collection/partition/index :
# 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)
Insérer et vider :
# 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)
Charger et rechercher :
# 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)
Obtenir des informations sur la collection/l'index :
# 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)
Obtenir des vecteurs par 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)
Obtention/réglage des paramètres :
# 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')
Supprimer l'index/les vecteurs/la partition/la collection :
# 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 et Google Colaboratory fonctionnent parfaitement ensemble
Google Colaboratory est un service en nuage gratuit et intuitif qui simplifie grandement la compilation de Milvus à partir du code source et l'exécution d'opérations Python de base. Ces deux ressources sont à la disposition de tous, ce qui rend l'IA et les technologies d'apprentissage automatique plus accessibles à tous. Pour plus d'informations sur Milvus, consultez les ressources suivantes :
- Pour des tutoriels supplémentaires couvrant une grande variété d'applications, visitez Milvus Bootcamp.
- Pour les développeurs souhaitant apporter des contributions ou exploiter le système, consultez Milvus sur GitHub.
- Pour plus d'informations sur la société qui a lancé Milvus, visitez 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