AlloyDB AI est une extension avancée d'AlloyDB pour PostgreSQL, conçue pour intégrer le traitement vectoriel hautes performances directement dans la base de données relationnelle de niveau entreprise. Il permet aux développeurs de créer des applications sophistiquées et intelligentes qui comprennent la signification sémantique des données dans des formats structurés et non structurés. En unifiant les fonctionnalités SQL avec une technologie de recherche vectorielle de pointe, AlloyDB AI fournit une plate-forme unique et compatible avec l'IA pour les workflows de gestion des données et de génération augmentée de récupération (RAG). Vous n'avez donc pas besoin de déployer ni de gérer une base de données vectorielle distincte.
Architecture et performances principales
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 ScaNN (Scalable Approximate Nearest Neighbor), un algorithme de recherche vectorielle de pointe issu de plusieurs années de recherche sur la recherche Google. Cette intégration approfondie dans l'environnement PostgreSQL permet des opérations à grande 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. Il fournit 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 en parallèle |
| Requêtes Vector Search | Jusqu'à quatre fois plus rapide | Maintenance automatique des index |
| Requêtes Vector Search filtrées | Jusqu'à 10 fois plus rapide | Observabilité de niveau Enterprise |
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 des filtres, des jointures et des 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 la 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 même temps. Il utilise des index PostgreSQL secondaires (tels que B-tree, GIN ou GiST) pour créer une présélection (bitmap) des 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 à Vertex AI
AlloyDB AI est conçu pour s'intégrer à l'écosystème Vertex AI, 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 permet de générer automatiquement des 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 Vertex AI, tels que text-embedding-005.
- Enregistrement du modèle : les modèles Vertex AI (d'embedding et génératifs) 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;
Interrogation et enrichissement par l'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 comme google_ml.generate_content pour l'enrichissement des requêtes basées sur la RAG et la génération de résultats conviviaux.