Sujets de FAQ

Questions générales

Qu'est-ce qu'un vecteur ?

Un vecteur est une représentation mathématique de texte, d'images, d'audio ou d'une vidéo qui encode les caractéristiques ou la signification sémantique des données, plutôt que le contenu réel comme les mots ou pixels sous-jacents. Un vecteur est constitué d'une liste de valeurs numériques, appelées dimensions, et peut être utilisé pour des opérations d'intelligence artificielle (IA).

Comment les vecteurs sont-ils créés ?

Les vecteurs sont créés à partir de différents types de données d'entrée (texte, images, audio, vidéo et autres données) par des modèles de deep learning appelés modèles d'intégration. Vous pouvez créer des vecteurs en dehors de la base de données à l'aide de modèles d'intégration, d'un service d'intégration ou de leur création dans la base de données à l'aide de modèles d'intégration ONNX via la fonction SQL VECTOR_EMBEDDING().

Quels formats de dimension sont pris en charge pour les vecteurs ?

Oracle AI Vector Search prend en charge les formats BINARY, INT8, FLOAT32 et FLOAT64.

Combien de dimensions vectorielles sont prises en charge ?

Oracle AI Vector Search prend en charge les vecteurs avec jusqu'à 65 535 dimensions.

Quelle est la taille des vecteurs ?

La taille d'un vecteur est le produit du nombre de dimensions et de la taille de chaque dimension.

Par exemple, un vecteur de 2 048 dimensions et le format INT8 (1 octet) est de 2 kilo-octets, et un vecteur de 1 024 dimensions et le format FLOAT32 (4 octets) est de 4 kilo-octets.

AI Vector Search prend-il en charge les vecteurs dispersés ?

Oracle AI Vector Search prend en charge les vecteurs dispersés, qui ont généralement de nombreuses dimensions, mais seules quelques dimensions ont des valeurs différentes de zéro. Pour un document donné, les valeurs de dimension non nulles dans le vecteur correspondent aux mots-clés (et leurs variations) qui apparaissent dans ce document.

Avec quels modèles de vectorisation AI Vector Search fonctionne-t-il ?

AI Vector Search doit fonctionner avec n'importe quel modèle d'intégration valide qui génère des vecteurs avec l'un des formats pris en charge et 65 535 dimensions ou moins.

Quels modèles d'intégration dois-je envisager d'utiliser et où puis-je les obtenir ?

Le choix du modèle d'intégration dépend de nombreux facteurs, tels que la nature de vos données, les mesures de performances que vous priorisez et le coût que vous êtes prêt à payer. Des modèles d'intégration libre et open source, notamment divers transformateurs de phrases, peuvent être trouvés sur Hugging Face et des sites similaires. Ces modèles peuvent être convertis en ONNX pour générer des incorporations dans la base de données avec AI Vector Search. La source populaire pour les meilleurs modèles d'intégration de texte est le MTEB Leaderboard hébergé par Hugging Face. Vous pouvez également accéder à des fournisseurs de modèles établis tels que OpenAI et Cohere.

AI Vector Search prend-il en charge les modèles d'intégration d'images ?

AI Vector Search prend en charge les vecteurs générés à partir de tous les modèles d'intégration, que les modèles soient pour le texte, les images, l'audio, la vidéo ou d'autres données. Oracle AI Database inclut également des modèles d'intégration précompilés ONNX pour effectuer des opérations de distance basées sur des images avec AI Vector Search.

Quelles sont les opérations prises en charge sur les vecteurs ?

Plusieurs opérations mathématiques sont prises en charge sur les vecteurs. L'opération la plus critique est la fonction SQL VECTOR_DISTANCE(), qui trouve la distance mathématique entre deux vecteurs en fonction de la formule de distance sélectionnée. Il existe de nombreuses formules de distance prises en charge par Oracle AI Vector Search, notamment Euclidien, Euclidien Squared, Cosine Similarity, Dot Product, Manhattan, Jaccard et Hamming. Le choix de la fonction de distance est généralement déterminé par le modèle d'intégration utilisé pour générer les vecteurs. Cependant, la mesure de distance par défaut dans Oracle AI Database 26ai est Cosine Similarity.

Comment les vecteurs sont-ils utilisés dans la recherche de similarité ?

Tous les vecteurs partagent la même propriété : plus les deux entités sont similaires, plus la distance mathématique entre elles est petite. Par exemple, les vecteurs pour « pomme » et « orange » sont plus proches que les vecteurs pour « pomme » et « chien ». Cette propriété de vecteurs permet de les utiliser pour rechercher des données par similarité sémantique.

Comment la recherche AI Vector Search s'effectue-t-elle à l'aide de SQL ?

