Ce guide du débutant présente comment obtenir des inférences à partir de modèles personnalisés sur Gemini Enterprise Agent Platform.
Objectifs de la formation
Niveau d'expérience sur Gemini Enterprise Agent Platform : débutant
Durée de lecture estimée : 15 minutes
Objectifs d'apprentissage :
- Avantages de l'utilisation d'un service d'inférence géré.
- Fonctionnement des inférences par lot dans Gemini Enterprise Agent Platform.
- Fonctionnement des inférences en ligne dans Agent Platform.
Pourquoi utiliser un service d'inférence géré ?
Imaginez que vous ayez pour tâche de créer un modèle prenant en entrée l'image d'une plante afin de prédire l'espèce. Vous pouvez commencer par entraîner un modèle dans un notebook, en testant différents hyperparamètres et architectures. Une fois votre modèle entraîné, vous pouvez appeler la méthode predict dans le framework de ML de votre choix et tester la qualité du modèle.
Ce workflow est idéal pour les tests, mais lorsque vous souhaitez utiliser le modèle pour obtenir des inférences sur de nombreuses données ou pour obtenir des inférences à faible latence à la volée, vous avez besoin de plus qu'un notebook. Par exemple, supposons que vous essayiez de mesurer la biodiversité d'un écosystème particulier et que, au lieu que des humains identifient et comptent manuellement les espèces de plantes dans la nature, vous voulez utiliser ce modèle de ML pour classer de grands lots d'images. Si vous utilisez un notebook, vous pouvez rencontrer des contraintes de mémoire. En outre, l'obtention d'inférences pour toutes ces données sera probablement un job de longue durée susceptible d'expirer dans votre notebook.
Ou que se passerait-il si vous souhaitiez utiliser ce modèle dans une application où les utilisateurs pourraient importer des images de plantes et les faire identifier immédiatement ? Vous aurez besoin d'un endroit pour héberger le modèle en dehors d'un notebook que votre application peut appeler pour une inférence. De plus, il est peu probable que le trafic vers votre modèle soit constant. Vous aurez donc besoin d'un service capable de s'adapter automatiquement à l'échelle si nécessaire.
Dans tous ces cas, un service d'inférence géré réduira les frictions liées à l'hébergement et à l'utilisation de vos modèles de ML. Ce guide présente la façon d'obtenir des inférences à partir de modèles de ML sur Gemini Enterprise Agent Platform. Notez qu'il existe d'autres personnalisations, fonctionnalités et méthodes d'interface avec le service qui ne sont pas abordées ici. L'objectif de ce guide est de fournir une vue d'ensemble. Pour en savoir plus, consultez la documentation sur les inférences Gemini Enterprise Agent Platform.
Présentation du service d'inférence géré
Agent Platform est compatible avec les inférences par lot et en ligne.
L'inférence par lot est une requête asynchrone. Elle est idéale lorsque vous n'avez pas besoin d'une réponse immédiate et que vous voulez traiter des données accumulées avec une seule requête. Dans l'exemple évoqué dans l'introduction, il s'agirait du cas d'utilisation de caractérisation de la biodiversité.
Si vous souhaitez obtenir des inférences à faible latence à partir des données transmises à votre modèle à la volée, vous pouvez utiliser l'inférence en ligne. Dans l'exemple évoqué dans l'introduction, il s'agirait du cas d'utilisation où vous souhaitez intégrer votre modèle dans une application qui aide les utilisateurs à identifier immédiatement les espèces végétales.
Importer un modèle dans le registre de modèles Gemini Enterprise Agent Platform
Pour utiliser le service d'inférence, la première étape consiste à importer votre modèle de ML entraîné dans Model Registry, un registre qui vous permet de gérer le cycle de vie de vos modèles.
Créer une ressource de modèle
Lorsque vous entraînez des modèles avec le service d'entraînement personnalisé Gemini Enterprise Agent Platform, vous pouvez importer automatiquement votre modèle dans le registre une fois le job d'entraînement terminé. Si vous avez ignoré cette étape ou entraîné votre modèle en dehors de Gemini Enterprise Agent Platform, vous pouvez l'importer manuellement à l'aide de la console Google Cloud ou du SDK Agent Platform pour Python en pointant vers un emplacement Cloud Storage contenant vos artefacts de modèle enregistrés. Le format de ces artefacts de modèle peut être savedmodel.pb, model.joblib, etc., suivant le framework de ML que vous utilisez.
L'importation d'artefacts dans Model Registry de Gemini Enterprise Agent Platform crée une ressource Model, qui est visible dans la console Google Cloud :

