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. La 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 représentations vectorielles continues

Les représentations vectorielles continues sont essentielles pour la RAG, car elles permettent une compréhension sémantique et une recherche de similarité efficace. Ces représentations vectorielles continues sont des représentations numériques de texte, d'images, d'audio et de vidéo. Les modèles de représentation vectorielle continue génèrent les représentations vectorielles continues de sorte que, si deux éléments de contenu sont sémantiquement similaires, leurs représentations vectorielles continues respectives sont proches l'une de l'autre dans l'espace de représentation vectorielle continue.

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

Cloud SQL étend la syntaxe PostgreSQL avec une fonction de représentation vectorielle continue pour générer des représentations vectorielles continues de texte. Une fois ces représentations vectorielles continues 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 représentations vectorielles continues générées en dehors de Cloud SQL. Par exemple, vous pouvez stocker des représentations vectorielles continues générées à l'aide de modèles pré-entraînés dans Vertex AI Model Garden. Vous pouvez utiliser ces représentations vectorielles continues comme entrées pour les fonctions pgvector pour les recherches de similarité et sémantique.

Stocker, indexer et interroger les représentations vectorielles continues de vecteurs avec pgvector

Vous pouvez stocker, indexer et interroger des représentations vectorielles continues 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 représentations vectorielles continues, consultez Stocker unz représentation vectorielle continue générée et Interroger et indexer des représentations vectorielles continues à 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 professionnelles. 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 représentations vectorielles continues 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, Google Kubernetes Engine et Vertex AI.

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

Étapes suivantes