Ce document fournit une architecture de référence que vous pouvez utiliser pour concevoir l'infrastructure d'une application d'IA générative avec génération augmentée de récupération (RAG) à l'aide de Google Agentspace et de Vertex AI. Cette architecture de référence montre comment utiliser des services gérés et déployer un seul agent d'IA pour faciliter un flux de données RAG de bout en bout. Google Agentspace sert de plate-forme unifiée pour l'orchestration des agents dans toute l'entreprise. Vertex AI accélère le développement et le déploiement d'agents personnalisés, et fournit des data stores gérés pour faciliter la récupération efficace pour le RAG.
Ce document s'adresse aux architectes, aux développeurs et aux administrateurs d'applications d'IA générative. Dans ce document, nous partons du principe que vous possédez des connaissances de base sur les concepts d'IA, de machine learning (ML) et de grand modèle de langage (LLM). Ce document ne fournit pas de conseils sur la conception et le développement d'une application d'IA générative. Pour savoir comment concevoir une application, consultez Développer une application d'IA générative.
Architecture
Le diagramme suivant présente une vue d'ensemble de l'architecture décrite dans ce document :
L'architecture du diagramme précédent comporte deux sous-systèmes : l'ingestion de données et la diffusion.
- Le sous-système d'ingestion de données ingère et prépare les données provenant de sources externes pour les utiliser dans RAG. Le sous-système génère des embeddings pour les données ingérées et les utilise pour créer et gérer un index vectoriel consultable dans un data store géré.
- Le sous-système de mise en service contient les services frontend et backend de l'application d'IA générative.
- Le service de frontend gère le flux de requêtes/réponses avec les utilisateurs de l'application et transfère les requêtes au service de backend.
- Le service de backend utilise Google Agentspace et Vertex AI pour créer et déployer votre agent d'IA afin d'orchestrer le processus RAG. Ce processus utilise les données vectorielles indexées pour générer des réponses ancrées dans le contexte et conformes aux filtres de sécurité de l'IA responsable.
Le diagramme suivant présente une vue détaillée de l'architecture :
Les sections suivantes décrivent le flux de données dans chaque sous-système du diagramme d'architecture précédent.
Sous-système d'ingestion de données
Le sous-système d'ingestion de données ingère des données provenant de sources externes et les prépare pour le système RAG. Voici les étapes du flux d'ingestion et de préparation des données :
- Les ingénieurs des données importent des données provenant de sources externes dans un bucket Cloud Storage. Les sources externes peuvent être des applications, des bases de données ou des services de streaming.
- Une fois l'opération terminée, Cloud Storage publie un message dans un sujet Pub/Sub.
- Le sujet Pub/Sub déclenche un job de traitement à exécuter dans Cloud Functions.
- Les fonctions Cloud Run traitent les données brutes en générant et en stockant les métadonnées sous forme de fichiers JSON Lines (JSONL). Les fichiers JSONL sont stockés dans un bucket Cloud Storage distinct.
- Une fois l'opération terminée, les fonctions Cloud Run publient un message dans un sujet Pub/Sub.
- Le sujet Pub/Sub déclenche un job de traitement qui s'exécute dans le datastore géré de Google Agentspace. Le job de traitement extrait les données et métadonnées brutes ingérées des buckets Cloud Storage, puis analyse et segmente les données pour une récupération efficace lors de la diffusion. Google Agentspace génère automatiquement des embeddings vectoriels sans aucune configuration.
Sous-système de mise en service
Le sous-système de mise en service gère le flux de requêtes-réponses entre l'application d'IA générative et ses utilisateurs. Voici les étapes du flux de diffusion :
- Un utilisateur de l'application envoie une requête via l'un des services d'interface Cloud Run. Vous pouvez personnaliser ces services pour différentes expériences, comme une interface utilisateur de chatbot, une page de recherche ou une application mobile.
- Le service de frontend reçoit la requête, puis la transmet à un service de backend Cloud Run centralisé. Ce backend fournit un point de terminaison unique et unifié pour prendre en charge tous les différents clients frontend. Le service de backend effectue également le prétraitement nécessaire, qui peut inclure la création de filtres pour la requête de recherche. Cette approche permet de conserver une logique transparente pour les frontaux.
- Le service de backend envoie la requête préparée à Google Agentspace à l'aide du point de terminaison de l'API Google Agentspace pour lancer le workflow RAG.
- Pour traiter la requête, Google Agentspace utilise la recherche Enterprise et l'agent personnalisé pour effectuer les tâches suivantes :
- Créez un embedding de la requête de l'utilisateur.
- Effectuez une recherche sémantique sur les données indexées dans le datastore géré pour trouver les informations les plus pertinentes.
- Augmentez la requête d'origine avec les données récupérées à partir du data store géré pour créer une requête contextuelle détaillée.
- Générez une réponse finale basée sur la requête augmentée.
- Google Agentspace envoie la réponse générée au service de backend Cloud Run.
- Le service de backend renvoie la réponse finale au service de frontend qui a envoyé la requête d'origine. Le service frontend présente la réponse à l'utilisateur de l'application.
Produits utilisés
Cette architecture de référence utilise les produits Google Cloud suivants :
- Google Agentspace : plate-forme gérée qui sert de registre central et de hub d'interaction pour tous vos agents IA dans une entreprise. Elle permet aux applications de les découvrir, de les gérer et de les utiliser facilement.
-
Vertex AI : plate-forme de ML qui vous permet d'entraîner et de déployer des modèles de ML et des applications d'IA, et de personnaliser les LLM à utiliser dans des applications basées sur l'IA.
- Vertex AI Agent Engine : plate-forme qui vous permet d'exécuter, de gérer et de faire évoluer des agents IA en production.
- Cloud Run : plate-forme de calcul gérée qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google.
- Pub/Sub : service de messagerie asynchrone et évolutif qui dissocie les services qui produisent des messages des services qui traitent ces messages.
- Cloud Storage : store d'objets économique et sans limite pour tout type de données. Les données sont accessibles depuis et en dehors de Google Cloud, et sont répliquées sur plusieurs emplacements à des fins de redondance.
Cas d'utilisation
Cette architecture est conçue pour les scénarios d'entreprise dans lesquels votre application d'IA générative a besoin d'accéder aux informations les plus récentes et nécessite une compréhension contextuelle approfondie pour fournir des réponses précises.
L'architecture inclut un sous-système d'ingestion de données personnalisé pour répondre à deux exigences clés des entreprises :
- Disponibilité des données en temps réel : le pipeline basé sur les événements traite les nouvelles données dès qu'elles sont disponibles dans votre organisation (par exemple, un nouveau guide produit ou un rapport mis à jour). Le pipeline met également les informations à disposition dans votre datastore géré. Cette conception permet d'atténuer l'obsolescence des informations, car elle garantit un délai minimal entre la disponibilité et l'utilisation des données.
- Recherche contextuelle enrichie : le job de traitement personnalisé permet à votre organisation d'appliquer sa propre logique métier pour enrichir les données avec des métadonnées précieuses. La fonction Cloud Run peut taguer chaque document avec des attributs spécifiques tels que la gamme de produits, l'auteur, l'emplacement ou le type de document. Ces métadonnées riches aident l'agent à affiner sa recherche et à fournir des réponses plus précises et contextualisées.
La génération augmentée de récupération (RAG) est une technique efficace pour améliorer la qualité des résultats générés à partir d'un LLM. Cette section fournit des exemples de cas d'utilisation pour lesquels vous pouvez utiliser des applications d'IA générative compatibles avec la fonction RAG.
Recommandations de produits personnalisées
Un site de shopping en ligne peut utiliser un chatbot basé sur un LLM pour aider les clients à trouver des produits ou à obtenir de l'aide sur leur expérience d'achat. Il est possible d'augmenter les questions d'un utilisateur en utilisant les données historiques sur le comportement d'achat de l'utilisateur et les schémas d'interaction sur le site Web. Les données peuvent inclure des avis et des commentaires d'utilisateurs stockés dans un datastore non structuré, ou des métriques liées à la recherche qui sont stockées dans un entrepôt de données d'analyse d'audience Internet. La question augmentée peut ensuite être traitée par le LLM pour générer des réponses personnalisées que l'utilisateur pourrait trouver plus attrayantes et plus convaincantes.
Systèmes d'assistance clinique
Les médecins urgentistes doivent analyser et diagnostiquer rapidement l'état de santé d'un patient, afin de décider des soins et traitements appropriés. Une application d'IA générative qui utilise un LLM médical tel que Med-PaLM peut être utilisée pour aider les médecins dans leur processus de diagnostic clinique. Les réponses générées par l'application peuvent s'appuyer sur l'historique des dossiers des patients en contextualisant les demandes des médecins avec les données de la base de données des dossiers médicaux électroniques (DME) de l'hôpital ou d'une base de connaissances externe, telle que PubMed.
Recherches juridiques efficaces
La recherche juridique basée sur l'IA générative permet aux avocats d'interroger rapidement de grands volumes de lois et de cas juridiques afin d'identifier les précédents juridiques pertinents ou de résumer des concepts juridiques complexes. Les résultats de ces recherches peuvent être améliorés en augmentant les requêtes d'un avocat par des données extraites du corpus propriétaire du cabinet d'avocats, regroupant contrats, communications juridiques antérieures et dossiers internes. Cette approche de conception garantit que les réponses générées sont adaptées au domaine juridique de spécialité de l'avocat.
Alternatives de conception
Cette section présente d'autres approches de conception que vous pouvez envisager pour votre application d'IA générative compatible RAG dans Google Cloud.
Alternatives à l'infrastructure d'IA
Si vous avez besoin d'une architecture qui utilise un produit de recherche vectorielle entièrement géré, vous pouvez utiliser Vertex AI et Vector Search, qui fournissent une infrastructure de diffusion optimisée pour les recherches vectorielles à grande échelle. Pour en savoir plus, consultez Infrastructure RAG pour l'IA générative à l'aide de Vertex AI et de la recherche vectorielle.
Si vous souhaitez profiter des fonctionnalités de magasin de vecteurs d'une base de données Google Cloud entièrement gérée comme AlloyDB pour PostgreSQL ou Cloud SQL, consultez Infrastructure RAG pour l'IA générative à l'aide de Vertex AI et d'AlloyDB pour PostgreSQL.
Si vous souhaitez créer et déployer rapidement des applications d'IA générative compatibles avec RAG à l'aide d'outils et de modèles Open Source tels que Ray, Hugging Face et LangChain, consultez Infrastructure RAG pour l'IA générative à l'aide de GKE et Cloud SQL.
Options d'hébergement d'applications
Dans l'architecture présentée dans ce document, Cloud Run est l'hôte de l'application d'IA générative et du traitement des données. Cloud Run est une application entièrement gérée et axée sur les développeurs. Vous pouvez également déployer votre application sur Vertex AI Agent Engine, des clusters GKE ou des VM Compute Engine.
Pour choisir un hôte d'application, tenez compte des compromis suivants entre la flexibilité de la configuration et les efforts de gestion :
- Avec l'option Cloud Run sans serveur, vous déployez vos services personnalisés dans un environnement géré et préconfiguré. Pour héberger les services de frontend et la logique de backend personnalisée pour le prétraitement des requêtes, cette architecture nécessite la possibilité de déployer des applications personnalisées.
- Avec l'option Vertex AI Agent Engine, vous utilisez une plate-forme entièrement gérée conçue pour la diffusion d'agents. Vertex AI Agent Engine réduit les frais généraux de gestion et assure une intégration étroite avec Google Agentspace.
- Avec les VM Compute Engine et les conteneurs GKE, vous êtes responsable de la gestion des ressources de calcul sous-jacentes, mais vous bénéficiez d'une plus grande flexibilité et d'un meilleur contrôle en termes de configuration.
Pour en savoir plus sur le choix d'un service d'hébergement d'application approprié, consultez les documents suivants :
- Mon application est-elle adaptée à Cloud Run ?
- Sélectionner un environnement d'exécution de conteneur géré
- Héberger des applications sur Google Cloud
Autres options d'infrastructure
Pour en savoir plus sur les autres options d'infrastructure, les modèles compatibles et les techniques d'ancrage que vous pouvez utiliser pour les applications d'IA générative dansGoogle Cloud, consultez Choisir des modèles et une infrastructure pour votre application d'IA générative.
Considérations de conception
Cette section fournit des conseils pour vous aider à développer dans Google Cloud une architecture d'IA générative compatible avec la fonction RAG qui répond à vos exigences spécifiques en termes de sécurité, de conformité, de fiabilité, de coût et de performances. Les conseils de cette section ne sont pas exhaustifs. En fonction des exigences spécifiques de votre application d'IA générative et des produits et fonctionnalités Google Cloud que vous utilisez, vous devrez peut-être prendre en compte des facteurs de conception et des compromis supplémentaires.
Pour obtenir une présentation des principes et des recommandations d'architecture spécifiques aux charges de travail d'IA et de ML dans Google Cloud, consultez la perspective de l'IA et du ML dans le framework Well-Architected.
Sécurité, confidentialité et conformité
Cette section décrit les considérations et recommandations de conception pour concevoir une topologie dans Google Cloud qui répond aux exigences de sécurité et de conformité de votre charge de travail.
Produit |
Considérations et recommandations concernant la conception |
---|---|
Vertex AI |
Vertex AI est compatible avec les contrôles de sécurité Google Cloud que vous pouvez utiliser pour répondre à vos exigences en termes de résidence des données, de chiffrement des données, de sécurité réseau et de transparence des accès. Pour en savoir plus, consultez la documentation suivante : Google Agentspace Enterprise supprime les données demandées par les utilisateurs sous 60 jours. Pour en savoir plus, consultez Suppression des données surGoogle Cloud. Les modèles d'IA générative peuvent produire des réponses nuisibles, en particulier lorsqu'ils reçoivent des requêtes explicites en ce sens. Pour renforcer la sécurité et limiter les cas d'utilisation abusive, vous pouvez configurer des filtres de contenu afin de bloquer les réponses potentiellement nuisibles. Pour en savoir plus, consultez Filtres de sécurité et de contenu. |
Cloud Run |
Par défaut, Cloud Run chiffre les données à l'aide deGoogle-owned and Google-managed encryption keys. Pour protéger vos conteneurs à l'aide de clés que vous contrôlez, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK). Pour en savoir plus, consultez la page Utiliser des clés de chiffrement gérées par le client. Pour vous assurer que seules les images de conteneurs autorisées sont déployées sur Cloud Run, vous pouvez utiliser l'autorisation binaire. Cloud Run vous aide à répondre aux exigences de résidence des données. Vos fonctions Cloud Run s'exécutent dans la région sélectionnée. |
Cloud Storage |
Par défaut, Cloud Storage chiffre les données qu'il stocke à l'aide de Google-owned and Google-managed encryption keys. Si nécessaire, vous pouvez utiliser des clés CMEK ou vos propres clés que vous gérez à l'aide d'une méthode de gestion externe, telle que les clés de chiffrement fournies par le client (CSEK). Pour en savoir plus, consultez Options de chiffrement des données. Cloud Storage propose deux méthodes pour autoriser des utilisateurs à accéder à vos buckets et objets : Identity and Access Management (IAM) et les listes de contrôle des accès (LCA). Dans la plupart des cas, nous vous recommandons d'utiliser IAM, qui vous permet d'accorder des autorisations au niveau du bucket et du projet. Pour en savoir plus, consultez Présentation du contrôle des accès. Les données que vous chargez dans le sous-système d'ingestion de données via Cloud Storage peuvent inclure des données sensibles. Vous pouvez utiliser Sensitive Data Protection pour découvrir, classer et anonymiser les données sensibles. Pour en savoir plus, consultez Utiliser la protection des données sensibles avec Cloud Storage. Cloud Storage vous aide à répondre aux exigences de résidence des données. Cloud Storage stocke ou réplique les données dans la région que vous spécifiez. |
Pub/Sub |
Par défaut, Pub/Sub chiffre tous les messages, y compris ceux au repos et en transit, à l'aide de Google-owned and Google-managed encryption keys. Pub/Sub permet d'utiliser des CMEK pour le chiffrement des messages au niveau de la couche Application. Pour en savoir plus, consultez Configurer le chiffrement des messages. Si vous avez des exigences de résidence des données, vous pouvez configurer des règles de stockage des messages pour vous assurer que les données des messages sont stockées dans des emplacements spécifiques. |
Pour connaître les principes et recommandations de sécurité spécifiques aux charges de travail d'IA et de ML, consultez Enjeux spécifiques à l'IA et au ML : sécurité dans le framework Well-Architected.
Fiabilité
Cette section décrit les considérations et les recommandations de conception pour créer et exploiter une infrastructure fiable pour votre déploiement dans Google Cloud.
Produit |
Considérations et recommandations concernant la conception |
---|---|
Vertex AI |
Vertex AI garantit la résidence des données au repos. Vertex AI stocke vos données sources, y compris les données pour le RAG dans le datastore géré, dans la Google Cloud zone géographique que vous avez sélectionnée. Cette séparation du traitement et du stockage est un aspect fondamental de la façon dont la plate-forme offre à la fois une fiabilité élevée et la conformité. |
Cloud Run |
Cloud Run est un service régional qui stocke les données de manière synchrone dans plusieurs zones d'une même région. Le service équilibre automatiquement la charge du trafic entre les zones. En cas de panne zonale, les jobs Cloud Run continuent de s'exécuter et les données ne sont pas perdues. En cas de panne régionale, les jobs Cloud Run cessent de s'exécuter jusqu'à ce que Google résolve le problème. Des jobs ou des tâches Cloud Run individuelles peuvent échouer. Pour gérer ces échecs, vous pouvez utiliser les nouvelles tentatives d'exécution de tâches et la création de points de contrôle. Pour en savoir plus, consultez Bonnes pratiques en matière de nouvelles tentatives d'exécution et de points de contrôle de tâches. |
Cloud Storage |
Vous pouvez créer des buckets Cloud Storage dans l'un des trois types d'emplacements suivants : régional, birégional ou multirégional. Pour les données stockées dans des buckets régionaux, Cloud Storage les réplique de manière synchrone dans plusieurs zones d'une même région. Pour une disponibilité plus élevée, vous pouvez utiliser des buckets birégionaux ou multirégionaux, dans lesquels Cloud Storage réplique les données de manière asynchrone entre les régions. Assurez-vous que votre choix correspond à vos exigences de conformité. |
Pour obtenir des principes et des recommandations de fiabilité spécifiques aux charges de travail d'IA et de ML, consultez Enjeux spécifiques à l'IA et au ML : fiabilité dans le framework Well-Architected.
Optimisation des coûts
Cette section fournit des conseils pour optimiser les coûts de configuration et d'exploitation d'une topologie Google Cloud que vous créez à l'aide de cette architecture de référence.
Produit |
Considérations et recommandations concernant la conception |
---|---|
Vertex AI |
Le modèle d'IA sous-jacent que l'agent appelle peut avoir une incidence directe sur le coût d'utilisation de cet agent. La tarification est calculée en fonction du nombre de jetons d'entrée et de sortie pour chaque requête. Pour en savoir plus, consultez les quotas et limites système de l'IA générative sur Vertex AI et le calculateur de prix deGoogle Cloud. Pour savoir comment minimiser le nombre de jetons afin de réduire les coûts, consultez Optimiser la longueur des requêtes et des résultats. |
Cloud Run Functions |
Lorsque vous créez des jobs Cloud Run, vous spécifiez la quantité de mémoire et de processeur à allouer à l'instance de conteneur. Pour contrôler les coûts, commencez par les allocations de processeur et de mémoire par défaut. Pour améliorer les performances, vous pouvez augmenter l'allocation en configurant la limite de processeur et la limite de mémoire. Si vous pouvez prévoir les besoins en processeur et en mémoire de vos jobs Cloud Run, vous pouvez réaliser des économies grâce aux remises sur engagement d'utilisation. Pour en savoir plus, consultez Remises sur engagement d'utilisation Cloud Run. |
Cloud Storage |
Pour le bucket Cloud Storage que vous utilisez pour charger des données dans le sous-système d'ingestion de données, choisissez une classe de stockage appropriée en fonction des exigences de conservation des données et de fréquence d'accès de vos charges de travail. Par exemple, vous pouvez choisir la classe de stockage Standard et utiliser la gestion du cycle de vie des objets pour contrôler les coûts de stockage. La gestion du cycle de vie des objets déclasse automatiquement les objets vers une classe de stockage plus économique ou les supprime en fonction des conditions que vous avez définies. |
Pour obtenir des principes et des recommandations d'optimisation des coûts spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : optimisation des coûts dans le framework Well-Architected.
Optimisation des performances
Cette section décrit les considérations de conception et les recommandations pour concevoir une topologie dans Google Cloud qui répond aux exigences de performances de vos charges de travail.
Produit |
Considérations et recommandations concernant la conception |
---|---|
Google Agentspace |
Pour réduire la latence lors de la diffusion, diffusez les réponses en envoyant les réponses du modèle avant que l'agent ne génère la sortie complète. Ainsi, les résultats sont traités en temps réel. Vous pouvez ainsi mettre à jour votre interface utilisateur immédiatement et effectuer d'autres tâches simultanées. Le streaming améliore la réactivité perçue et crée une expérience utilisateur plus interactive. Pour en savoir plus, consultez Diffuser les réponses. |
Cloud Run |
Ajustez l'allocation de mémoire et de processeur pour les instances Cloud Run en fonction de vos exigences de performances. Pour en savoir plus, consultez Configurer les limites de processeur pour les jobs et Configurer les limites de mémoire pour les services. |
Cloud Storage |
Pour importer des fichiers volumineux, vous pouvez utiliser une méthode appelée importations composites parallèles. Avec cette stratégie, le fichier volumineux est divisé en fragments. Vous importez les fragments dans Cloud Storage en parallèle, puis Cloud Storage réassemble les données dans Google Cloud. Les importations composites parallèles peuvent être plus rapides que les opérations d'importation standards si vous disposez d'une bande passante réseau et d'une vitesse de disque suffisantes. Cependant, cette stratégie présente certaines limites et a des répercussions en termes de coûts. Pour en savoir plus, consultez Importations composites parallèles. |
Pour obtenir des principes et des recommandations d'optimisation des performances spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : optimisation des performances dans le framework Well-Architected.
Déploiement
Pour déployer cette architecture de référence, utilisez l'exemple Terraform disponible sur GitHub. Pour en savoir plus, consultez Infrastructure RAG pour les applications d'IA générative à l'aide de Google Agentspace et Vertex AI.
Étapes suivantes
- Découvrez comment Google Agentspace segmente les documents pour la RAG.
- Découvrez comment héberger des applications et des agents d'IA sur Cloud Run.
- Découvrez les bonnes pratiques d'IA responsable et les filtres de sécurité de Vertex AI.
- Découvrez les bonnes pratiques concernant les grands modèles de langage (LLM).
- Pour obtenir une présentation des principes et des recommandations d'architecture spécifiques aux charges de travail d'IA et de ML dans Google Cloud, consultez la perspective de l'IA et du ML dans le framework Well-Architected.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.
Contributeurs
Auteur : Samantha He | Rédactrice technique
Autres contributeurs :
- Deepak Michael | Ingénieur client spécialiste en gestion des réseaux
- Kumar Dhanagopal Développeur de solutions multiproduits
- Mark Schlagenhauf | Rédacteur technique, Mise en réseau
- Victor Moreno | Responsable produit, Mise en réseau cloud
- Yehia Elshater | Architecte de solutions terrain, IA générative, Google Cloud
- Paarth Mahajan | Spécialiste réseau, Google Cloud