Analytique graphe : Neo4j déploie Graph Data Science sur Snowflake
Dans la foulée de la disponibilité de Snowpark Container Services, Snowflake et Neo4j ont annoncé un partenariat afin de porter en grande partie les librairies de Neo4j Graph Data Science, sur le « Data AI Cloud ».
Proposer une version managée de cette suite d’outils de graphes analytiques rassemblant plus de 65 algorithmes n’est pas nouveau pour Neo4j. C’est ce qu’il propose à travers AuraDS.
« AuraDS est une base de données (Neo4J) single instance qui intègre la bibliothèque Graph Data Science afin d’effectuer des traitements batch à l’échelle sur des centaines de millions de nœuds et de relations », explique Nicolas Rouyer, consultant senior avant-vente chez Neo4j. « Nous savions déjà que nous étions compatibles avec des espaces de mémoire temporaires, puisqu’utiliser Graph Data Science c’est projeter une partie d’un graphe en mémoire, passer des algorithmes, et éventuellement stocker les résultats ».
Nicolas RouyerConsultant senior avant vente, Neo4j
Contrairement à AuraDS, l’intégration avec Snowflake est indépendante du SGBD orienté graphes Neo4j.
« Il fallait proposer une solution indépendante d’Aura, ce que nous avons fait. Ici, nous projetons en mémoire un jeu de données en provenance de Snowflake après avoir réfléchi au modèle de données », explique Nicolas Rouyer.
Une initiative permise par Snowpark Container Services
Ici, les traitements en mémoire sont effectués sur des instances gérées par Snowflake, puis les résultats sont stockés dans les tables du datawarehouse cloud.
Plus particulièrement Graph Data Science est déployé sur Snowpark Container Services (SCS), une offre de conteneurisation entièrement managée par Snowflake sur AWS, très prochainement en disponibilité générale. SCS est en préversion publique sur Microsoft Azure et Google Cloud.
« Contrairement aux plateformes d’orchestration de conteneurs traditionnelles comme Docker ou Kubernetes, Snowpark Container Services offre un environnement d’exécution OCI (Open Container Initiative), spécifiquement optimisé pour Snowflake », précise la documentation de l’éditeur. Ces images OCI sont exécutées sur des pools de calcul, à savoir une ou plusieurs machines virtuelles hébergées sur des instances bien dotées en mémoire vive et en CPU.
Les projections graphes en mémoire sont techniquement opérées à l’aide de la technologie Apache Arrow, un framework de traitement analytique in memory. « Cela va très vite, nous avons même chargé des dizaines de millions de tests sur certains tests », assure le consultant.
Mais ce partenariat permettrait surtout d’éviter les éventuels déboires d’intégration entre une plateforme graphe et une plateforme analytique.
Nicolas RouyerConsultant senior avant vente, Neo4j
« En comparaison de ce qui est disponible aujourd’hui, l’intégration est beaucoup moins lourde », juge Nicolas Rouyer. « Il n’y a pas besoin de passer par un ETL, il n’y a pas à configurer un connecteur Apache Spark, ce qui n’est pas forcément très compliqué, mais cela réclame une certaine maîtrise ».
Affiner la précision des algorithmes de prédiction
Les algorithmes de graphe permettent d’identifier des anomalies, des fraudes, des segments de clients suivant leurs préférences ou leurs achats (centralité), d’optimiser les recommandations de produits, des planifications de trajets dans la chaîne d’approvisionnement, etc.
Pour les utilisateurs, les deux partenaires font en sorte de rendre ces algorithmes activables à travers des fonctions SQL.
Dans la plupart des cas, les résultats de ces traitements sont ajoutés sous forme de colonnes dans une table Snowflake. « Nous pouvons prendre en charge des entiers, des décimaux, des vecteurs. On peut calculer des vecteurs qui ne représentent pas du texte, comme dans le domaine de l’IA générative, mais une position topologique d’un nœud dans le graphe, cela s’appelle le node embedding », illustre Nicolas Rouyer.
Nicolas RouyerConsultant senior avant vente, Neo4j
Ces algorithmes pourraient, selon les deux partenaires, servir à alimenter des graphes de connaissances afin de « capturer » des relations entre des entités et d’ancrer les résultats de grands modèles de langage (Large Language Models ou LLM).
Selon le consultant sénior chez Neo4J, les vecteurs textuels (text embeddings) ne sont pas directement compatibles avec les représentations vectorielles de nœuds.
« Si nous restons dans Snowflake, nous pouvons utiliser ces nodes embeddings afin d’affiner la précision de modèles prédictifs, par exemple pour prédire un achat », explique Nicolas Rouyer.
Ces modèles prédictifs peuvent ensuite être appelés en lien avec des modèles LLM et une architecture RAG.
C’est une manière d’augmenter les jeux de données présents dans les tables Snowflake, mais il ne s’agit pas pour l’instant de faire du « Data AI Cloud » une base de données orientée graphes (ou d’en héberger une).
Pas de stockage des graphes
Les projections graphes en mémoire sont éphémères. Ces traitements effectués ne peuvent pas encore être stockés.
« [L’intégration avec Snowflake] est une interface qui permet de rester dans Snowflake tout en utilisant la puissance du graphe, des algorithmes associés. […] Nous fournissons une corde supplémentaire à l’arc de nos clients communs. Ce qu’il manque là-dedans, c’est un véritable stockage du graphe », reconnaît le consultant sénior.
Pour stocker les relations, il faut passer, pour l’instant par AuraDB, par exemple.
« Pour faire du graphe RAG, il faut que la base de données sous-jacente soit Neo4j. Dans ce cas, l’on peut adopter une stratégie hybride qui allie le meilleur des deux », estime Nicolas Rouyer.
Pour les clients communs de Snowflake et de Neo4j, l’offre est accessible en préversion et devrait entrer en disponibilité générale au quatrième trimestre 2024. Le service de Neo4j sera disponible sur la marketplace Snowflake à la demande.