Minerva Studio - Fotolia
Elastic 8.0 : toujours plus d’IA dans Elasticsearch
L’éditeur d’origine hollandaise a mis à jour Elastic Stack et met en avant les nouveautés d’Elasticsearch. Le moteur de recherche gagne des méthodes de machine learning issues d’Apache Lucene 9.0.
Elastic a mis à jour sa plateforme éponyme avec de nouvelles capacités de recherche de données dans les environnements sur site et dans le cloud.
La version Elastic 8.0 est entrée en disponibilité générale le 11 février, marquant le premier changement de version majeur pour la plateforme depuis la sortie de la 7.0 en avril 2019. Symboliquement, c’est la première depuis le passage à une licence ouverte, mais propriétaire pour Elasticsearch et Kibana en janvier 2021.
Et ce point n’est pas jamais anodin au moment de rappeler que l’un des principaux composants d’Elastic, Elasticsearch, utilise la technologie d’indexation de données open source Apache Lucene.
Avec Elastic 8.0, la recherche est enrichie d’une fonctionnalité connue sous le nom de k-nearest neighbor search (kNN ou la méthode des K des plus proches voisins, en français). Cette capacité en préversion – dont le nom est directement emprunté à une technique de machine learning – doit fournir des résultats de recherche plus pertinents que les versions précédentes d’Elastic.
Selon Mike Gualtieri, analyste chez Forrester, Elastic 8.0 comprend à la fois des améliorations incrémentales et des fonctionnalités inédites chez l’éditeur.
En particulier, l’analyste voit la fonction de recherche kNN comme une capacité avancée qui aidera Elastic à se différencier des concurrents.
« Cette fonction [kNN] est le type de technologie de recherche que vous n’auriez vu auparavant que chez Google, [Microsoft] Azure et AWS », assure-t-il. « L’avenir de la recherche d’entreprise comprendra plusieurs technologies, notamment celles qui tirent parti des nouvelles techniques d’IA. »
Mike GualtieriAnalyste Forrester
Du point de vue de la recherche, la nouvelle mise à jour est axée sur l’amélioration de la pertinence et des performances, déclare Steve Kearns, vice-président de la gestion des produits chez Elastic.
Ces deux dernières années, l’éditeur a mis en avant les usages de ses technologies Elasticsearch, Logstach et Kibana, notamment sur le segment de l’observabilité. « Elasticsearch est un moteur de recherche », rappelle-t-il. « Il est vraiment efficace pour rendre disponible à la recherche des documents et toute autre donnée non structurée. »
Elastic 8.0 améliore la recherche grâce aux fonctionnalités de Lucene 9
Là encore, cette mouture 8.0 d’Elasticsearch doit beaucoup à Lucene plus particulièrement à la version 9.0 du projet open source mis à jour en décembre 2021.
Outre un usage plus efficace de la mémoire et une plus grande vitesse d’indexation, la transposition des nouveautés de Lucene dans Elastic rend possible la méthode K des plus proches voisins. Cette approche, Elastic la nomme recherche vectorielle.
Matt Riley, directeur général de la recherche d’entreprise chez Elastic, rappelle que les moteurs de recherches sont réputés pour fournir à un utilisateur un ensemble de documents ou de données pertinent en réponse à une requête particulière. Et la pertinence a largement consisté à faire correspondre les mots-clés d’une requête à des mots-clés lisibles par l’homme dans les données, où une technologie de recherche calcule la fréquence pour déterminer la réponse appropriée.
Matt Riley indique que la recherche vectorielle fonctionne différemment. Elle transforme les mots-clés lisibles par l’homme en un vecteur mathématique. Les résultats de la recherche vectorielle ne sont pas axés sur la pertinence des mots-clés, mais plutôt sur la proximité de deux vecteurs.
« Cela exige une approche de correspondance fondamentalement différente de celle qui était disponible auparavant dans Elasticsearch », affirme-t-il.
La détermination de la pertinence dans une recherche vectorielle repose également sur la correspondance avec le plus proche voisin. Avec l’approche kNN, le résultat d’une requête renvoie les plus proches voisins, ou vecteurs adjacents, pour une requête spécifique. C’est idéal pour optimiser un moteur de recommandation et classer les résultats d’un algorithme de traitement du langage naturel (NLP), selon la documentation de l’éditeur.
Mais si Mike Gualtieri voit d’un bon œil l’apport de cette fonction kNN dans Elasticsearch, le fait qu’elle provienne directement de Lucene la rend accessible aux autres projets et logiciels concurrents. De plus, la communauté d’Open Distro for Elasticsearch, puis d’OpenSearch portée par AWS a développé un plug-in kNN.
Miracle de l’open source, la nouvelle fonctionnalité présente dans Apache Lucene 9.0 a été proposée et dirigée par Michael Sokolov, ingénieur logiciel pour la maison-mère d’AWS, Amazon. Sololov participe plus spécifiquement à l’optimisation du moteur de recherche de la plateforme d’e-commerce.
Le traitement du langage naturel fait son entrée dans Elastic 8.0
Une autre amélioration clé de la recherche de données dans Elastic 8.0 est l’amélioration des capacités de NLP.
Le NLP consiste généralement en des modèles d’apprentissage automatique formés sur un ensemble de données pour mieux comprendre le langage. Dans Elastic 8.0, des modèles NLP développés avec la librairie PyTorch peuvent maintenant être chargés directement dans la plateforme pour optimiser les requêtes, selon Matt Riley. Ces modèles « tiers » sont utilisés à l’inférence, au moment de l’ingestion de données. Pour le moment, Elastic supporte les architectures BERT et ses variantes (MobileBERT, DistilBERT, RetriBERT), ELECTRA, ainsi que les bi-encodeurs Sentence Transformers et DPR. Il est possible de piocher des modèles préentraînés sur le site de la communauté Hugging Face.
Parmi les applications citées par le directeur général, l’analyse des sentiments, la reconnaissance des entités nommées et la classification des sujets sont des exemples de ce que le NLP peut faire dans Elastic 8.0.
Dans l’immédiat, les développeurs noteront que l’éditeur a anticipé les changements cassants, ce qu’il n’avait pas forcément entre chaque itération de la 7.x. En l’occurrence, l’API REST d’Elasticsearch 8.0 connaît plusieurs modifications liées à l’abandon des mapping types. Mais l’interface est tout de même compatible avec les requêtes des versions 7.x en ajoutant des en-têtes prévus à cet effet. La version 7.17 de l’Elastic Stack, annoncée le 1er février, doit permettre de sauter le pas vers la nouvelle mouture.
Dans un même temps, l’éditeur dévoile une intégration avec S3 Storage Lens, un service pour surveiller les métriques du stockage objet sur AWS. En outre, une application AWS Lambda développée par Elastic doit exécuter les pipelines d’ingestions sur des instances serverless.
La mise à jour 8.0 fournit des paramètres de sécurité par défaut pour les clients des distributions self-managées sur site ainsi que pour les utilisateurs d’Elastic Cloud. Auparavant, les mécanismes d’authentification, d’autorisation et du chiffrement des paquets réseau via TLS réclamaient une activation manuelle pour connecter Elasticsearch et Kibana. Désormais, l’éditeur propose des tokens d’inscription automatique entre ses deux briques logicielles.