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 Enterprise. 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 prête pour l'IA pour la gestion des données et les workflows de génération augmentée par 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 de base
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 profonde dans l'environnement PostgreSQL permet des opérations rapides et compatibles avec pgvector, ainsi que 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 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 d'application des filtres et de la recherche vectorielle le plus efficace.
- 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 du filtre de métadonnées en même temps. Il exploite les index PostgreSQL secondaires (tels que B-trees, 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 à Gemini Enterprise Agent Platform
AlloyDB AI est conçu pour s'intégrer à l'écosystème de la plate-forme d'agents, 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 d'embeddings automatisée à l'aide de l'extension google_ml_integration. Cette fonctionnalité permet de convertir les 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 des modèles : les modèles de la plate-forme d'agents (d'intégration 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;
Requêtes 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.