Développer une application d'IA générative
Ce document vous explique comment relever les défis à chaque étape du développement d'une application d'IA générative. Il explique comment sélectionner un modèle, personnaliser sa sortie pour répondre à vos besoins, évaluer vos personnalisations et déployer votre modèle. Ce document suppose que vous avez déjà un cas d'utilisation en tête et qu'il est adapté à l'IA générative. Pour savoir comment développer un cas d'utilisation, consultez Évaluer et définir votre cas d'utilisation professionnel d'IA générative.
Avant de commencer à développer une application d'IA générative, évaluez la préparation technique de votre organisation (capacités et infrastructure). Pour savoir comment évaluer vos capacités en matière d'IA et créer une feuille de route pour exploiter son potentiel, consultez l'atelier de préparation à l'IA. Si vous prévoyez de développer des workflows automatisés par l'IA générative, évaluez si les humains doivent être inclus dans la boucle pour les étapes de décision critiques. L'examen manuel peut vous aider à prendre des décisions, comme garantir une utilisation responsable, répondre à des exigences spécifiques de contrôle qualité ou surveiller le contenu généré.
Modèles d'IA générative
Les modèles de fondation d'IA générative sont entraînés sur des ensembles de données de plusieurs téraoctets de texte, d'images, de code ou d'autres contenus multimédias. Les données et l'architecture du modèle permettent aux modèles d'identifier des schémas complexes, d'obtenir une compréhension contextuelle approfondie et de produire de nouveaux contenus tels que du texte, des images, de la musique ou des vidéos, en fonction des données d'entraînement.
Les modèles de fondation constituent le cœur sur lequel de nombreuses applications d'IA générative sont créées. Les capacités des modèles se traduisent en capacités émergentes: grâce à une simple instruction de requête textuelle, les modèles de fondation d'IA générative peuvent apprendre à effectuer diverses tâches, comme traduire des langues, répondre à des questions, écrire un poème ou écrire du code sans entraînement explicite pour chaque tâche. Les modèles de fondation d'IA générative peuvent également s'adapter pour effectuer des tâches spécifiques avec certaines techniques de requête ou être affinés avec un minimum de données d'entraînement supplémentaires.
Les grands modèles de langage (LLM) sont entraînés sur du texte, ce sont des exemples de modèles de fondation qui sont généralement basés sur des architectures de deep learning, comme le modèle Transformer développé par Google en 2017. Les LLM peuvent être entraînés sur des milliards d'exemples de texte et d'autres contenus, et peuvent être personnalisés pour des domaines spécifiques.
D'autres modèles multimodaux étendent la capacité d'une application d'IA générative à traiter des informations provenant de plusieurs modalités, y compris des images, des vidéos, de l'audio et du texte. Les requêtes multimodales combinent plusieurs formats d'entrée tels que le texte, les images et l'audio. Par exemple, vous pouvez saisir une image et demander à une application d'IA générative de lister ou de décrire les objets de l'image. Les modèles Gemini de Google sont conçus dès le départ pour la multimodalité. Ils peuvent raisonner de manière fluide sur le texte, les images, la vidéo, l'audio et le code. Model Garden et Vertex AI de Google Cloud peuvent vous aider à trouver et à personnaliser une gamme de modèles de fondation provenant de Google, de sources Open Source et de sources tierces.
Choisir un modèle
Lorsque vous choisissez un modèle, tenez compte de sa modalité, de sa taille et de son coût. Choisissez le modèle le plus abordable qui répond toujours à vos exigences de qualité de réponse et de latence.
- Modalité: comme décrit dans la section précédente, la modalité d'un modèle correspond aux catégories de données de haut niveau pour lesquelles un modèle est entraîné, comme le texte, les images et les vidéos. En règle générale, votre cas d'utilisation et la modalité du modèle sont étroitement associés. Si votre cas d'utilisation implique la génération de texte en image, vous devez trouver un modèle entraîné sur des données textuelles et des données d'image. Si vous avez besoin de la flexibilité de plusieurs modalités, comme dans la recherche multimodale, il existe des modèles qui prennent également en charge les cas d'utilisation multimodaux, mais les coûts et la latence peuvent être plus élevés.
- Les modèles Vertex AI proposé une longue liste de modèles d'IA générative que vous pouvez utiliser.
- Model Garden fournit une liste d'offres de modèles de ML propriétaires et Open Source sur Google Cloud.
- Taille: la taille d'un modèle est généralement mesurée par le nombre de paramètres. En général, un modèle plus volumineux peut apprendre des tendances et des relations plus complexes dans les données, ce qui peut entraîner des réponses de meilleure qualité. Étant donné que les modèles plus volumineux de la même famille peuvent avoir une latence et des coûts plus élevés, vous devrez peut-être tester et évaluer des modèles pour déterminer la taille de modèle la plus adaptée à votre cas d'utilisation.
Coût: le coût d'un modèle est lié à ses fonctionnalités, qui sont généralement liées au nombre de paramètres du modèle. Les modèles peuvent également être mesurés et facturés différemment. Par exemple, certains modèles sont facturés en fonction du nombre de jetons d'entrée et de sortie. Les autres modèles sont facturés en fonction du nombre d'heures de nœud utilisées pendant le déploiement du modèle.
Pour en savoir plus sur les tarifs des modèles d'IA générative sur Vertex AI, consultez la page Tarifs de Vertex AI.
Pour en savoir plus sur le coût de déploiement des modèles sur Google Kubernetes Engine (GKE), consultez la page Tarifs de GKE.
Fonctionnalités: tous les modèles ne sont pas compatibles avec des fonctionnalités telles que le réglage et la distillation. Si ces fonctionnalités sont importantes pour vous, vérifiez les fonctionnalités compatibles avec chaque modèle.
Concevoir des requêtes
La conception de requête est le processus de création de paires de requêtes et de réponses pour fournir aux modèles de langage davantage de contexte et d'instructions. Une fois que vous avez créé des requêtes, vous les transmettez au modèle en tant qu'ensemble de données de requêtes pour le pré-entraînement. Lorsqu'un modèle génère des prédictions, il répond avec vos instructions intégrées.
Si vous souhaitez obtenir un résultat spécifique, vous pouvez utiliser des stratégies de conception de requêtes. Vous pouvez par exemple demander au modèle d'effectuer une entrée partielle ou fournir au modèle des exemples de réponses idéales. Pour en savoir plus, consultez la page Présentation de la conception des requêtes.
Personnaliser un modèle
Une fois la requête conçue, vous constaterez peut-être que les réponses d'un modèle fonctionnent correctement. Vous n'avez donc pas besoin de le personnaliser. Si le modèle ne fonctionne pas correctement (par exemple, s'il hallucine), vous pouvez utiliser des techniques de personnalisation supplémentaires. Les sections suivantes présentent ces techniques et peuvent vous aider à comprendre comment ces options influencent la sortie de votre modèle.
Appel de fonction et extensions
Les appels de fonction et les extensions de Vertex AI étendent les fonctionnalités de votre modèle. Réfléchissez aux cas d'utilisation de votre application et aux cas où l'utilisation d'un modèle seul peut s'avérer insuffisante. Vous pouvez aider le modèle en ajoutant des appels de fonction ou des extensions. Par exemple, votre modèle peut extraire des informations d'agenda à partir d'un texte, puis utiliser une extension pour trouver et réserver une réservation.
Bien que vous puissiez utiliser les appels de fonction et les extensions de manière interchangeable, il existe quelques différences de haut niveau. L'appel de fonction est une opération asynchrone et vous n'avez pas besoin d'inclure des identifiants dans votre code. Vertex AI Extensions fournit des options prédéfinies que vous pouvez utiliser pour des tâches complexes afin de ne pas avoir à écrire vos propres fonctions. Toutefois, comme les extensions Vertex AI renvoient et appellent des fonctions pour vous, les extensions nécessitent d'inclure des identifiants dans votre code.
Surface de référence
L'ancrage consiste à augmenter les réponses du modèle en les ancrant à des sources d'information vérifiables. Pour ancrer un modèle, vous devez le connecter à une source de données. L'ancrage d'un modèle permet d'améliorer la fiabilité du contenu généré en réduisant les hallucinations.
La génération augmentée par récupération (RAG) est une technique d'ancrage couramment utilisée. La fonction RAG utilise une fonctionnalité de recherche pour trouver des informations pertinentes, puis ajoute ces informations à une requête du modèle. Lorsque vous utilisez le RAG, les résultats sont basés sur des faits et les dernières informations. La recherche RAG utilise des embeddings vectoriels et des bases de données vectorielles, qui stockent les données sous forme de représentations numériques de données non structurées, telles que du texte et des images. Pour en savoir plus, consultez la page Qu'est-ce qu'une base de données vectorielle ?
Pour en savoir plus sur l'ancrage dans Vertex AI, consultez la page Présentation de l'ancrage. Pour en savoir plus sur la configuration d'un workflow d'embedding dans AlloyDB pour PostgreSQL, consultez l'exemple de workflow d'embedding.
Réglage de modèle
Les tâches spécialisées, telles que l'entraînement d'un modèle de langage sur une terminologie spécifique, peuvent nécessiter plus d'entraînement qu'une conception de requête seule. Dans ce scénario, vous pouvez utiliser le réglage du modèle pour améliorer les performances et demander au modèle de respecter des exigences de sortie spécifiques.
Pour régler un modèle, vous devez créer un ensemble de données d'entraînement, puis sélectionner une méthode de réglage, comme le réglage supervisé, le réglage par apprentissage automatique par renforcement qui utilise le feedback humain (RLHF) ou la distillation de modèle. La taille de l'ensemble de données et les méthodes de réglage dépendent de votre modèle et de ce que vous souhaitez optimiser. Par exemple, les tâches spécialisées et de niche nécessitent un ensemble de données plus petit pour obtenir des améliorations significatives. Pour en savoir plus sur le réglage des modèles, consultez la section Régler les modèles de fondation.
Évaluer un modèle
L'évaluation d'un modèle vous aide à évaluer l'impact de vos requêtes et de vos personnalisations sur ses performances. Chaque méthode d'évaluation présente ses propres avantages et inconvénients. Par exemple, les évaluations basées sur des métriques peuvent être automatisées et évolutives rapidement, avec une méthode quantifiable pour mesurer les performances. Toutefois, les métriques peuvent simplifier les résultats et passer à côté du contexte et des nuances du langage naturel. Pour atténuer ces lacunes, utilisez un large éventail de métriques en plus des évaluations humaines.
Generative AI sur Vertex AI propose une évaluation côte à côte automatique, qui vous permet de comparer les résultats de deux modèles avec la vérité terrain. Un troisième modèle vous aide à sélectionner les réponses de meilleure qualité. L'évaluation côte à côte automatique est au même niveau que celle des évaluateurs humains, mais elle est plus rapide et disponible à la demande. Toutefois, pour effectuer les comparaisons, cette méthode nécessite un modèle plus volumineux que les modèles que vous évaluez, ce qui peut présenter des biais inhérents. Vous devez donc toujours effectuer des évaluations humaines.
Pour toutes les méthodes d'évaluation, vous avez besoin d'un ensemble de données d'évaluation. Un ensemble de données d'évaluation inclut des paires constituées d'une requête et d'une vérité terrain (réponse idéale) que vous créez. Lorsque vous créez votre ensemble de données, incluez un ensemble varié d'exemples qui correspondent à la tâche que vous évaluez pour obtenir des résultats pertinents.
Déployer un modèle
Le déploiement d'un modèle associe un point de terminaison et des ressources de machine physique à votre modèle pour diffuser des prédictions en ligne à faible latence. Tous les modèles ne nécessitent pas de déploiement. Par exemple, les modèles de fondation de Google disponibles dans l'IA générative sur Vertex AI ont déjà des points de terminaison. Les points de terminaison sont spécifiques à votre projet Google Cloud et sont immédiatement disponibles. Cependant, si vous réglez l'un de ces modèles, vous devez le déployer sur un point de terminaison.
Lorsque vous déployez un modèle, décidez si vous préférez déployer vos modèles dans un environnement entièrement géré ou dans un environnement autogéré. Dans un environnement entièrement géré, vous sélectionnez les ressources physiques dont vous avez besoin, telles que le type de machine et le type d'accélérateur, puis Vertex AI instancie et gère les ressources à votre place. Par exemple, pour activer les prédictions en ligne dans lesquelles Vertex AI gère les ressources de déploiement à votre place, consultez la section Déployer un modèle sur un point de terminaison. Dans un environnement autogéré, vous avez un contrôle plus précis sur vos ressources, mais vous les gérez vous-même. Avec les environnements autogérés, vous pouvez diffuser des modèles sur des plates-formes telles que GKE.
Une fois que vous avez déterminé le type d'environnement dans lequel vous souhaitez effectuer le déploiement, réfléchissez au trafic prévu, aux exigences de latence et au budget. Vous devez équilibrer ces facteurs avec vos ressources physiques. Par exemple, si vous privilégiez les coûts faibles, vous pouvez tolérer une latence plus élevée avec des machines moins chères. Les environnements de test en sont un bon exemple. Pour en savoir plus sur le choix d'un type de machine, consultez le notebook Déterminer le type de machine idéal à utiliser pour les points de terminaison Vertex AI.
Une IA responsable
L'IA générative sur Vertex AI est conçue en tenant compte des principes de l'IA de Google. Toutefois, il est important de tester les modèles pour vous assurer qu'ils sont utilisés de manière sécurisée et responsable. En raison de l'incroyable polyvalence des LLM, il est difficile de prédire les réponses involontaires ou imprévues.
Lorsque vous développez des applications pour votre cas d'utilisation, tenez compte des limites des modèles d'IA générative afin de pouvoir atténuer correctement les utilisations abusives potentielles et les problèmes involontaires. Par exemple, la qualité d'un modèle dépend des données que vous utilisez. Si vous fournissez au modèle des données non optimales (par exemple, des données inexactes ou incomplètes), vous ne pouvez pas vous attendre à des performances optimales. Vérifiez que vos données d'entrée et vos requêtes sont exactes. Sinon, les performances du modèle risquent de ne pas être optimales ou les sorties de modèle risquent d'être fausses. Pour en savoir plus sur les limites des modèles d'IA générative, consultez la page IA responsable.
Étapes suivantes
- Essayez les tutoriels sur les notebooks Vertex AI.
- Découvrez les MLOps (Machine Learning Operations) pour l'IA générative.