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. Elle explique comment sélectionner un modèle, personnaliser les résultats du modèle en fonction de vos besoins, évaluer vos personnalisations et déployer votre modèle. Dans ce document, nous partons du principe que vous avez déjà un cas d'utilisation en tête et qu'il est adapté à l'IA générative. Pour en savoir plus sur le développement d'un cas d'utilisation, consultez la page Évaluer et définir votre cas d'utilisation d'IA générative.
Avant de commencer à développer une application d'IA générative, évaluez l'aptitude technique de votre organisation (fonctionnalités et infrastructure). Pour savoir comment évaluer vos capacités en matière d'IA et créer une feuille de route pour exploiter tout son potentiel, consultez la page Atelier de préparation à l'IA. Si vous envisagez de développer des workflows automatisés par l'IA générative, déterminez si vous devez inclure des humains dans la boucle pour les étapes critiques de décision. Un examen manuel peut vous aider à prendre des décisions comme garantir une utilisation responsable, répondre à des exigences spécifiques en matière 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'acquérir une compréhension contextuelle approfondie et de produire de nouveaux contenus tels que du texte, des images, de la musique ou des vidéos à partir des données d'entraînement.
Les modèles de fondation constituent le cœur sur lequel s'appuient de nombreuses applications d'IA générative. 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'échantillons de texte et d'autres contenus, et un LLM peut être personnalisé 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 répertorier ou de décrire les objets qu'elle contient. Les modèles Gemini de Google sont entièrement conçus pour la multimodalité et peuvent raisonner de manière transparente dans du texte, des images, des vidéos, de l'audio et du 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 en termes 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é, telles que du texte, des images et des 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-vers-image, vous devez rechercher un modèle entraîné sur des données de texte et d'image. Si vous avez besoin de la flexibilité de plusieurs modalités, comme dans la recherche multimodale, certains modèles sont également compatibles avec les cas d'utilisation multimodaux, mais le coût 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 selon le nombre de paramètres. En général, un modèle plus grand peut apprendre des schémas et des relations plus complexes au sein des données, ce qui peut se traduire par des réponses de meilleure qualité. Étant donné que les modèles plus volumineux d'une même famille peuvent entraîner une latence et des coûts plus élevés, vous devrez peut-être tester et évaluer les modèles pour déterminer la taille la mieux adaptée à votre cas d'utilisation.
Coût: le coût d'un modèle est lié à ses capacités, 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-nœud utilisées lors du déploiement du modèle.
Pour en savoir plus sur la tarification des modèles d'IA générative dans 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.
Caractéristiques: 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 celles 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 diffuse 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 bien (par exemple, s'il hallucine), vous pouvez utiliser d'autres techniques de personnalisation. Les sections suivantes présentent ces techniques et peuvent vous aider à comprendre comment ces options influencent la sortie de votre modèle.
Extensions et appels de fonctions
Les appels de fonction et les extensions de Vertex AI étendent les fonctionnalités de votre modèle. Considérez les cas d'utilisation de votre application et ceux 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 de calendrier d'un texte, puis utiliser une extension pour rechercher 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 majeures. L'appel de fonction est une opération asynchrone et vous n'avez pas besoin d'inclure des identifiants dans votre code. Les extensions Vertex AI fournissent des options prédéfinies que vous pouvez utiliser pour les tâches complexes. Vous n'avez donc pas besoin d'é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 de 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 la fonction RAG, le résultat est basé sur les faits et les informations les plus récentes. 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 affiner les réglages du modèle pour améliorer les performances et faire en sorte que le modèle respecte 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, telle que le réglage supervisé, le réglage avec 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 dans des domaines spécifiques 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 a ses propres avantages et inconvénients. Par exemple, les évaluations basées sur les métriques peuvent être automatisées et mises à l'échelle rapidement avec un moyen quantifiable de mesurer les performances. Cependant, les métriques peuvent trop simplifier les résultats et omettre le contexte et les nuances du langage naturel. Pour atténuer ces lacunes, utilisez un large éventail de métriques en combinaison avec 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 les plus pertinentes. 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. Cependant, pour effectuer des comparaisons, cette méthode nécessite un modèle plus grand que les modèles que vous évaluez, ce qui peut présenter des biais inhérents. Vous devriez donc toujours procéder à des évaluations humaines.
Quelle que soit la méthode d'évaluation employée, 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 correspondant à la tâche que vous évaluez pour obtenir des résultats significatifs.
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 un déploiement. Par exemple, les modèles de fondation de Google disponibles dans l'IA générative sur Vertex AI disposent déjà de 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 disposez d'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 choisi le type d'environnement dans lequel vous souhaitez effectuer le déploiement, tenez compte du trafic prévu, des exigences de latence et du budget. Vous devez équilibrer ces facteurs avec vos ressources physiques. Par exemple, si la priorité est de réduire les coûts, vous pouvez tolérer une latence plus élevée avec des machines moins coûteuses. Les environnements de test sont un bon exemple de ce compromis. 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
Generative AI sur Vertex AI est conçu en appliquant les principes de l'IA de Google. Cependant, il est important de tester les modèles pour vous assurer qu'ils sont utilisés en toute sécurité et de manière responsable. En raison de l'incroyable polyvalence des LLM, il est difficile de prédire des réponses inattendues 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 limiter correctement les utilisations abusives et les problèmes involontaires potentiels. Par exemple, la qualité d'un modèle est limitée aux données que vous utilisez. Si vous fournissez au modèle des données non optimales, telles que 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 opérations de machine learning (MLOps) pour l'IA générative.