Il existe des extensions SQL simples et intuitives qui permettent à AI Vector Search d'être facilement intégré à vos applications. La distance vectorielle étant une mesure de similarité, AI Vector Search consiste à trier l'ensemble des vecteurs candidats sur la base de leur distance à un vecteur de recherche et à renvoyer les K correspondances le plus proches. Par exemple, la requête ci-dessous recherche les 10 principaux produits dont les photos correspondent le mieux à la photo de recherche de l'utilisateur :

SELECT product_name, product_photo
FROM Product
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY ;

Comment puis-je utiliser AI Vector Search dans des requêtes complexes impliquant des données d'entreprise ?

AI Vector Search peut être utilisé dans des requêtes sophistiquées impliquant des filtres, des jointures, des agrégations, des regroupements et d'autres éléments. Par exemple, la requête suivante peut être utilisée pour trouver les 10 principaux produits correspondants fabriqués en Californie sur la base d'une photo téléchargée par un utilisateur.

SELECT p.name, p.photo, m.name
FROM product p
JOIN fabricant m ON (p.mfr_id = m.id)
WHERE m.state = 'CA'
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY ;

Que sont les index vectoriels et en quoi sont-ils différents de ceux de bases de données traditionnels ?

Les index de base de données traditionnels sont utilisés pour accélérer les recherches en fonction des valeurs correspondantes. Par exemple, un index B-tree accélère les consultations basées sur la valeur et les analyses d'intervalle. Les index vectoriels, d'autre part, sont conçus pour trouver les premières correspondances K les plus similaires en fonction de la similarité sémantique au lieu de valeurs correspondantes. Un index vectoriel peut être utilisé pour trouver les mots K les plus similaires dans le sens de « pomme » dans un corpus de mots existants. L'utilisation d'un index vectoriel entraîne une recherche approximative qui élimine une certaine précision de recherche pour des performances jusqu'à 100X supérieures, car elle évite d'examiner chaque vecteur unique dans une colonne.

Qu'est-ce qu'un index vectoriel de graphe voisin en mémoire ?

Les index vectoriels de graphe de voisin en mémoire sont des index résidentiels de mémoire basés sur des graphiques. Les sommets du graphe représentent des vecteurs, et les arêtes entre les sommets représentent la similitude entre les vecteurs. Oracle AI Vector Search prend en charge les index de vecteur de graphe de voisin en mémoire de type HNSW (Hierarchical Navigable Small World). Les index HNSW sont structurés en utilisant les principes des petits réseaux mondiaux et de l'organisation hiérarchique en couches, ce qui les rend extrêmement rapides et précis pour la recherche de similarité.

Quels sont les index vectoriels partitionnés voisins ?

Oracle AI Vector Search prend en charge les index vectoriels partitionnés voisins de type IVF (Inverted File Flat). Les index vectoriels partitionnés voisins sont des index vectoriels basés sur disque où les vecteurs sont regroupés en partitions de table en fonction de la similarité. Il s'agit d'un index évolutif efficace avec une prise en charge transactionnelle rapide et transparente, vous permettant d'équilibrer la recherche de haute qualité avec une vitesse raisonnable. Ils sont conçus pour accueillir des tailles de données illimitées, en raison du fait qu'ils ne dépendent pas de la mémoire.

Que sont les index vectoriels hybrides et en quoi sont-ils différents de ceux de base de données traditionnels ?

Les index vectoriels hybrides sont un nouveau type d'index vectoriel qui permet aux utilisateurs d'indexer et d'interroger facilement leurs documents à l'aide d'une combinaison de recherche de texte intégral et de recherche sémantique de vecteur pour obtenir des résultats de recherche de meilleure qualité. Ils prennent en charge une API de requête unifiée qui permet aux utilisateurs d'exécuter des requêtes textuelles, des requêtes de similarité vectorielle ou des requêtes hybrides qui exploitent les deux approches.

Quels langages de programmation peuvent être utilisés pour développer des applications AI Vector Search ?

Outre SQL et PL/SQL, les applications AI Vector Search peuvent être créées dans différents langages de programmation. AI Vector Search inclut la prise en charge des pilotes natifs pour les vecteurs dans des langages populaires tels que Java, Python, JavaScript et C#.

Quel rôle joue AI Vector Search dans l'IA générative ?

AI Vector Search fait souvent partie d'un workflow de génération augmentée de récupération (RAG). Il fournit des entrées supplémentaires nécessaires pour affiner la réponse d'un grand modèle de langage (LLM) de GenAI.

Lorsqu'elle est associée à la RAG, la question d'un utilisateur est d'abord convertie en vecteur, puis mappée aux documents les plus pertinents de la base de données via AI Vector Search. Ensuite, la question de l'utilisateur et les documents pertinents à l'appui sont transmis au LLM, qui génère une réponse éclairée basée sur ses connaissances générales et les connaissances spécialisées de la base de données.

Avec quels LLM fonctionne AI Vector Search ?

