🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI
  • Home
  • Blog
  • Nouveautés de Milvus 2.1 - Vers la simplicité et la rapidité

Nouveautés de Milvus 2.1 - Vers la simplicité et la rapidité

  • News
August 05, 2022
Xiaofan Luan

What's new in Milvus 2.1 - Towards simplicity and speed Quoi de neuf dans Milvus 2.1 - Vers la simplicité et la rapidité

Nous sommes très heureux d'annoncer lasortie de Milvus 2.1 après six mois de travail acharné de la part de tous les contributeurs de la communauté Milvus. Cette itération majeure de la populaire base de données vectorielle met l'accent sur la performance et la facilité d'utilisation, deux mots-clés importants pour nous. Nous avons ajouté la prise en charge des chaînes de caractères, de la file d'attente de messages Kafka et de Milvus embarqué, ainsi qu'un certain nombre d'améliorations en matière de performances, d'évolutivité, de sécurité et d'observabilité. Milvus 2.1 est une mise à jour passionnante qui permettra de franchir le "dernier kilomètre" entre l'ordinateur portable de l'ingénieur en algorithmes et les services de recherche de similarités vectorielles au niveau de la production.

Temps de latence de 5 ms

Milvus prend déjà en charge la recherche par approximation du plus proche voisin (ANN), ce qui représente un progrès considérable par rapport à la méthode KNN traditionnelle. Toutefois, les problèmes de débit et de latence continuent de poser des difficultés aux utilisateurs qui doivent traiter des scénarios de recherche de données vectorielles à l'échelle du milliard.

Milvus 2.1 comporte un nouveau protocole de routage qui ne repose plus sur les files d'attente de messages dans la liaison de recherche, ce qui réduit considérablement la latence de recherche pour les petits ensembles de données. Les résultats de nos tests montrent que Milvus ramène désormais son niveau de latence à 5 ms, ce qui répond aux exigences des liens en ligne critiques tels que la recherche de similitudes et la recommandation.

Contrôle de la simultanéité

Milvus 2.1 affine son modèle de concurrence en introduisant un nouveau modèle d'évaluation des coûts et un planificateur de concurrence. Il fournit désormais un contrôle de la concurrence qui garantit qu'il n'y aura pas un grand nombre de demandes concurrentes en concurrence pour les ressources de l'unité centrale et du cache, et que l'unité centrale ne sera pas sous-utilisée parce qu'il n'y a pas assez de demandes. La nouvelle couche de planification intelligente de Milvus 2.1 fusionne également les requêtes de petite taille qui ont des paramètres de requête cohérents, ce qui permet de multiplier par 3 les performances dans les scénarios de petite taille et de forte concurrence des requêtes.

Répliques en mémoire

Milvus 2.1 apporte des répliques en mémoire qui améliorent l'évolutivité et la disponibilité pour les petits ensembles de données. À l'instar des répliques en lecture seule des bases de données traditionnelles, les répliques en mémoire peuvent évoluer horizontalement en ajoutant des machines lorsque le QPS en lecture est élevé. Dans la recherche vectorielle pour les petits ensembles de données, un système de recommandation doit souvent fournir un QPS qui dépasse la limite de performance d'une seule machine. Or, dans ces scénarios, le débit du système peut être considérablement amélioré en chargeant plusieurs répliques dans la mémoire. À l'avenir, nous introduirons également un mécanisme de lecture couverte basé sur des répliques en mémoire, qui demandera rapidement d'autres copies fonctionnelles au cas où le système aurait besoin de se remettre d'une panne, et qui utilisera pleinement la redondance de la mémoire pour améliorer la disponibilité globale du système.

In-memory replicas allow query services to be based on separate
copies of the same data. Les répliques en mémoire permettent aux services d'interrogation d'être basés sur des copies séparées des mêmes données.

Chargement plus rapide des données

La dernière amélioration des performances concerne le chargement des données. Milvus 2.1 compresse désormais les journaux binaires avec Zstandard (zstd), ce qui réduit considérablement la taille des données dans les magasins d'objets et de messages ainsi que la surcharge du réseau pendant le chargement des données. En outre, des pools de goroutines sont désormais introduits afin que Milvus puisse charger des segments simultanément avec des empreintes mémoire contrôlées et minimiser le temps nécessaire à la récupération des pannes et au chargement des données.

Les résultats complets de Milvus 2.1 seront bientôt publiés sur notre site web. Restez à l'écoute.

Prise en charge des chaînes et des index scalaires