Sélectionner un conteneur
Lorsque vous importez un modèle dans Gemini Enterprise Agent Platform Model Registry, vous devez l'associer à un conteneur pour que Gemini Enterprise Agent Platform diffuse les requêtes d'inférence.
Conteneurs prédéfinis
La plate-forme Gemini Enterprise Agent fournit des conteneurs prédéfinis que vous pouvez utiliser pour les inférences. Les conteneurs prédéfinis sont organisés par framework de ML et par version de framework, et fournissent des serveurs d'inférence HTTP que vous pouvez utiliser pour diffuser des inférences avec une configuration minimale. Ils n'effectuent que l'opération d'inférence du framework de machine learning. Par conséquent, si vous devez prétraiter vos données, vous devez le faire avant de lancer la requête d'inférence. De même, tout post-traitement doit avoir lieu après l'envoi de la requête d'inférence. Pour obtenir un exemple d'utilisation d'un conteneur prédéfini, consultez le notebook Diffuser des modèles d'images PyTorch avec des conteneurs prédéfinis sur la plate-forme Agent.
Conteneurs personnalisés
Si votre cas d'utilisation nécessite des bibliothèques qui ne sont pas incluses dans les conteneurs prédéfinis ou si vous souhaitez effectuer des transformations de données personnalisées dans le cadre de la requête d'inférence, vous pouvez utiliser un conteneur personnalisé que vous créez et transférez vers Artifact Registry. Bien que les conteneurs personnalisés permettent une plus grande personnalisation, ils doivent exécuter un serveur HTTP. Plus précisément, le conteneur doit écouter les vérifications de l'activité, les vérifications de l'état et les requêtes d'inférence, et y répondre. Dans la plupart des cas, si elle est possible, l'utilisation d'un conteneur prédéfini est l'option recommandée et la plus simple. Pour obtenir un exemple d'utilisation d'un conteneur personnalisé, consultez le notebook Classification d'image PyTorch sur un seul GPU à l'aide de Vertex Training avec un conteneur personnalisé.
Routines d'inférence personnalisées
Si votre cas d'utilisation nécessite des transformations personnalisées de pré et post-traitement, et que vous ne souhaitez pas avoir à créer ni à gérer de conteneur personnalisé, vous pouvez utiliser les routines d'inférence personnalisées. Les routines d'inférence personnalisées vous permettent de fournir vos transformations de données sous forme de code Python. En arrière-plan, le SDK Agent Platform pour Python crée un conteneur personnalisé que vous pouvez tester localement et déployer sur Gemini Enterprise Agent Platform. Pour obtenir un exemple d'utilisation des routines d'inférence personnalisées, consultez le notebook Routines d'inférence personnalisées avec Sklearn.
Obtenir des inférences par lot
Une fois que votre modèle est dans Gemini Enterprise Agent Platform Model Registry, vous pouvez envoyer une tâche d'inférence par lot à partir de la console Google Cloud ou du SDK Agent Platform pour Python. Vous devrez spécifier l'emplacement des données sources, ainsi que l'emplacement dans Cloud Storage ou BigQuery dans lequel vous souhaitez enregistrer les résultats. Vous pouvez également spécifier le type de machine sur lequel vous souhaitez exécuter cette tâche, ainsi que les accélérateurs facultatifs. Comme le service d'inférences est entièrement géré, Gemini Enterprise Agent Platform provisionne automatiquement les ressources de calcul, effectue la tâche d'inférence et assure la suppression des ressources de calcul une fois la tâche d'inférence terminée. Vous pouvez suivre l'état de vos jobs d'inférence par lot dans la console Google Cloud .

Obtenir des inférences en ligne
Si vous souhaitez obtenir des inférences en ligne, vous devez effectuer l'étape supplémentaire de déploiement de votre modèle sur un point de terminaison Gemini Enterprise Agent Platform.
Cette opération permet d'associer les artefacts de modèle aux ressources physiques pour une diffusion à faible latence et de créer une ressource DeployedModel.

Une fois le modèle déployé sur un point de terminaison, il accepte les requêtes comme n'importe quel autre point de terminaison REST, ce qui signifie que vous pouvez l'appeler depuis une fonction Cloud Run, un chatbot, une application Web, etc. Vous pouvez déployer plusieurs modèles sur un seul point de terminaison et répartir le trafic entre eux. Cette fonctionnalité est utile si vous souhaitez par exemple déployer une nouvelle version de modèle mais que vous ne souhaitez pas diriger immédiatement l'ensemble du trafic vers le nouveau modèle. Vous pouvez également déployer le même modèle sur plusieurs objets.
Ressources pour obtenir des inférences à partir de modèles personnalisés sur Agent Platform
Pour en savoir plus sur l'hébergement et la diffusion de modèles sur Agent Platform, consultez les ressources suivantes ou reportez-vous au dépôt GitHub des exemples Agent Platform.
- Vidéo Obtenir des prédictions
- Entraîner et diffuser un modèle TensorFlow à l'aide d'un conteneur prédéfini
- Diffuser des modèles d'image PyTorch avec des conteneurs prédéfinis sur Agent Platform
- Diffuser un modèle de diffusion stable à l'aide d'un conteneur prédéfini
- Routines d'inférence personnalisées avec Sklearn