AI Vector Search peut être utilisé pour la RAG avec n'importe quel LLM, y compris les modèles open source, tels que Llama3 et Mistral, ainsi que les modèles propriétaires de fournisseurs tels que OpenAI et Cohere. En outre, des API PL/SQL spécialisées sont disponibles pour une intégration transparente entre AI Vector Search et les LLM pour RAG.

AI Vector Search prend-il en charge les structures et les chaînes d'intégration de l'IA ?

AI Vector Search est intégré à LangChain et LlamaIndex. Ces structures peuvent aider à intégrer des données privées et publiques pour les applications de grands modèles de langage.

Quels sont les avantages de la génération augmentée de récupération (RAG) ?

La génération augmentée de récupération (RAG) joue un rôle central dans l'IA générative (GenAI), offrant des avantages significatifs aux applications de GenAI. Voici seulement trois raisons impérieuses pour lesquelles il est primordial d'intégrer RAG dans votre configuration de GenAI :

  1. Réduire les hallucinations : les grands modèles de langage (LLM) peuvent générer des réponses inexactes ou non pertinentes s'ils n'ont pas d'entraînement substantiel sur les invites. Le recyclage des LLM pour qu'ils s'alignent sur les réponses souhaitées entraîne souvent des coûts importants.
  2. Protection de la confidentialité : les LLM sont formés sur des informations accessibles au public à partir d'Internet, ils ne connaissent pas les données spécifiques à votre entreprise. Vous ne voulez probablement pas envoyer des informations spécifiques à votre entreprise sur Internet, car vous donnez vos informations privées à un tiers. Envisagez plutôt de conserver vos données d'entreprise dans votre domaine à l'aide de LLM locaux au sein de votre data center ou de votre location cloud.
  3. Informations à jour : les LLM sont formés jusqu'à une date spécifique ; les événements ou faits plus récents sont inconnus. A l'aide de la RAG, le LLM peut fournir des réponses basées sur des informations à jour provenant d'une base de données vectorielle fournie via le prompt. Cela signifie que le LLM bénéficie des dernières données de votre entreprise sans avoir à entraîner le LLM sur vos données.

Comment faire évoluer AI Vector Search pour répondre aux besoins croissants de mon application ?

Les mécanismes d'évolutivité étendus d'Oracle, tels que l'exécution parallèle, le partitionnement, Real Application Clusters (Oracle RAC), le sharding et Exadata, peuvent faire évoluer AI Vector Search pour atteindre pratiquement toutes les tailles de données et le nombre d'utilisateurs.

L'exécution d'AI Vector Search sur Oracle Exadata présente-t-elle des avantages ?

Les mécanismes d'évolutivité étendus d'Oracle, tels que l'exécution parallèle, le partitionnement, Real Application Clusters (Oracle RAC), le sharding et Exadata, peuvent faire évoluer AI Vector Search pour atteindre pratiquement toutes les tailles de données et le nombre d'utilisateurs. Oracle Exadata inclut également AI Smart Scan, qui décharge les opérations de requête AI Vector Search vers les serveurs Exadata Storage Servers pour des performances de requête inégalées.

Comment Oracle assure-t-il la sécurité des données des vecteurs ?

Oracle AI Vector Search s'intègre en toute transparence aux fonctionnalités de sécurité de bases de données leaders du secteur d'Oracle pour réduire les risques et simplifier la conformité. Les entreprises peuvent sécuriser leurs données vectorielles en tirant parti d'outils robustes, tels que le chiffrement, le masquage des données, les contrôles d'accès des utilisateurs privilégiés, la surveillance des activités et l'audit, tout en tirant pleinement parti des fonctionnalités avancées de recherche par IA. Les fonctionnalités dans la base de données, telles que Database Vault et Virtual Private Database, aident à sécuriser les données vectorielles et garantissent que seuls les utilisateurs disposant des privilèges appropriés peuvent y accéder.

Cela signifie qu'Oracle AI Vector Search peut réduire considérablement l'empreinte de l'infrastructure vectorielle d'une entreprise. Une seule base de données Oracle AI Database peut répondre aux besoins de nombreux utilisateurs différents disposant de droits d'accès et d'autorisations différents sans avoir à dupliquer les données ni à générer de surcharge de gestion supplémentaire, comme c'est souvent le cas avec d'autres bases de données vectorielles.

Comment Oracle fournit-il des fonctionnalités de haute disponibilité et de récupération après sinistre pour les vecteurs ?

Les vecteurs d'Oracle AI Database sont des types de données de bases de données de première classe. Cela signifie que les vecteurs héritent implicitement de toutes les fonctionnalités innovantes qui font d'Oracle la première base de données d'entreprise au monde. La haute disponibilité (HA) est fournie en exécutant des recherches de similarité sur Oracle RAC ou Oracle Globally Distributed Database (Sharding). Data Guard, Active Data Guard et Oracle GoldenGate peuvent tous fournir automatiquement une récupération après sinistre.