Avec la version 2.1, Milvus prend désormais en charge les chaînes de caractères de longueur variable (VARCHAR) en tant que type de données scalaires. VARCHAR peut être utilisé comme clé primaire pouvant être renvoyée en sortie et peut également servir de filtre d'attribut. Le filtrage d'attributs est l'une des fonctions les plus demandées par les utilisateurs de Milvus. Si vous souhaitez souvent "trouver les produits les plus similaires à un utilisateur dans une fourchette de prix de 200-200-", ou "trouver des articles contenant le mot-clé "base de données vectorielle" et liés à des sujets "cloud-native"", vous allez adorer Milvus 2.1.

Milvus 2.1 prend également en charge l'index inversé scalaire pour améliorer la vitesse de filtrage sur la base de la structure de donnéessuccincteMARISA-Tries. Toutes les données peuvent désormais être chargées en mémoire avec une empreinte très faible, ce qui permet une comparaison, un filtrage et une correspondance des préfixes beaucoup plus rapides sur les chaînes de caractères. Les résultats de nos tests montrent que le besoin en mémoire de MARISA-trie n'est que de 10 % de celui des dictionnaires Python pour charger toutes les données en mémoire et fournir des capacités d'interrogation.

Milvus 2.1 combines MARISA-Trie with inverted index to significantly improve filtering speed. Milvus 2.1 combine MARISA-Trie avec un index inversé pour améliorer considérablement la vitesse de filtrage.

À l'avenir, Milvus continuera à se concentrer sur les développements liés aux requêtes scalaires, à prendre en charge davantage de types d'index scalaires et d'opérateurs de requête, et à fournir des capacités de requête scalaire sur disque, le tout dans le cadre d'un effort continu visant à réduire les coûts de stockage et d'utilisation des données scalaires.

Support de Kafka

Notre communauté demande depuis longtemps la prise en charge d'Apache Kafka en tant que stockage de messages dans Milvus. Milvus 2.1 vous offre désormais la possibilité d'utiliserPulsar ou Kafka en tant que stockage de messages en fonction des configurations de l'utilisateur, grâce à la conception d'abstraction et d'encapsulation de Milvus et au SDK Go Kafka fourni par Confluent.

SDK Java prêt pour la production

Avec Milvus 2.1, notre SDK Java est maintenant officiellement publié. Le SDK Java possède exactement les mêmes capacités que le SDK Python, avec des performances concurrentielles encore meilleures. Au cours de la prochaine étape, les contributeurs de notre communauté amélioreront progressivement la documentation et les cas d'utilisation du SDK Java, et contribueront à faire passer les SDK Go et RESTful au stade de la production prête.

Observabilité et maintenabilité

Milvus 2.1 ajoute d'importantesmesures de surveillance telles que le nombre d'insertions de vecteurs, la latence/le débit de recherche, la surcharge de la mémoire du nœud et la surcharge de l'unité centrale. En outre, la nouvelle version optimise considérablement la tenue des journaux en ajustant les niveaux de journaux et en réduisant l'impression de journaux inutiles.

Milvus embarqué

Milvus a considérablement simplifié le déploiement de services de recherche de données vectorielles massives à grande échelle, mais pour les scientifiques qui souhaitent valider des algorithmes à plus petite échelle, Docker ou K8s sont encore trop compliqués. Avec l'introduction de Milvus embarqué, vous pouvez désormais installer Milvus à l'aide de pip, tout comme avec Pyrocksb et Pysqlite. Milvus embarqué prend en charge toutes les fonctionnalités des versions cluster et autonome, ce qui vous permet de passer facilement de votre ordinateur portable à un environnement de production distribué sans changer une seule ligne de code. Les ingénieurs en algorithmique auront une bien meilleure expérience lorsqu'ils construiront un prototype avec Milvus.

En outre, Milvus 2.1 présente également d'importantes améliorations en termes de stabilité et d'évolutivité, et nous attendons avec impatience votre utilisation et vos commentaires.

Les prochaines étapes

  • Voir les notes de mise à jour détaillées pour tous les changements dans Milvus 2.1.
  • InstallerMilvus 2.1 et essayer les nouvelles fonctionnalités
  • Rejoignez notre communauté Slack et discutez des nouvelles fonctionnalités avec des milliers d'utilisateurs de Milvus dans le monde entier.
  • Suivez-nous sur Twitter etLinkedIn pour recevoir des mises à jour dès que nos blogs sur les nouvelles fonctionnalités spécifiques sont publiés.

Édité par Songxian Jiang

Like the article? Spread the word

Continuer à Lire