Ce guide du débutant est une introduction à l'obtention d'inférences à partir de modèles personnalisés sur Gemini Enterprise Agent Platform.
Objectifs de la formation
Niveau d'expérience avec 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 devez créer un modèle qui prend en entrée une image d'une plante et prédit l'espèce. Vous pouvez commencer par entraîner un modèle dans un notebook, en essayant différents hyperparamètres et architectures. Une fois que vous disposez d'un 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. Supposons, par exemple, que vous essayez de mesurer la biodiversité d'un écosystème particulier et qu'au lieu de demander à des humains d'identifier et de compter manuellement les espèces végétales dans la nature, vous souhaitez 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 faire si vous souhaitez utiliser ce modèle dans une application où les utilisateurs peuvent importer des images de plantes et les identifier immédiatement ? Vous aurez besoin d'un emplacement 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 d'effectuer un autoscaling si nécessaire.
Dans tous ces cas, un service d'inférence géré réduira les difficultés liées à l'hébergement et à l'utilisation de vos modèles de ML. Ce guide constitue une introduction à l'obtention d'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 de 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 abordé dans l'introduction, il s'agirait du cas d'utilisation de la caractérisation de la biodiversité.
Si vous souhaitez obtenir des inférences à faible latence à partir de données transmises à votre modèle à la volée, vous pouvez utiliser l'inférence en ligne. Dans l'exemple abordé dans l'introduction, il s'agirait du cas d'utilisation dans lequel vous souhaitez intégrer votre modèle dans une application qui aide les utilisateurs à identifier immédiatement les espèces végétales.
Importer le modèle dans Vertex AI Model Registry.
Pour utiliser le service d'inférence, vous devez d'abord importer votre modèle de ML entraîné dans Gemini Enterprise Agent Platform Model Registry. Il s'agit d'un registre dans lequel vous pouvez 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 Google Cloud console 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 Vertex AI Model Registry crée une ressource Model, qui est visible dans la Google Cloud console :

Sélectionner un conteneur
Lorsque vous importez un modèle dans Vertex AI 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
Gemini Enterprise Agent Platform provides 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, donc 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 se produire après l'exécution 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'image PyTorch avec des conteneurs prédéfinis sur Agent Platform.
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 des 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 Vertex AI Model Registry, vous pouvez envoyer une tâche d'inférence par lot à partir de la Google Cloud console 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érence 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 tâches d'inférence par lot dans la Google Cloud console.

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
DeployedModelressource.

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