Créer des applications d'IA générative à l'aide de Cloud SQL

Cette page présente les fonctionnalités offertes par Cloud SQL pour PostgreSQL pour vous aider à créer des applications d'IA générative. Pour commencer à utiliser un exemple d'application, consultez la page Premiers pas avec Cloud SQL pour les applications d'IA générative.

La génération augmentée de récupération (RAG) est une technique permettant d'optimiser la sortie d'un grand modèle de langage (LLM) en référençant une base de connaissances fiable avant de générer une réponse. Le RAG améliore la précision des applications d'IA génératives. Les bases de données Cloud SQL offrent des fonctionnalités sélectionnées pour les applications RAG et d'IA générative, comme expliqué sur cette page.

Générer des embeddings

Les embeddings sont essentiels pour le RAG, car ils permettent une compréhension sémantique et une recherche de similarité efficace. Ces embeddings sont des représentations numériques de texte, d'images, d'audio et de vidéo. Les modèles d'embedding génèrent les embeddings de sorte que, si deux éléments de contenu sont sémantiquement similaires, leurs embeddings respectifs sont proches l'un de l'autre dans l'espace du vecteur d'embedding.

Cloud SQL s'intègre à Vertex AI. Vous pouvez utiliser les modèles hébergés par Vertex AI pour générer des embeddings à l'aide de requêtes SQL.

Cloud SQL étend la syntaxe PostgreSQL avec une fonction d'embedding pour générer des embeddings vectoriels de texte. Une fois ces embeddings générées, vous pouvez les stocker dans une base de données Cloud SQL sans avoir besoin d'une base de données vectorielle distincte.

Vous pouvez également utiliser Cloud SQL pour stocker des embeddings générées en dehors de Cloud SQL. Par exemple, vous pouvez stocker des embeddings générées à l'aide de modèles pré-entraînés dans Vertex AI Model Garden. Vous pouvez utiliser ces embeddings comme entrées pour les fonctions pgvector pour les recherches de similarité et sémantique.

Stocker, indexer et interroger les embeddings de vecteurs avec pgvector

Vous pouvez stocker, indexer et interroger des embeddings dans Cloud SQL à l'aide de l'extension PostgreSQL pgvector.

Pour en savoir plus sur la configuration de cette extension, consultez Configurer des extensions PostgreSQL. Pour en savoir plus sur le stockage, l'indexation et l'interrogation des embeddings, consultez Stocker un embedding généré et Interroger et indexer des embeddings à l'aide de pgvector.

Appeler des prédictions en ligne à l'aide de requêtes SQL

Vous pouvez appeler des prédictions en ligne à l'aide de modèles stockés dans Vertex AI Model Garden en utilisant des requêtes SQL.

Utiliser l'intégration LangChain

Cloud SQL s'intègre à LangChain, un framework d'orchestration de LLM Open Source, pour simplifier le développement d'applications d'IA générative. Vous pouvez utiliser les packages LangChain suivants :

Améliorer les performances de la recherche vectorielle

