AI Vector Search : Oracle 23c se convertit à l’IA générative

Oracle 23c, la dernière version LTS de la base de données d’Oracle, est désormais entrée en disponibilité générale. Outre une meilleure prise en charge des objets JSON, le fournisseur se prépare à intégrer une fonctionnalité de recherche vectorielle pour enrichir les résultats des modèles d’IA générative.

Oracle 23c accueillera prochainement un nouveau type de données. Le fournisseur s’engouffre dans la tendance de l’IA générative et s’apprête à prendre en charge les vecteurs et leur recherche à même la base de données relationnelles.

De la recherche vectorielle sur Oracle 23c

Pour rappel, les vecteurs sont utilisés pour représenter numériquement des données non structurées comme des documents, des images, des vidéos, des textes ou encore des fichiers audio.

L’objectif pour Oracle est d’offrir une fonctionnalité de Retrieval Augmented Generation (RAG). Il s’agit d’enrichir les prompts envoyés à un grand modèle de langage avec des informations conservées dans un SGBD.

Cela permet d’obtenir des résultats liés à l’activité d’une entreprise sans à réentraîner un modèle ou à envoyer en plein texte les données vers un grand modèle de langage (LLM).

Outre un nouveau type de données, les vecteurs, Oracle 23c accueillera de nouveaux index de recherche de similarité « optimisés » ainsi que des fonctions et des opérateurs SQL. Cette collection d’ajouts est nommée AI Vector Search.

Oracle n’a pas précisé quels seront les index mis à disposition dans le cadre de cette collection. La plupart des acteurs du marché s’appuient sur l’implémentation du moteur Apache Lucene et ses algorithmes de recherche des plus proches voisins (KNN), dont HNSW (Hierarchical Navigable Small Worlds).

En tout cas, Oracle veut éviter d’effectuer une recherche sur tous les vecteurs contenus dans une base de données. « Il y a deux façons de le faire. L’une consiste à comparer le vecteur en entrée avec chacun des vecteurs dans la base de données. Vous allez sûrement trouver la correspondance parfaite, mais cela est très lent », prévient Juan Loaiza, Executive Vice President, Mission Critical Database Technologies, chez Oracle. « L’autre consiste à utiliser des index qui offrent une correspondance probabiliste. C’est plus rapide, mais moins précis ».

Juste un type de données de plus ?

L’annonce d’Oracle n’a rien de surprenant au vu des préoccupations du marché. D’autant que des acteurs en provenance du monde SQL et NoSQL prennent désormais en charge ces vecteurs. C’est le cas de Redis, MongoDB, Google Cloud avec AlloyDB (entre autres) ou encore Neo4j. Et ce n’est pas si complexe à implémenter, selon Juan Loaiza.

« Il est assez simple d’ajouter des vecteurs. Je ne dis pas que c’est trivial, mais c’est un nouveau type de données, une nouvelle fonction de comparaison et un nouvel index », résume-t-il. Il n’y a pas à modifier en profondeur l’architecture de la base de données. « L’implémentation de JSON Relational Duality [l’une des fonctions clés d’Oracle 23c N.D.L.R] est beaucoup plus complexe à ajouter », illustre-t-il.

Dans un même temps, des acteurs spécialistes du traitement des embeddings apparaissent, dont Pinecone et Weaviate. Cependant, Oracle conserve son positionnement, à savoir celui du fournisseur d’une base de données multimodèle. C’est toutefois assez nouveau dans l’histoire de l’éditeur issu du monde relationnel.

« Bien que certains des premiers fournisseurs affirment que la recherche vectorielle nécessite l’achat d’un produit distinct, il est devenu évident qu’il s’agit d’un type de données supplémentaire qui sera ajouté par les leaders de l’industrie des bases de données, tels qu’Oracle », approuve Ron Westfall, directeur de recherche et analyste chez The Futurum Group, dans un document fourni par Oracle.

« La recherche vectorielle deviendra rapidement un enjeu de taille sur le marché des bases de données d’ici à la fin de 2024. »
Ron WestfallDirecteur de recherche et analyste, The Futurum Group

