vege - stock.adobe.com

DBaaS : Google Cloud façonne Spanner pour l’IA générative

Google Cloud a intégré des traitements orientés graphe, de la recherche vectorielle et plein texte dans sa base de données Spanner. L’idée, fournir un SGBD adapté à l’IA et à l’IA générative.

Jeudi, lors de son événement Next’24 à Tokyo, Google a annoncé un ensemble de mises à jour pour ses bases de données Spanner, Bigtable et Cloud SQL.  

Google Cloud a particulièrement mis en avant Spanner, qu’il a d’abord commercialisé sous le nom de Cloud Spanner en 2017. Il s’agit d’une base de données multimodèle qui, historiquement, prend en charge les données structurées.

Avec l’engouement autour de l’IA générative, il est nécessaire de mieux prendre en charge les données semi-structurées, voire non structurées suivant la nature du SGBD.

En ce sens, le géant du cloud a prévu de transposer des fonctionnalités de recherche vectorielle à la plupart de ces bases de données.

Depuis novembre 2023, il était déjà possible d’effectuer des recherches vectorielles sur les données stockées dans Spanner depuis Vertex AI Vector Search.

Après la recherche par la méthode des K plus proches voisins (k-nN) et l’intégration de plusieurs fonctions de calcul de distance entre les vecteurs (cosine, euclidienne, dot product), Google Cloud a introduit la méthode de recherche approximative des plus proches voisins (ANN) dans Spanner.

Ici, Google Cloud s’appuie sur son propre algorithme d’indexation ScANN, d’abord introduit dans AlloyDB. LeMagIT avait déjà évoqué avec Andi Gutmans, vice-président et directeur général bases de données chez Google Cloud, les avantages de cette technologie. Si un index ANN est normalement moins précis qu’un autre porté par un algorithme k-nN, il compense par sa vélocité et une empreinte de calcul bien plus faible. Microsoft, Datastax et Hazelcast ont fait le même choix.

En revanche, contrairement à la plupart des acteurs du marché, GCP a décidé de ne pas s’appuyer sur un algorithme orienté graphe comme HNSW (Apache Lucene) ou DiskANN (Microsoft), mais sur une arborescence B-Tree, qui serait plus adaptée à l’exécution d’instructions SIMD des processeurs. Cette prise en charge de la recherche vectorielle reste néanmoins en préversion.

Google Cloud ne n’intéresse pas uniquement à la recherche vectorielle. En préversion également, Spanner intègre un mécanisme de recherche plein texte afin de trouver au sein des tables des mots, des phrases, des nombres entiers (Integer). Ici, le géant du cloud entend proposer des techniques de recherche textuelle basique (correspondance de tous les mots, mots exacts, conditionnelles, etc.), mais également numérique, n grammes (pour les termes mal orthographiés, entre autres), et des mots proches une fois prononcés à l’oral.

Spanner Graph : Google Cloud infuse un modèle graphe dans une base relationnelle

À cela s’ajoutent des mécanismes de classement des résultats de recherche, de snippets (mettre en avant l’extrait du texte qui contient le ou les termes recherchés), de recherche d’occurrences, de correction orthographique, d’ajout de synonymes, de conversion des pluriels et des nombres écrits en lettre (et vice-versa).

Comme avec la recherche vectorielle, il faudra d’abord tokeniser les documents. La tokenisation est une étape consistant à « découper » des textes en séquences de trois à quatre caractères ou, à plus grosse maille, par mot. Le tokenizer, l’algorithme chargé de cette division, est disponible depuis une fonction SQL. Ici, un document correspond à une donnée « interrogeable » dans une ligne spécifique. La tokenisation doit aider à normaliser les textes et améliorer la pertinence des résultats.

Google Cloud ne s’arrête pas là. L’annonce la plus importante concernant Spanner n’est autre que la prise en charge des graphes en préversion, à travers Spanner Graph.

Elle s’appuie, entre autres, sur une interface d’interrogation compatible avec Graph Query Language (GQL), le langage de requête graphe au standard ISO.

Pour autant, le schéma graphe de Spanner s’appuie, lui, sur le standard SQL/PGQ (Property Graph Queries), le même utilisé par Oracle dans sa base de données Oracle 23ai.

Property Graph Query correspond davantage à un moyen d’appeler un modèle graphe en lecture seule par-dessus une base de données relationnelle.

« Vous pouvez faire correspondre des tables à des graphes en utilisant un schéma déclaratif, sans migration de données », explique Google Cloud. « Cela permet d’apporter des graphes à des jeux de données tabulaires. Vous pouvez également lier les choix de modèle de données tardivement par requête, ce qui facilite le choix de l’outil adapté à vos flux de travail ».

Ici, il faudra déployer une instance Spanner Graph, puis appeler des tables en provenance d’autres bases. En revanche, la possibilité de requêter les tables en SQL demeure.

Trois mécanismes de recherche pour contrôler les réponses de l’IA générative

En outre, Google cloud assure que Spanner Graph s’intègre aux fonctions de recherche vectorielle et plein texte.

« Plus précisément, vous pouvez exploiter la recherche vectorielle pour découvrir des nœuds ou des arêtes sur la base de leur signification sémantique, ou utiliser la recherche en texte intégral pour repérer les nœuds ou les arêtes qui contiennent des mots-clés spécifiques », écrivent les porte-parole de GCP, dans un billet de blog. « À partir de ces points de départ, vous pouvez ensuite explorer le reste du graphe en toute transparence à l’aide de GQL ».

Outre les cas d’usage traditionnels liés aux SGBD orientés graphe (recommandations de produits, détection de fraude, réseaux sociaux, cybersécurité, etc.), GCP entend propulser les applications d’IA générative, et plus particulièrement les systèmes GraphRAG.

Microsoft Research s’accorde la parenté de ce terme qui représente la combinaison d’une architecture de génération augmentée par méthode de récupération (Retrieval Augmented Generation) et d’un graphe de connaissances (knowledge graph). Cette approche doit améliorer la précision des réponses d’un grand modèle de langage ayant accès à des documents privés. D’autres entreprises s’intéressent déjà à cette approche : ServiceNow, Samsung (qui a racheté le spécialiste britannique Oxford Semantics), Neo4j ou encore la banque d’investissement UBS.

Les acteurs comme Neo4j et TigerGraph, éditeur de SGBD orientés graphe renvoient généralement les bases de données multimodèle dans les cordes pour leur incapacité supposée à tenir la charge des graphes les plus complexes. Chiche, répond en substance GCP.

« Spanner Graph s’étend sur des milliers de milliards d’arêtes tout en offrant une disponibilité et une cohérence à la pointe du secteur », assure Google Cloud.

Il faut dire que GCP sait propulser ce type de SGBD à l’échelle. Il a aidé Neo4j et TigerGraph dans l’exécution de graphes contenant des centaines de milliards, voire plus d’un millier de milliards d’arêtes. Google Search maintient de son côté un knowledge graph (Google Knowledge Graph) qui, en 2020, rassemblait plus de 500 milliards de faits sur cinq milliards d’entités.   

Cette adaptation de l’approche multimodèle à l’IA générative est saluée par les analystes. « Les annonces de Google sont le signe d’une tendance critique sur le marché », avance Kevin Petrie, analyste chez BARC US. « L’IA est une activité à multiples facettes et modèles. Les entreprises ne mettent pas en œuvre les modèles d’IA générative ou d’autres types d’algorithmes de manière isolée. Elles créent des applications dans lesquelles plusieurs modèles se complètent. Dans ce contexte, vous avez besoin d’une base de données câblée pour l’IA ».

Constellation Research s’interroge sur la pertinence des éditions « Enterprise et Enterprise Plus »

Pour sa part, Doug Henschen, analyste chez Constellation Research, Spanner Graph se distingue, mais serait l’arbre qui dissimule la forêt. Une forêt qui dissimule un (petit) loup.

« Spanner Graph fait clairement la une, car il comble une lacune que Google avait dans son portefeuille », avance Doug Henschen. « Mais le nom de la fonctionnalité Spanner Graph ne dit pas tout. Spanner devient une base de données multimodèle à grande échelle offrant des capacités SQL, graphe, de recherche plein texte et de recherche vectorielle à travers les nouvelles éditions Spanner Enterprise et Enterprise Plus ».

Petit loup, car ces fonctionnalités ne sont accessibles qu’à travers les éditions Enterprise et Enterprise Plus. En sus des fonctions graphe, de la recherche plein texte et vectorielle, ces deux éditions donnent accès à la configuration de répliques en lecteur seule, à un autoscaler managé et à des backups incrémentaux. Enterprise Plus ajoute une prise en charge de deux régions et du géopartitionnement. Le SLA est également revu à la hausse (99,99 % et 99,999 % respectivement). Ces éditions seront disponibles le 24 septembre 2024.

« Je souhaiterais qu’une autre édition soit disponible pour les clients intéressés uniquement par les fonctionnalités multirégion et de géopartitionnement de Spanner », lance de but en blanc Doug Henschen. « Ce serait préférable qu’ils n’aient pas à opter pour l’édition la plus coûteuse s’ils n’ont pas besoin des nouvelles fonctionnalités de graphe, de recherche textuelle et vectorielle ».

Dans la même veine, le géant du cloud propose une édition supplémentaire consacrée à Cloud SQL for SQL Server. Comme avec PostgreSQL et MySQL, Google cloud présente Enterprise Plus, l’édition offrant des performances de lecture jusqu’à quatre fois supérieures par rapport à la version Enterprise. L’édition Enterprise Plus de Cloud SQL for SQL Server inclut par ailleurs un SLA de 99,99 % (contre 99,95 % avec la version Enterprise) et des fonctions avancées de reprises après sinistre.  

L’offre Plus est d’ailleurs réservée aux instances les plus dotées en ressources de calcul.

Néanmoins, dans le cas de Spanner, Doug Henschen reconnaît à Google Cloud de proposer une combinaison d’outils de recherche qui le distingue d’AWS et d’Oracle. Ces deux acteurs, selon lui, séparent chaque service au sein de leurs SGBD.

« Je considère qu’il s’agit d’une combinaison de capacités attrayante et convaincante », note-t-il. « Mais il y a encore de la place pour les meilleurs partenaires de Google, comme Neo4J, qui offre une base de données orientée graphe spécialisés avec des capacités d’intégration et de recherche de vecteurs ».

Outre Spanner et Cloud SQL for SQL Server, Google Cloud met à jour son service historique BigTable.

La base de données NoSQL prend en charge en préversion une centaine de fonctions SQL au standard ANSI (GoogleSQL) pouvant être exécutées sur les tables BigTable. Pour autant, la peinture semble encore fraîche. Les constructs habituels du SQL dont select, Insert, Update, Delete, etc., ne sont que partiellement pris en charge. De plus, il faut se faire à la manipulation de paires clé-valeur, moins connue des usagers habituels des bases relationnelles. Par ailleurs, BigTable bénéficie de la fonctionnalité « distributed counters », annoncé en lors de la conférence annuelle de GCP en avril dernier. Cela permet d’exploiter des données agrégées, plus courant dans les systèmes en temps réel, comme Redis.

Enfin, Google a rappelé son partenariat avec Oracle pour héberger des services Exadata et Autonomous Database sur son cloud.

Pour approfondir sur Base de données