Vous pouvez améliorer les performances d'une recherche vectorielle en utilisant les éléments suivants :

  • Cache de données : utilisez un cache de données intégré qui exploite un disque SSD local rapide pour stocker les pages de données lues fréquemment. Vous pouvez obtenir des performances de lecture jusqu'à trois fois supérieures à celles d'un disque persistant.
  • Métriques du cache de données : optimisez les requêtes en fonction de l'efficacité de l'utilisation du cache de données dans une recherche vectorielle.

    Cloud SQL fournit les métriques suivantes dans l'explorateur de métriques de Cloud Monitoring :

    Métrique Description Libellé de la métrique
    Cache de données utilisé Utilisation du cache de données (en octets) database/data_cache/bytes_used
    Quota du cache de données Taille maximale du cache de données (en octets) database/data_cache/quota
    Nombre d'appels de cache de données Nombre total d'opérations de lecture de succès de cache de données pour une instance database/postgresql/data_cache/hit_count
    Nombre de défauts de cache de données Nombre total d'opérations de lecture de défaut du cache de données pour une instance database/postgresql/data_cache/miss_count
    Taux de réussite du cache de données Le ratio entre les opérations de lecture de succès de cache de données et les opérations de lecture de défaut du cache de données pour une instance
    database/postgresql/data_cache/hit_ratio
  • Insights sur le système : fournissent des métriques système telles que l'utilisation du processeur, du disque et le débit pour vous aider à surveiller l'état des instances et à résoudre les problèmes qui affectent les performances de vos applications d'IA générative. Pour afficher ces métriques, utilisez le tableau de bord des insights sur le système de Cloud SQL.

  • Insights sur les requêtes : détectez, diagnostiquez et empêchez les problèmes de performances des requêtes. Cela permet d'améliorer les performances de la recherche vectorielle dans vos applications d'IA générative.

    Le tableau de bord Insights sur les requêtes de Cloud SQL vous permet d'observer les performances des requêtes les plus fréquentes et de les analyser à l'aide de plans de requêtes visuels. Vous pouvez également surveiller les performances au niveau de l'application et suivre la source d'une requête problématique sur la pile d'applications jusqu'à la base de données à l'aide de SQLcommenter. Il s'agit d'une bibliothèque d'instrumentation automatique Open Source ORM (mappage objet-relationnel).

    Les insights sur les requêtes peuvent également vous aider à intégrer vos outils de surveillance d'application (APM) existants afin de résoudre les problèmes de requête à l'aide des outils que vous connaissez.

Avantages de l'utilisation de Cloud SQL pour les applications d'IA générative

L'utilisation de Cloud SQL pour créer des applications d'IA générative offre les avantages suivants :

  • Utilisez PostgreSQL pour créer des applications d'IA générative. Cloud SQL pour PostgreSQL est compatible avec pgvector et s'intègre à Vertex AI et LangChain.
  • Utilisez un service fiable offrant une protection, une sécurité et une gouvernance des données de niveau entreprise. En utilisant Cloud SQL, vous bénéficiez des avantages suivants :
    • Contrat de niveau de service garantissant une haute disponibilité de 99,99 %, maintenance comprise
    • Service géré qui vous fournit des fonctionnalités telles que les sauvegardes automatiques, la réplication, les correctifs, le chiffrement et l'augmentation automatique de la capacité de stockage
    • Fonctionnalités de sécurité, de gouvernance et de conformité
  • Combiner avec des données opérationnelles contextuelles. Utilisez des jointures et des filtres sur des données opérationnelles tout en utilisant des embeddings pour obtenir des réponses contextuelles, précises et à jour dans vos applications d'IA générative.
  • Réduisez les tâches laborieuses. Utilisez Cloud SQL comme base de données vectorielles pour réduire les tâches laborieuses associées à l'exportation de données vers une base de données vectorielles distincte.
  • Accédez aux derniers modèles d'IA générative. Utilisez des requêtes SQL pour accéder aux derniers modèles d'IA hébergés dans Vertex AI.

Premiers pas avec Cloud SQL pour les applications d'IA générative

Pour commencer à créer des applications d'IA générative, utilisez cet exemple d'application. L'application utilise Cloud SQL, Vertex AI et Google Kubernetes Engine (GKE) ou Cloud Run. Vous pouvez utiliser l'application pour créer une API de chatbot de base qui :

  • Intègre GKE ou Cloud Run avec Cloud SQL, Vertex AI et pgvector
  • Montre la connectivité à Cloud SQL à l'aide de Private Service Connect dans un cloud privé virtuel (VPC).
  • Utilise Terraform pour configurer votre infrastructure.
  • Utilise Python avec asyncpg et FastAPI
  • Compatible avec la configuration de Cloud SQL et d'une application qui s'exécute sur GKE ou Cloud Run dans des projets Google Cloud distincts

La solution contient les éléments suivants :

  • Modèles Terraform pour configurer votre infrastructure avec les bonnes pratiques de sécurité
  • Exemple d'application pour un chatbot basé sur un LLM que vous pouvez déployer sur GKE ou Cloud Run

Étape suivante