Présentation de la recherche vectorielle AlloyDB AI

AlloyDB AI intègre le traitement vectoriel et la recherche de similarité directement dans AlloyDB pour PostgreSQL. Vous pouvez ainsi interroger des données relationnelles structurées et des données non structurées par signification sémantique. En combinant les fonctionnalités SQL standard avec l'indexation Approximate Nearest Neighbor (ANN), AlloyDB AI prend en charge la recherche sémantique et les workflows de génération augmentée par récupération (RAG) sans que vous ayez à déployer ni à gérer une base de données vectorielle distincte.

Architecture de base et performances

AlloyDB utilise l'extension pgvector de PostgreSQL pour les fonctionnalités vectorielles. Il est compatible avec l'index HNSW populaire, ainsi qu'avec l'index Scalable Nearest Neighbors (ScaNN), un algorithme de recherche vectorielle de pointe issu de plusieurs années de recherche Google. Cette intégration profonde dans l'environnement PostgreSQL permet des opérations à haute vitesse compatibles avec pgvector et des requêtes sémantiques avancées.

Performances de l'index ScaNN

L'index ScaNN offre des avantages considérables en termes de vitesse par rapport à l'index HNSW (Hierarchical Navigable Small Worlds) PostgreSQL standard, en fournissant les opérations vectorielles rapides nécessaires aux charges de travail d'IA exigeantes :

Opération Gain de performances (par rapport à l'index HNSW PostgreSQL standard) Fonctionnalités
Création d'index Jusqu'à 10 fois plus rapide Création d'index parallèle
Requêtes de recherche vectorielle Jusqu'à 4 fois plus rapide Maintenance automatique des index
Requêtes de recherche vectorielle filtrée Jusqu'à 10 fois plus rapide Observabilité de niveau entreprise

Filtrage adaptatif et optimisation des requêtes

L'index ScaNN est profondément intégré au planificateur de requêtes PostgreSQL pour garantir des performances optimales pour les requêtes hybrides impliquant à la fois la similarité vectorielle et les filtres de métadonnées structurées standards.

  • Filtrage adaptatif : ce mécanisme garantit des performances optimales lorsque les filtres, les jointures et les index vectoriels sont utilisés simultanément. Il fonctionne en observant les statistiques d'exécution des requêtes au moment de l'exécution, en apprenant la sélectivité des filtres et en ajustant de manière adaptative le plan d'exécution pour déterminer l'ordre le plus efficace d'application des filtres et de recherche vectorielle.
  • Filtrage intégré : spécifique à l'algorithme ScaNN, le filtrage intégré est une stratégie d'optimisation qui exécute la recherche vectorielle et l'évaluation des filtres de métadonnées en tandem. Il exploite les index PostgreSQL secondaires (tels que les arbres B, GIN ou GiST) pour créer une liste restreinte (bitmap) de lignes qui répondent aux critères de filtre. L'analyse vectorielle suivante ne calcule les distances que pour les vecteurs contenus dans cet ensemble préfiltré, ce qui réduit considérablement la surcharge de calcul, en particulier lorsque les filtres sont modérément sélectifs.

Intégration transparente à Gemini Enterprise Agent Platform

AlloyDB AI est conçu pour s'intégrer à l'écosystème Agent Platform, ce qui permet de transformer et d'enrichir les données directement dans la base de données à l'aide de SQL.

Génération automatique d'embeddings

La plate-forme est compatible avec la génération automatique d'embeddings à l'aide de l'extension google_ml_integration. Cette fonctionnalité permet de convertir des données opérationnelles (texte, images et vidéos) en embeddings vectoriels à l'aide de modèles Agent Platform, tels que text-embedding-005.

  • Enregistrement de modèles : les modèles Agent Platform (embedding et génératif) sont enregistrés dans la base de données à l'aide de la procédure google_ml.create_model.
  • Colonnes virtuelles : les embeddings peuvent être générés et conservés automatiquement dans une colonne générée à l'aide de la fonction embedding(), ce qui garantit que les données vectorielles restent synchronisées avec les données de la colonne source :
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;

Requêtes et enrichissement par IA générative

Une fois les embeddings vectoriels stockés, les développeurs peuvent effectuer des recherches sémantiques sophistiquées à l'aide de l'opérateur de similarité vectorielle (<=>) en SQL standard. De plus, les résultats de ces recherches peuvent être transmis directement à des modèles d'IA générative, tels que gemini-2.0-flash-001, à l'aide de fonctions telles que google_ml.generate_content pour l'enrichissement des requêtes basées sur RAG et la génération de résultats conviviaux.