Modèle / jeu de données
milvus-io/bootcamp avatar
milvus-io/bootcamp

milvus-io/bootcamp : une collection de notebooks pour apprendre Milvus sur des cas concrets

Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc.

2 444 étoiles685 forksJupyter NotebookApache-2.0

En bref

De quoi s’agit-il ?
Le dépôt bootcamp rassemble des notebooks Jupyter et des démos qui montrent comment Milvus s'utilise pour la recherche d'images, le RAG, la recommandation ou la découverte de médicaments. C'est un support pédagogique, pas une bibliothèque : il faut le lire comme un recueil d'exemples exécutables, pas comme une dépendance à installer.
À qui s’adresse-t-il ?
Adoptez bootcamp si vous devez évaluer Milvus sur un cas précis (recherche d'images, RAG, recommandation) et que vous cherchez un point de départ exécutable plutôt qu'une API à intégrer. Ne l'adoptez pas comme couche d'abstraction dans un produit : rien dans le dépôt n'indique une API stable, un versionnement sémantique ou une promesse de compatibilité ascendante.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 8 jours.
En quel langage est-il écrit ?
Principalement Jupyter Notebook, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ce que bootcamp résout, et pour qui

Milvus est une base de données vectorielles. Sa documentation décrit des concepts, des API et des paramètres d'index, mais elle ne montre pas comment assembler une application complète : extraire des embeddings, créer une collection, insérer, interroger, puis brancher le résultat sur un modèle de langage ou une interface. C'est le vide que bootcamp comble. Le dépôt se présente comme un ensemble de notebooks et de démos couvrant la recherche d'images inversée, la recherche audio, la recherche moléculaire, l'analyse vidéo, les systèmes de questions-réponses et le NLP, comme l'indique la description du dépôt. Le public visé est l'ingénieur qui découvre Milvus et veut voir un pipeline fonctionner de bout en bout avant d'écrire son propre code. Le langage principal est Jupyter Notebook, ce qui a une conséquence pratique : le dépôt s'explore dans un navigateur ou dans JupyterLab, pas via un gestionnaire de paquets. Il n'y a pas de module à importer, pas de fonction à appeler depuis votre application. Vous copiez, vous adaptez, vous jetez. Le README formule l'objectif en trois verbes : explorer des tutoriels, déployer des démos, découvrir des cas d'usage.

Un index de tutoriels pointant vers milvus.io

La partie la plus utile du README n'est pas une description technique, c'est un tableau. Chaque ligne associe un tutoriel, un cas d'usage et les fonctionnalités Milvus mobilisées. On y trouve Build RAG with Milvus (recherche vectorielle), Advanced RAG Optimizations (recherche vectorielle et recherche plein texte), Hybrid Search with Milvus (recherche hybride, multi-vecteurs, embeddings denses et creux), Image Search with Milvus (recherche vectorielle, champ dynamique), Multimodal Search using Multi Vectors, Movie Recommendation with Milvus, Graph RAG with Milvus (recherche de graphe), ainsi que des entrées d'intégration comme Use Milvus as a LangChain Vector Store et RAG with Milvus and LlamaIndex. Deux quickstarts complètent la liste : Contextual Retrieval with Milvus et Vector Visualization. Ce tableau est la vraie carte du dépôt. Il faut le lire comme une grille de sélection : si votre cas d'usage n'y figure pas, vous n'aurez pas d'exemple tout prêt et il faudra repartir de la documentation Milvus. Les liens pointent vers milvus.io/docs plutôt que vers des fichiers du dépôt, ce qui signifie que le contenu pédagogique vit ailleurs et que bootcamp joue en partie un rôle de portail. C'est un choix défendable, mais il rend la frontière floue entre ce qui est maintenu ici et ce qui est maintenu sur le site.

Comment un notebook bootcamp est construit

Le dépôt ne décrit pas d'architecture logicielle interne : il n'y a pas de module partagé, pas de package Python publié, pas de couche d'abstraction au-dessus du client Milvus. Un notebook typique suit un enchaînement prévisible. On charge un jeu de données d'exemple, on calcule des embeddings avec un modèle, on ouvre une connexion à Milvus, on définit un schéma de collection, on insère les vecteurs, on construit un index, puis on lance des requêtes de similarité. Le résultat est affiché dans la cellule, souvent sous forme de liste d'identifiants ou d'images. C'est ce flux que le README résume par l'expression « vector search » pour la majorité des tutoriels, avec des variantes quand la recherche hybride ou multi-vecteurs entre en jeu. L'intérêt de cette structure est qu'elle est lisible : un lecteur qui connaît Python suit le notebook sans documentation externe. La contrepartie est qu'il n'y a rien à réutiliser tel quel. Chaque notebook redéfinit ses propres fonctions de chargement et d'insertion. Si vous cherchez un exemple de code à importer, vous ne le trouverez pas ici.

Démarrer : notebooks, démos et données d'exemple

Le README ne fournit aucune commande d'installation, aucun pip install, aucun docker compose, aucun fichier de configuration. C'est une absence qu'il faut noter : le dépôt ne se « lance » pas au sens d'un service. La seule commande implicite est de cloner le dépôt puis d'ouvrir les notebooks dans Jupyter. Le README renvoie aussi vers https://milvus.io/milvus-demos pour les démos interactives, avec trois vignettes illustrant la recherche d'images, le RAG et la découverte de médicaments. Côté données, la liste des releases ne contient qu'une entrée, étiquetée « data (Example Data) », datée du 22 mai 2025. Autrement dit, les jeux de données d'exemple sont distribués comme artefacts de release et non comme fichiers du dépôt principal, ce qui évite de versionner des binaires lourds mais ajoute une étape de téléchargement. Aucune clé de configuration, aucun paramètre de connexion, aucun nom de variable d'environnement n'apparaît dans le matériel fourni. Si vous cherchez comment pointer un notebook vers une instance Milvus existante, cette information n'est pas dans le README et devra être trouvée dans le notebook lui-même ou dans la documentation Milvus.

La limite structurelle : un dépôt pédagogique qui suit Milvus

Le problème d'un recueil de notebooks adossé à une base de données active est le couplage aux versions. Milvus évolue, les API client changent, et un notebook écrit pour une version donnée peut échouer sur une autre. Le dépôt ne publie pas de versions de code : la seule release listée est un artefact de données. Il n'y a donc aucun point d'ancrage pour dire « ce notebook fonctionne avec telle version de Milvus ». Le dernier push indiqué est le 8 septembre 2026, ce qui suggère une activité récente, mais l'absence de versionnement du code rend l'évaluation de la compatibilité difficile sans exécuter les notebooks soi-même. Deuxième limite : le dépôt ne convient pas comme dépendance. Il n'expose pas d'API, ne documente pas de contrat de stabilité et ne promet pas de compatibilité ascendante. Une équipe qui voudrait importer du code de bootcamp dans un service de production se heurterait à l'absence de tests, de packaging et de versionnement. Troisième limite, plus discrète : la dépendance à des modèles d'embedding externes. Les notebooks utilisent des modèles de deep learning pour produire les vecteurs, et ces modèles ont leurs propres exigences matérielles et leurs propres versions. Un notebook peut être correct côté Milvus et cassé côté modèle.

Face à un dépôt d'exemples officiels du client Milvus

L'alternative la plus directe n'est pas un autre projet, c'est le dépôt d'exemples du client Python Milvus lui-même, qui contient des scripts minimaux pour créer une collection, insérer et rechercher. La différence d'approche est nette. Un exemple de client illustre une API : quelques dizaines de lignes, un objectif unique, pas de jeu de données réel, pas de modèle d'embedding. bootcamp illustre un usage : un pipeline complet, avec des données d'exemple, un modèle, et un résultat visuel. Le premier est utile pour vérifier la signature d'une méthode. Le second est utile pour comprendre comment les pièces s'assemblent et pour estimer le travail d'intégration. Un troisième point de comparaison existe dans le README lui-même : les tutoriels hébergés sur milvus.io/docs couvrent les mêmes cas d'usage et sont liés depuis le tableau. La différence tient à la forme. Un notebook se lit et s'exécute cellule par cellule, avec les sorties visibles. Une page de documentation se lit linéairement et ne s'exécute pas. Pour un lecteur qui apprend, le notebook a l'avantage. Pour un lecteur qui cherche une réponse précise sur un paramètre, la page de documentation est plus rapide à parcourir.

Maintenance, licence et coût de suivi

Le dépôt est sous Apache-2.0, comme l'indique le badge de licence du README et le fichier LICENSE référencé. Cette licence est permissive et autorise la réutilisation du code avec conservation des mentions. Elle ne dit rien, en revanche, du statut des images, des jeux de données d'exemple ou des modèles d'embedding tiers utilisés dans les notebooks : ces éléments peuvent relever d'autres licences, et le matériel fourni ne permet pas de le vérifier. Pour un usage en entreprise, c'est le point à contrôler avant de reprendre un notebook tel quel. Le coût de maintenance, lui, se situe du côté de l'utilisateur. Comme il n'y a pas de versionnement de code, la mise à jour d'un notebook dépend de votre capacité à suivre les changements de Milvus et des bibliothèques Python associées. Le dépôt n'annonce ni politique de support, ni calendrier de mise à jour des tutoriels. Le README oriente vers Discord, Slack, X, LinkedIn, YouTube et Medium pour le support communautaire, ainsi que vers une FAQ et des listes de diffusion hébergées sur lists.lfai.foundation. Cela donne des canaux pour poser des questions, pas un engagement de correction.

Conclusion éditoriale

Adoptez bootcamp si vous devez évaluer Milvus sur un cas précis (recherche d'images, RAG, recommandation) et que vous cherchez un point de départ exécutable plutôt qu'une API à intégrer. Ne l'adoptez pas comme couche d'abstraction dans un produit : rien dans le dépôt n'indique une API stable, un versionnement sémantique ou une promesse de compatibilité ascendante. Avant de vous engager, vérifiez que les notebooks de la section qui vous intéresse s'exécutent avec la version de Milvus que vous comptez déployer, et lisez le fichier LICENSE pour la portée exacte de l'Apache-2.0 sur les notebooks, les images et les données d'exemple.

Sources officielles

  1. License: Apache-2.0
  2. milvus-io/bootcamp on GitHub
  3. Project website
  4. README
  5. Releases
Notes de la communauté

Notes de la communauté