« La recherche vectorielle deviendra rapidement un enjeu de taille sur le marché des bases de données d’ici à la fin de 2024. Les gagnants seront les leaders du marché (comme Oracle) qui ont une expérience à long terme dans la fourniture de solutions OLTP critiques ».

Selon Oracle, il est déjà possible de stocker et de traiter des vecteurs avec Oracle 19c, mais ce type de données n’était pas natif. Plus précisément, depuis Oracle 12c, l’éditeur développe une fonctionnalité nommée Explicit Semantic Analysis (ESA), introduite dans Oracle 18c. Cet algorithme non supervisé permet d’extraire des features et effectuer des tâches de classification à partir de ces vecteurs. Cet outil permet notamment de convertir des données en embeddings à l’aide d’une approche Doc2vec.

Pour autant, cette capacité est davantage adaptée aux problèmes NLP traditionnels, moins à ceux liés à l’IA générative.

Pour l’occasion, Oracle collabore avec Cohere avec qui il développe Embed, un modèle LLM consacré à la conversion de données textuelles en vecteurs. Selon Oracle, le modèle sera compatible avec une centaine de langues différentes. L’éditeur ne précise pas s’il sera possible de stocker les vecteurs générés avec d’autres modèles, comme ceux d’OpenAI.

Ces étapes de vectorisation, puis de recherche/comparaison des vecteurs ne seraient pas coûteuses, selon Juan Loaiza, puisqu’il s’agit d’inférer des modèles déjà entraînés. La phase de recherche de similarité entre les documents et les instructions prendrait quelques millisecondes.

« Un utilisateur pose une question et souhaite obtenir une réponse le plus rapidement possible. C’est simplement un problème OLTP appliqué au monde de l’IA », compare-t-il.

Embed fait partie d’une collection de services OCI Generative AI, disponible en bêta.

Parmi les modèles disponibles, il faut également compter des modèles Command, l’un doté de 52 milliards de paramètres et l’autre de six milliards de paramètres. Ceux-là sont spécialisés dans le suivi d’instructions textuelles.

Un autre modèle Summarization est une déclinaison du LLM Command comprenant 52 milliards de paramètres configurés pour directement produire des résumés, sans besoin de fournir des instructions.

En outre, l’éditeur lance une API pour interagir avec Oracle 23c en langage naturel, une couche d’abstraction supplémentaire par-dessus le SQL. « Au cours des prochains mois, nous prévoyons d’étendre cette capacité d’IA afin de vous permettre de générer du code pour tous les aspects de la base de données et des outils de développement », promet Dominic Giles, Master Product Manager chez Oracle, dans un billet de blog.

Les fonctionnalités principales d'Oracle 23c
Les fonctionnalités principales d'Oracle 23c.

Pour autant, Juan Loaiza prévient que les requêtes SQL générées devront être validées. « On ne peut donc pas simplement générer du code SQL et supposer qu’il est correct. Il faut donc qu’il y ait un humain dans la boucle », déclare-t-il.

Le fournisseur entend prouver qu’il n’oublie pas ses fonctionnalités d’analytiques prédictives. Oracle 23c inclut des améliorations concernant les librairies XGBoost et les modèles linéaires généralisés.

Oracle annonce que cette version 23c bénéficiera d’un support premium de cinq ans et trois ans de support étendu. Les clients utilisant les moutures 19c ou 21c pourront migrer directement. Les autres (et ils sont encore nombreux) devront d’abord migrer vers l’une de ces deux versions avant d’adopter Oracle 23c. Les outils Oracle Data Pump (pour les petites instances) et Autoupgrade doivent simplifier cette migration.

Pour l’instant, seules les versions Free et Oracle Base Database Service sur OCI sont disponibles. Les distributions on premise, Exadata, Exadata Database Service, Exadata Cloud@Customer et Autonomous Database seront accessibles « plus tard ».

Pour approfondir sur Base de données