Vector Assist est une extension AlloyDB pour PostgreSQL qui fournit un framework SQL déclaratif pour déployer et gérer les charges de travail de recherche vectorielle. Au lieu de configurer manuellement la génération d'embeddings, les paramètres d'index et l'ajustement des requêtes, vous déclarez les exigences de votre charge de travail (par exemple, la table cible, la colonne de texte source et l'objectif de rappel) à l'aide de fonctions SQL.
En fonction de votre spécification de vecteur, l'assistance vectorielle utilise un algorithme d'ajustement automatique pour générer des recommandations SQL optimisées avec des explications que vous pouvez examiner, modifier et appliquer. Ce workflow vous aide à prototyper et à déployer des applications de recherche sémantique prêtes pour la production avec une configuration manuelle minimale.
Fonctionnement de l'assistance vectorielle
L'assistance Vector nécessite que vous définissiez vos spécifications vectorielles. Le framework utilise ces spécifications vectorielles pour générer les étapes requises pour créer un index vectoriel. L'assistant de vecteurs génère les étapes requises pour déployer votre charge de travail vectorielle sous forme de recommandations. Chaque fois que vous modifiez votre spécification vectorielle, l'assistant vectoriel 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 vectorielle est un objet dans lequel vous définissez l'intention et les exigences de votre charge de travail vectorielle. Il comprend toutes les informations nécessaires, y compris les suivantes :
- 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é :
HNSWouIVFFlat.ScaNNn'est pas compatible. - Rappel cible pour les requêtes de recherche
- Limites de mémoire
Vous définissez la spécification vectorielle à l'aide de la fonction vector_assist.define_spec, et vous pouvez la modifier à tout moment. Le système attribue à chaque spécification un identifiant unique et la stocke dans une table appelée vector_assist.VECTOR_SPECS.
L'assistant vectoriel 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 Vector Assist
Une fois que vous avez défini la spécification vectorielle, l'assistant vectoriel traite votre entrée et génère des recommandations. Ces recommandations sont une liste numéroté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 :
- Requête SQL à exécuter.
- 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 estimée de l'index ou le temps de compilation.
Vector Assist stocke les recommandations dans une table appelée vector_assist.RECOMMENDATIONS. Vous pouvez les examiner, les modifier et les appliquer individuellement ou toutes ensemble.
Chaque fois que vous modifiez la spécification vectorielle de votre charge de travail, l'assistant vectoriel 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 AlloyDB, tenez compte des limites suivantes :
- L'assistance vectorielle n'est compatible qu'avec PostgreSQL 17 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 des performances et une compatibilité 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 l'enregistrement et de l'appel de modèles d'IA distants dans AlloyDB. - L'assistance vectorielle n'est compatible qu'avec les types d'index
HNSWetIVFFlat. Les types d'indexScaNNne sont pas acceptés. - L'assistance vectorielle n'est compatible qu'avec les modèles d'embedding textuel 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.