
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Launch Vertex AI Workbench instance
/ 30
Create a Dockerfile and add model training code
/ 30
Build the container
/ 20
Run a hyperparameter tuning job on Vertex AI
/ 20
Dans cet atelier, vous allez apprendre à utiliser Vertex AI afin d'exécuter un job de réglage des hyperparamètres pour un modèle TensorFlow. Bien que cet atelier utilise TensorFlow pour le code du modèle, vous pourriez facilement le remplacer par un autre framework.
Cet atelier utilise la toute dernière offre de produits d'IA de Google Cloud. Vertex AI simplifie l'expérience de développement en intégrant toutes les offres de ML de Google Cloud. Auparavant, les modèles entraînés avec AutoML et les modèles personnalisés étaient accessibles depuis des services distincts. La nouvelle offre regroupe ces deux types de modèles mais aussi d'autres nouveaux produits en une seule API. Vous pouvez également migrer des projets existants vers Vertex AI. Pour envoyer un commentaire, consultez la page d'assistance.
Vertex AI comprend de nombreux produits différents qui permettent de gérer les workflows de ML de bout en bout. Cet atelier se concentre sur les produits mis en évidence ci-dessous : l'entraînement, le réglage des hyperparamètres et Notebooks.
Vertex AI propose deux solutions de notebook, Workbench et Colab Enterprise.
Vertex AI Workbench constitue un excellent choix pour les projets où la priorité est donnée au contrôle et à la personnalisation. Il convient particulièrement aux projets élaborés composés de plusieurs fichiers, avec des dépendances complexes. C'est également un bon choix pour un data scientist qui passe d'une station de travail ou d'un ordinateur portable au cloud.
Les instances Vertex AI Workbench sont fournies avec une suite préinstallée de packages de deep learning, assurant la compatibilité avec les frameworks TensorFlow et PyTorch.
Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.
Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.
Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00
) : vous devez pouvoir le terminer dans ce délai.
Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.
Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.
Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.
Cliquez sur Ouvrir la console Google.
Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.
Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
Dans Cloud Console, cliquez sur le menu de navigation > API et services > Bibliothèque.
Recherchez l'API Compute Engine, puis cliquez sur Activer si elle n'est pas déjà activée. Vous en aurez besoin pour créer votre instance de notebook.
Dans Cloud Console, cliquez sur le menu de navigation > API et services > Bibliothèque.
Recherchez l'API Google Container Registry, puis cliquez sur Activer si elle n'est pas déjà activée. Vous l'utiliserez afin de créer un conteneur pour votre job d'entraînement personnalisé.
Dans le menu de navigation () de la console Google Cloud, sélectionnez Vertex AI.
Cliquez sur Activer toutes les API recommandées.
Dans le menu de navigation, cliquez sur Workbench.
En haut de la page "Workbench", vérifiez que vous vous trouvez dans la vue Instances.
Cliquez sur Créer.
Configurez l'instance :
La création de l'instance prend quelques minutes. Une coche verte apparaît à côté de son nom quand elle est prête.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Vous allez envoyer ce job de réglage des hyperparamètres à Vertex en plaçant le code de votre application d'entraînement dans un conteneur Docker et en transférant ce conteneur vers Google Container Registry. Cette approche vous permet de régler les hyperparamètres d'un modèle créé avec n'importe quel framework.
horses_or_humans
et utilisez cd pour y accéder :La première étape de la conteneurisation de votre code consiste à créer un Dockerfile. Vous allez placer dans ce Dockerfile toutes les commandes nécessaires à l'exécution de l'image. Il installera toutes les bibliothèques requises, y compris la bibliothèque cloudml-hypertune, et configurera le point d'entrée du code d'entraînement.
Ce Dockerfile utilise l'image Docker avec GPU de TensorFlow Enterprise 2.9 comme conteneur de deep learning. Les conteneurs de deep learning de Google Cloud sont fournis avec de nombreux frameworks de ML et de data science courants préinstallés.
Une fois cette image téléchargée, ce Dockerfile configure le point d'entrée du code d'entraînement. Vous n'avez pas encore créé ces fichiers. À la prochaine étape, vous allez ajouter le code d'entraînement et de réglage du modèle.
Le contenu de votre répertoire horses_or_humans/
devrait maintenant correspondre à ce qui est indiqué ci-dessous :
Avant de créer le conteneur, examinons le code de plus près. Certains composants sont utilisés spécifiquement pour le service de réglage des hyperparamètres.
Le script importe la bibliothèque hypertune
. Notez que le Dockerfile de l'étape 1 contenait des instructions pour l'installation de cette bibliothèque avec pip.
La fonction get_args()
définit un argument de ligne de commande pour chaque hyperparamètre que vous voulez régler. Dans cet exemple, les hyperparamètres qui seront réglés sont le taux d'apprentissage, la valeur du Momentum dans l'optimiseur et le nombre de neurones dans la dernière couche cachée du modèle, mais n'hésitez pas à en tester d'autres. La valeur transmise dans ces arguments est ensuite utilisée pour définir l'hyperparamètre correspondant dans le code.
À la fin de la fonction main()
, la bibliothèque hypertune
est utilisée pour définir la métrique que vous voulez optimiser. Dans TensorFlow, la méthode Keras model.fit
renvoie un objet History
. L'attribut History.history
est un enregistrement des valeurs de perte d'entraînement et des métriques à des époques successives. Si vous transmettez des données de validation à model.fit
, l'attribut History.history
inclut également les valeurs de perte de validation et des métriques.
Par exemple, si vous aviez entraîné un modèle pendant trois époques avec des données de validation et que vous aviez fourni accuracy
(justesse) comme métrique, l'attribut History.history
ressemblerait au dictionnaire suivant.
Si vous voulez que le service de réglage des hyperparamètres découvre les valeurs qui maximisent la justesse de la validation du modèle, vous définissez la métrique comme dernière entrée (ou NUM_EPOCS - 1
) de la liste val_accuracy
. Vous transmettez ensuite cette métrique à une instance d'HyperTune
. Vous pouvez choisir la chaîne que vous voulez pour hyperparameter_metric_tag
, mais vous devrez la réutiliser ultérieurement lorsque vous lancerez le job de réglage des hyperparamètres.
Cliquez sur Vérifier ma progression pour valider l'objectif.
your-cloud-project
par l'ID de votre projet :gcloud config list --format 'value(core.project)'
dans votre terminal.Maintenant que le conteneur a été transféré vers Container Registry, vous êtes prêt à lancer un job de réglage des hyperparamètres d'un modèle personnalisé.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Cet atelier utilise un entraînement personnalisé avec un conteneur personnalisé de Google Container Registry, mais vous pouvez également exécuter un job de réglage des hyperparamètres avec les conteneurs prédéfinis.
Cliquez sur Entraîner le nouveau modèle pour saisir les paramètres de votre job de réglage des hyperparamètres :
horses-humans-hyptertune
(ou tout autre nom que vous voudriez donner à votre modèle) pour Nom du modèle.À l'étape Conteneur d'entraînement, sélectionnez Conteneur personnalisé :
gcr.io/<your-cloud-project>/horse-human:hypertune
avec le nom de votre propre projet. Laissez les autres champs vides et cliquez sur Continuer.Vous devez ensuite ajouter les hyperparamètres que vous définissez comme arguments de ligne de commande dans le code de l'application d'entraînement. Lorsque vous ajoutez un hyperparamètre, vous devez d'abord en indiquer le nom. Celui-ci doit correspondre au nom d'argument que vous avez transmis à argparse
.
Saisissez learning_rate
pour Nom du paramètre.
Sélectionnez Double pour Type.
Saisissez 0,01
pour Min et 1
pour Max.
Sélectionnez Logarithme pour Scaling.
Cliquez sur OK.
Après avoir ajouté l'hyperparamètre learning_rate
, ajoutez des paramètres pour momentum
et num_neurons
.
Pour momentum :
momentum
pour Nom du paramètre.0
pour Min et 1
pour Max.Pour num_neurons :
num_neurons
pour Nom du paramètre.64 128 512
pour Valeurs.Une fois que vous avez ajouté les hyperparamètres, vous devez fournir la métrique que vous voulez optimiser ainsi que l'objectif. La métrique doit être identique à la valeur que vous avez définie pour hyperparameter_metric_tag dans votre application d'entraînement.
justesse
pour Métrique à optimiser.Le service de réglage des hyperparamètres de Vertex AI effectue plusieurs essais avec votre application d'entraînement en utilisant les valeurs configurées au cours des étapes précédentes. Vous devez fixer une limite pour que le service ne dépasse pas un certain nombre d'essais.
Un plus grand nombre d'essais permet généralement d'obtenir de meilleurs résultats, mais il existe un point de retours décroissants au-delà duquel les essais supplémentaires n'ont que peu ou pas d'effet sur la métrique que vous essayez d'optimiser. Il est recommandé de commencer avec un petit nombre d'essais et d'attendre d'avoir une idée du degré d'impact des hyperparamètres choisis pour passer à un grand nombre d'essais.
Vous devez également définir un nombre maximal d'essais parallèles. L'augmentation du nombre d'essais parallèles a pour effet de réduire le temps nécessaire à l'exécution du job de réglage des hyperparamètres. Toutefois, elle peut réduire l'efficacité globale du job. En effet, la stratégie de réglage par défaut utilise les résultats des essais précédents pour ajuster les valeurs affectées lors des essais suivants. Si vous exécutez un trop grand nombre d'essais en parallèle, certains essais démarreront sans bénéficier du résultat des essais qui sont toujours en cours d'exécution.
À titre de démonstration, vous pouvez définir le nombre maximal d'essais sur 15
et le nombre maximal d'essais parallèles sur 3
. Vous pouvez faire des tests avec des valeurs différentes, mais cela risque d'allonger le temps de réglage et d'augmenter les coûts.
Sélectionnez Par défaut pour Algorithme. Ainsi, c'est avec Google Vizier que sera effectuée l'optimisation bayésienne pour le réglage des hyperparamètres. Pour en savoir plus sur cet algorithme, consultez l'article de blog Hyperparameter tuning in Cloud Machine Learning Engine using Bayesian Optimization.
Cliquez sur Continuer.
Dans Options de calcul et tarifs, ne modifiez pas la région sélectionnée et sélectionnez Déployer vers un nouveau groupe de nœuds de calcul pour Paramètres de calcul.
Configurez le pool de nœuds de calcul 0 comme suit :
100
.Quand il sera terminé, vous pourrez cliquer sur le nom du job et voir les résultats des essais de réglage.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Si vous souhaitez continuer à utiliser le notebook que vous avez créé dans cet atelier, nous vous recommandons de le désactiver quand vous ne vous en servez pas. À partir de l'interface utilisateur de Notebooks dans la console Cloud, sélectionnez le notebook et cliquez sur Arrêter.
Si vous souhaitez supprimer le notebook définitivement, il vous suffit de cliquer sur le bouton Supprimer situé en haut à droite.
Pour supprimer le bucket de stockage, accédez au menu de navigation > Cloud Storage, sélectionnez votre bucket et cliquez sur Supprimer.
Vous savez désormais utiliser Vertex AI pour :
lancer un job de réglage des hyperparamètres pour le code d'entraînement fourni dans un conteneur personnalisé. Vous avez utilisé un modèle TensorFlow dans cet exemple, mais vous pouvez entraîner un modèle créé avec n'importe quel framework à l'aide de conteneurs personnalisés ou prédéfinis. Pour en savoir plus sur les différents composants de Vertex, consultez la documentation Vertex AI.
Une fois l'atelier terminé, cliquez sur End Lab (Terminer l'atelier). Qwiklabs supprime les ressources que vous avez utilisées, puis efface le compte.
Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez le nombre d'étoiles correspondant à votre note, saisissez un commentaire, puis cliquez sur Submit (Envoyer).
Le nombre d'étoiles que vous pouvez attribuer à un atelier correspond à votre degré de satisfaction :
Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.
Pour soumettre des commentaires, suggestions ou corrections, veuillez utiliser l'onglet Support (Assistance).
Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.
Ce contenu n'est pas disponible pour le moment
Nous vous préviendrons par e-mail lorsqu'il sera disponible
Parfait !
Nous vous contacterons par e-mail s'il devient disponible
One lab at a time
Confirm to end all existing labs and start this one