Présentation de l'assistance vectorielle

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 Vector Search. 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 (telles que la table cible, la colonne de texte source et l'objectif de rappel) à l'aide de fonctions SQL.

En fonction de votre spécification vectorielle, l'aide 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'aide vectorielle

L'aide vectorielle vous oblige à 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'aide 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'aide 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'aide vectorielle pour générer des requêtes de recherche optimisées.

Spécification de l'aide vectorielle

La première étape pour utiliser l'aide 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. Elle inclut toutes les informations nécessaires, y compris les suivantes :

  • Tables et colonnes pertinentes (texte ou vecteur)
  • Préférences de modèle d'embedding (si vous utilisez la génération d'embeddings)
  • Type d'index préféré : HNSW ou IVFFlat. ScaNN n'est pas compatible.
  • Rappel cible pour les requêtes de recherche
  • Limites de mémoire

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 identifiant unique à chaque spécification et la stocke dans une table appelée vector_assist.VECTOR_SPECS.

L'aide 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'aide 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'aide vectorielle

Une fois que vous avez défini les spécifications vectorielles, l'aide vectorielle 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 :

  • 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'aide vectorielle stocke les recommandations dans une table appelée vector_assist.RECOMMENDATIONS, et 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'aide vectorielle régénère les recommandations pour qu'elles soient conformes aux spécifications mises à jour.

Limites

Lorsque vous utilisez l'aide vectorielle avec vos instances AlloyDB, tenez compte des limites suivantes :

  • L'aide vectorielle n'est compatible qu'avec PostgreSQL 17 et versions ultérieures.
  • Bien que l'aide vectorielle soit compatible avec toutes les versions 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 le pgvector journal des modifications.
  • Si votre instance utilise l'extension google_ml_integration pour générer des embeddings, ses restrictions s'appliquent également lorsque vous utilisez l'aide vectorielle. Pour en savoir plus, consultez la présentation Enregistrer et appeler des modèles d'IA à distance dans AlloyDB.
  • L'aide vectorielle n'est compatible qu'avec les types d'index HNSW et IVFFlat. Les types d'index ScaNN ne sont pas compatibles.
  • L'aide vectorielle n'est compatible qu'avec les modèles d'embedding textuel pour générer automatiquement des embeddings et utilise text_column_name comme paramètre d'entrée. Si votre charge de travail vectorielle nécessite un modèle d'embedding multimodal, utilisez l'extension google_ml_integration ou une autre extension pour générer manuellement ces embeddings avant d'utiliser l'aide vectorielle afin d'activer la recherche sémantique sur ces embeddings.

Étape suivante