Vector Assist est une extension Cloud SQL pour PostgreSQL qui simplifie le déploiement et la gestion de vos charges de travail vectorielles Cloud SQL. Il fournit un framework SQL déclaratif qui vous aide à configurer des fonctionnalités de recherche vectorielle prêtes pour la production, 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 :
- Simplification de la déclaration d'intention : les exigences (comme la table, la colonne de texte ou le rappel cible) sont déclarées à l'aide de fonctions SQL.
- Automatiser les 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'optimisation automatique 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 temps nécessaire pour passer du concept à la production.
- Facilité d'utilisation : simplifie la complexité de la recherche sémantique, comblant ainsi l'écart entre les exigences commerciales et techniques.
L'assistance vectorielle vous permet de créer des applications de bout en bout avec des fonctionnalités de recherche sémantique et 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 de vecteur, pour générer les étapes nécessaires à la création d'un index vectoriel. L'assistance vectorielle fournit les étapes nécessaires au déploiement de votre charge de travail vectorielle sous forme de recommandations. Chaque fois que vous modifiez votre spécification de vecteur, l'assistance vectorielle régénère les recommandations.
Une fois que vous avez généré l'index vectoriel en suivant 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 votre spécification d'index vectoriel, ou spécification vectorielle. Une spécification de vecteur est un objet dans lequel vous définissez l'intention et les exigences de votre charge de travail vectorielle. Il contient toutes les informations nécessaires, y compris :
- Tables et colonnes pertinentes (texte ou vecteur)
- Préférences du modèle d'embedding (si vous utilisez la génération d'embeddings)
- Type d'index préféré, tel que
HNSWouIVFFlat. - Rappel cible pour les requêtes de recherche
- Limites de mémoire ou autres contraintes de performances
Vous définissez la spécification du vecteur à l'aide de la fonction vector_assist.define_spec et vous pouvez la modifier à tout moment. Le système attribue à chaque spécification un ID unique et le stocke dans un tableau appelé vector_assist.vector_specs.
L'assistance vectorielle déduit les entrées de spécification et un algorithme d'optimisation automatique 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 selon vos préférences.
Recommandations Vector Assist
Une fois que vous avez défini la spécification du vecteur, 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 selon vos spécifications. Chaque recommandation inclut :
- Requête SQL à exécuter.
- Une explication détaillée de ce que fait la requête et des raisons pour lesquelles elle est recommandée.
- Informations sur les compromis ou les coûts potentiels, tels que la taille ou le temps de compilation estimés de l'index.
L'assistance vectorielle stocke les recommandations dans un tableau appelé vector_assist.recommendation. Vous pouvez les examiner, les modifier et les appliquer individuellement ou dans leur ensemble.
Chaque fois que vous modifiez la spécification vectorielle 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 PostgreSQL 12 et versions ultérieures.
- 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 bénéficier de performances et de fonctionnalités optimales. Pour en savoir plus, consultez le journal des modifications depgvector. - 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 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.