L'assistance vectorielle est une extension Cloud SQL pour PostgreSQL qui simplifie le déploiement et la gestion de vos charges de travail vectorielles Cloud SQL. Elle fournit un framework SQL déclaratif qui vous aide à configurer des fonctionnalités de recherche vectorielle prêtes à l'emploi, telles que la génération d'embeddings, l'optimisation des requêtes et la création d'index. Ce framework réduit la complexité des charges de travail vectorielles en procédant comme suit :
- Simplification de la déclaration d'intention : les exigences (telles que la table, la colonne de texte ou le rappel cible) sont déclarées à l'aide de fonctions SQL.
- Automatisation des bonnes pratiques : génère des commandes SQL optimisées, également appelées recommandations, pour configurer votre charge de travail vectorielle à l'aide de votre spécification vectorielle définie et d'un algorithme d'ajustement automatique optimisé qui calcule la configuration d'index optimale.
- Transparence et contrôle : fournit des explications claires pour chaque recommandation lors de l'automatisation des tâches, ce qui vous permet d'examiner, de modifier et d'appliquer les recommandations à votre rythme.
- Prototypage rapide : vous permet de déployer rapidement une configuration de recherche vectorielle bien ajustée, ce qui réduit le délai entre le concept et la production.
- Facilité d'utilisation : simplifie la complexité de la recherche sémantique, comblant ainsi le fossé entre les exigences métier et techniques.
Avec l'assistance vectorielle, vous pouvez créer des applications de bout en bout avec des fonctionnalités de recherche sémantique grâce à une configuration simplifiée.
Fonctionnement de l'assistance vectorielle
Pour utiliser l'assistance vectorielle, vous devez définir vos spécifications vectorielles. Le framework utilise ces spécifications vectorielles, également appelées spécifications vectorielles, pour générer les étapes nécessaires à la création d'un index vectoriel. L'assistance vectorielle génère les étapes nécessaires au déploiement de votre charge de travail vectorielle sous forme de recommandations. Chaque fois que vous modifiez vos spécifications vectorielles, l'assistance vectorielle régénère les recommandations.
Une fois que vous avez généré l'index vectoriel à l'aide de ces étapes recommandées, vous pouvez utiliser l'assistance vectorielle pour générer des requêtes de recherche optimisées.
Spécification de l'assistance vectorielle
La première étape pour utiliser l'assistance vectorielle consiste à configurer la spécification de votre index vectoriel, ou spécification vectorielle, est la première étape. Une spécification vectorielle est un objet dans lequel vous définissez l'intention et les exigences de votre charge de travail vectorielle. Elle inclut toutes les informations nécessaires, y compris les suivantes :
- Les tables et les colonnes pertinentes (texte ou vecteur)
- Les préférences du modèle d'embedding (si vous utilisez la génération d'embeddings)
- Le type d'index préféré, tel que
HNSWouIVFFlat. - Le rappel cible pour les requêtes de recherche
- Les limites de mémoire ou d'autres contraintes de performances
Vous définissez les spécifications vectorielles à l'aide de la
vector_assist.define_spec
fonction, et vous pouvez les modifier à tout moment. Le système attribue un ID unique à chaque spécification et la stocke dans une table appelée vector_assist.vector_specs.
L'assistance vectorielle déduit les entrées de spécification et un algorithme d'ajustement automatique optimisé qui calcule la configuration d'index optimale. Bien que l'assistance vectorielle utilise ces valeurs pour simplifier le processus de développement, vous pouvez toujours les personnaliser en fonction de vos préférences.
Recommandations de l'assistance vectorielle
Une fois que vous avez défini les spécifications vectorielles, l'assistance vectorielle traite votre entrée et génère des recommandations. Ces recommandations sont une liste ordonnée d'étapes utiles, généralement des commandes SQL, que vous devez exécuter pour déployer votre charge de travail vectorielle conformément à vos spécifications. Chaque recommandation inclut les éléments suivants :
- La requête SQL à exécuter
- Une explication détaillée de ce que fait la requête et pourquoi elle est recommandée
- Des informations sur les compromis ou les coûts potentiels, tels que la taille estimée de l'index ou le temps de compilation
L'assistance vectorielle stocke les recommandations dans une table appelée vector_assist.recommendation. Vous pouvez les examiner, les modifier et les appliquer individuellement ou dans leur ensemble.
Chaque fois que vous modifiez les spécifications vectorielles de votre charge de travail, l'assistance vectorielle régénère les recommandations pour qu'elles soient conformes aux spécifications mises à jour.
Limites
Lorsque vous utilisez l'assistance vectorielle avec vos instances Cloud SQL pour PostgreSQL, tenez compte des limites suivantes :
- L'assistance vectorielle n'est compatible qu'avec les versions 12 et ultérieures de PostgreSQL.
- Bien que l'assistance vectorielle soit compatible avec toutes les versions de
pgvector, nous vous recommandons d'utiliser la version la plus récente pour des performances optimales et une prise en charge des fonctionnalités. Pour en savoir plus, consultez lepgvectorjournal des modifications. - Si votre instance utilise l'extension
google_ml_integrationpour générer des embeddings, ses restrictions s'appliquent également lorsque vous utilisez l'assistance vectorielle. Pour en savoir plus, consultez la présentation de la gestion des points de terminaison de modèle. - L'assistance vectorielle n'est compatible qu'avec les types d'index
HNSWetIVFFlat. - L'assistance vectorielle n'est compatible qu'avec les modèles d'embedding de texte pour la génération automatique d'embeddings et utilise
text_column_namecomme paramètre d'entrée. Si votre charge de travail vectorielle nécessite un modèle d'embedding multimodal, utilisez l'extensiongoogle_ml_integrationou une autre extension pour générer manuellement ces embeddings avant d'utiliser l'assistance vectorielle pour activer la recherche sémantique sur ces embeddings.