Qu'est-ce que pgvector ?

pgvector est une extension pour PostgreSQL (également appelé Postgres) qui simplifie l'utilisation des vecteurs. Elle vous permet de les stocker, de les rechercher et de les indexer directement dans votre base de données relationnelle.

Avec pgvector, vous pouvez ajouter des fonctionnalités avancées comme la recherche de similarité à vos applications et à vos agents IA de manière simple et évolutive, sans avoir à déplacer des données ni à modifier les architectures d'applications pour associer le nouveau type de données vectorielles.

Créez des applications optimisées par l'IA sur Google Cloud avec pgvector, LangChain et des LLM

Points à retenir

pgvector est une extension Open Source pour PostgreSQL qui vous permet de stocker, d'indexer et de rechercher des vecteurs de grande dimension directement dans votre base de données PostgreSQL existante. pgvector est connu pour prendre en charge les fonctionnalités suivantes :

  • Recherche de similarité : comparaison des schémas sémantiques dans les données, plutôt que correspondance des mots clés
  • Applications d'IA : opérations d'agents IA et applications de recherche, y compris les moteurs de recommandation, les chatbots, le traitement du langage naturel et la détection d'anomalies

Qu'est-ce qu'un vecteur ?

Un vecteur représente les données de façon numérique en capturant leurs principales caractéristiques et en les mappant dans un espace mathématique virtuel. Dans cet espace, les éléments similaires (mots, images, objets, par exemple) sont positionnés à proximité les uns des autres.

Par exemple, les termes "manteau" et "veste" ne seraient pas considérés comme similaires par les recherches traditionnelles basées sur les mots clés, car leurs lettres sont très différentes. Un système d'e-commerce qui souhaite regrouper ces mots clés doit le faire manuellement. Toutefois, les représentations vectorielles de ces deux termes seraient très proches, car ils ont des significations similaires. Cela permettrait de fournir des résultats de recherche plus précis aux utilisateurs et de faire gagner du temps aux développeurs.

De même, si vous prenez deux photos de chats, elles peuvent être très différentes pixel par pixel. Toutefois, les embeddings vectoriels associés les placeraient très près l'une de l'autre dans l'espace mathématique, tout comme un humain identifierait facilement ces deux images de chats :

Image de chat générée par Gemini

Pour effectuer cette tâche, un modèle d'embedding transforme les données brutes (images ou texte, par exemple) en embeddings vectoriels. pgvector stocke ces embeddings dans votre base de données. Lorsqu'un utilisateur envoie une requête, cette entrée est également convertie en vecteur. pgvector calcule ensuite la distance entre le vecteur de requête et les vecteurs stockés pour identifier efficacement les "voisins les plus proches" avec les scores de similarité les plus élevés.

Vous souhaitez en savoir plus sur les différents types de recherches des plus proches voisins ? Consultez notre guide sur le développement d'applications d'IA générative.

Questions fréquentes sur pgvector

PostgreSQL est un système de gestion de base de données relationnelle Open Source robuste, conçu pour gérer des données structurées à l'aide de tables, de lignes et de colonnes.

pgvector est une extension qui s'exécute dans PostgreSQL. Elle ajoute le type de données vectorielles à la base de données, ce qui permet de stocker et de traiter les embeddings vectoriels en même temps que vos données opérationnelles standards.

Non, pgvector est une extension qui s'intègre directement à votre base de données PostgreSQL existante. Vous pouvez ainsi ajouter des fonctionnalités de recherche et d'IA avancées, sans avoir à gérer une infrastructure nouvelle ou distincte.

pgvector dans PostgreSQL pour les applications d'IA et de recherche

Grâce à sa capacité à gérer des vecteurs de grande dimension, pgvector prend en charge un large éventail d'applications avancées.

La correspondance des mots clés dans les bases de données relationnelles traditionnelles ne permet souvent pas d'identifier les liens significatifs dans les données. La recherche de similarité compare la proximité des vecteurs à l'aide de métriques telles que la distance euclidienne et la distance de cosinus pour trouver des schémas plus profonds. Elle est essentielle pour des applications telles que la reconnaissance d'images et la recherche sémantique, où les résultats sont classés par signification. Dans le domaine de l'e-commerce, par exemple, la recherche de similarité permet de recommander des produits en analysant le comportement des utilisateurs et en trouvant des articles associés.

Le traitement du langage naturel basé sur des vecteurs permet aux agents IA de comprendre le contexte, ce qui se traduit par des conversations plus personnalisées et des réponses plus précises. La prise en charge multilingue améliore leurs performances en tant qu'assistants virtuels et plates-formes de service client.

pgvector améliore les workflows d'IA en stockant et en interrogeant les embeddings vectoriels, qui sont essentiels pour identifier des schémas inhabituels dans les données. En analysant la proximité des vecteurs, il permet de détecter les anomalies en temps réel pour la prévention des fraudes, la sécurité réseau ou le contrôle qualité.

L'analyse des sentiments examine l'intention d'un message, ce qui vous permet de diriger les commentaires négatifs vers les bonnes personnes pour une action plus rapide et de créer des solutions sur mesure.

Pour une base de données unique qui excelle à la fois dans les requêtes SQL traditionnelles et dans la recherche Vertex moderne, envisagez d'utiliser AlloyDB pour PostgreSQL. AlloyDB utilise l'algorithme de recherche de similarité vectorielle ScaNN (Scalable Nearest Neighbor) développé par Google, qui offre des performances nettement supérieures à celles des autres services cloud PostgreSQL pour les charges de travail transactionnelles et analytiques dans les grandes bases de données.

Découvrez comment AlloyDB effectue des recherches simultanées sur des données structurées et non structurées.

Activer et utiliser pgvector dans les bases de données Google Cloud

Cloud SQL et AlloyDB pour PostgreSQL sont compatibles avec pgvector, ce qui vous permet de stocker et d'interroger des embeddings vectoriels à l'aide de commandes SQL standards.

1. Se connecter à l'instance

Connectez-vous à votre instance Cloud SQL ou AlloyDB à l'aide du client PostgreSQL de votre choix (psql, pgAdmin ou la console Google Cloud, par exemple).

2. Activer l'extension pgvector

Exécutez la commande SQL suivante pour activer l'extension dans votre base de données. Cette opération n'est à effectuer qu'une seule fois par base de données.

  • SQL
Chargement en cours...

3. Créer une table avec une colonne pour les vecteurs

Créez une table (ou modifiez-en une existante) pour inclure une colonne pour les données vectorielles. Vous devez spécifier les dimensions du vecteur. Par exemple, pour créer une table permettant de stocker des embeddings tridimensionnels :

  • SQL
Chargement en cours...

4. Ajouter des données vectorielles

Vous pouvez insérer des embeddings vectoriels comme des données standards. Les vecteurs sont mis en forme en tant que tableaux entre crochets.

  • SQL
Chargement en cours...

5. Exécuter une requête à l'aide de la recherche de similarité

Vous pouvez maintenant interroger vos données pour trouver les voisins les plus proches. L'opérateur <-> calcule la distance euclidienne (distance L2), qui est couramment utilisée pour trouver les éléments les plus similaires.

  • SQL
Chargement en cours...

6. Ajouter un index pour améliorer les performances

Pour les ensembles de données plus volumineux, l'ajout d'un index peut considérablement améliorer les performances de recherche. Les index HNSW et ScaNN sont des options couramment utilisées. Voici un exemple d'index HNSW :

  • SQL
Chargement en cours...

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud