For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/ai-machine-learning/ai-training-train-first-ml-model.md.

AI Training - Tutoriel - Entraînez votre premier modèle ML

Voir en Markdown

Comment construire et entraîner votre premier modèle dans AI Training

Ce tutoriel va vous permettre d'entraîner votre premier modèle dans AI Training.

Qu'est-ce qu'AI Training ?

AI Training vous permet d'entraîner vos modèles facilement, en quelques clics ou quelques commandes. Cette solution exécute votre job d'entraînement sur les ressources cloud de calcul que vous avez choisies (CPU/GPU). Dès que votre job d'entraînement est terminé, le statut du job AI Training passe de Run à Done, ce qui signifie que la facturation s'arrête immédiatement. Vous gagnez ainsi du temps et augmentez la productivité de votre équipe, tout en respectant l'intégrité de vos données sensibles (RGPD).

AI Training est compatible avec les principales applications et frameworks tels que Pytorch, Scikit-learn, TensorFlow, Transformers et bien d'autres !

Plus d'informations sur AI Training sont disponibles ici.

Objectif de ce tutoriel

À la fin de ce tutoriel, vous saurez maîtriser OVHcloud AI Training.

Nous allons vous montrer comment :

  • Envoyer vos données vers l'Object Storage OVHcloud.
  • Lancer votre job d'entraînement et attacher vos données à son environnement, afin que votre modèle puisse y accéder.
  • Suivre la progression de votre job.
  • Télécharger votre modèle dans le cloud afin de le récupérer, une fois entraîné.

Chaque étape sera accompagnée d'un exemple pour vous guider.

Cas d'usage

Nous allons entraîner un classificateur d'images sur le jeu de données Fashion MNIST. Ce jeu de données contient 70 000 exemples d'images d'articles Zalando. Chacune est une image en niveaux de gris de 28x28 pixels, associée à un label parmi 10 classes. Ce jeu de données est disponible sur leur dépôt GitHub, mais vous pouvez le télécharger directement depuis Kaggle. Il s'agit d'un fichier .zip de 72 Mo.

Prérequis

  • Accès à l'
  • Un projet AI Training créé au sein d'un projet Public Cloud sur votre compte OVHcloud
  • Un utilisateur pour AI Training
  • Un script Python qui entraîne un modèle

En pratique

Vous allez suivre différentes étapes pour exporter vos données, entraîner votre modèle et le sauvegarder.

Étape 1 - Envoyer vos données vers l'Object Storage OVHcloud (optionnel)

Cette étape est optionnelle car vous pouvez charger certains jeux de données ouverts via des bibliothèques, des commandes, etc., et vous n'aurez donc pas besoin d'envoyer vos propres données vers le cloud.

Sinon, vous pouvez envoyer vos données (jeu de données, fichiers python et requirements, etc.) vers le cloud, dans l'Object Storage. Cela peut se faire de deux façons : soit depuis l'espace client OVHcloud, soit via la CLI ovhai.

Ces données peuvent être supprimées à tout moment.

1.1 - Envoyer vos données via l'UI (espace client)

Si vous n'êtes pas à l'aise avec les commandes, cette méthode sera plus intuitive pour vous.

Rendez-vous d'abord sur la section Public Cloud d'OVHcloud.

Ensuite, sélectionnez la section Object Storage (dans la catégorie Storage) et créez un nouveau conteneur d'objets en cliquant sur Storage > Object Storage > Créer un conteneur d'objets.

Vous pouvez ici créer le conteneur d'objets qui stockera vos données. Plusieurs types et régions sont disponibles, choisissez les paramètres qui vous conviennent le mieux.

Une fois votre conteneur d'objets créé, vous le verrez dans la liste Object Storage. Cliquez sur celui que vous venez de créer. Vous pourrez alors cliquer sur le bouton Add Objects, qui vous permettra de stocker vos données dans le cloud.

Info

Utiliser le manager pour envoyer vos données peut être très long. Nous vous recommandons d'utiliser l'OVHcloud AI CLI.

Dans l'espace client OVHcloud, vous pouvez envoyer des fichiers mais pas des dossiers. Par exemple, vous pouvez envoyer un fichier .zip pour optimiser la bande passante, puis le décompresser dans votre code. Mais si votre jeu de données est déjà réparti dans plusieurs dossiers, vous devez utiliser l'AI CLI pour les envoyer.

1.2 - Envoyer vos données via la CLI

Pour suivre cette partie, assurez-vous d'avoir installé la CLI ovhai sur votre ordinateur ou sur une instance.

Comme dans l'espace client, vous devrez spécifier la region, le nom de votre conteneur et le chemin où se trouveront vos données. La création de votre conteneur d'objets peut se faire avec la commande suivante :

ovhai bucket object upload <container>@<region> <paths>

Par exemple :

En supposant qu'un fichier nommé my-dataset.zip existe dans votre répertoire de travail actuel, vous pouvez utiliser la commande suivante pour créer un conteneur d'objets nommé fashion_MNIST_dataset, situé dans la région GRA, qui contiendra votre fichier my-dataset.zip.

ovhai bucket object upload fashion_MNIST_dataset@GRA my-dataset.zip

Ce fichier .zip est désormais accessible depuis tous les produits AI d'OVHcloud, avec des permissions en lecture seule (RO) ou en lecture/écriture (RW).

Étape 2 - Lancer votre job d'entraînement et attacher vos données à son environnement

Pour lancer votre job d'entraînement, vous pouvez également utiliser l'espace client OVHcloud ou la CLI ovhai.

2.1 - Lancer un job d'entraînement via l'UI (espace client)

Sélectionnez maintenant la section AI Training (dans la catégorie AI & Machine Learning) et créez votre job en cliquant sur Lancer un job.

Vous devrez ici spécifier une region et une image Docker. Selon le framework que vous utilisez dans votre projet, vous devrez sélectionner l'image Docker qui vous convient le mieux. Cela réduira le nombre d'installations de bibliothèques que vous devrez effectuer. Vous pouvez soit choisir l'une de nos images proposées, soit utiliser la vôtre ! Pour découvrir comment construire votre propre image, consultez cette documentation. Pour envoyer cette image vers un registre et l'utiliser avec AI Training, suivez la documentation sur l'utilisation et la gestion de vos registres.

Dans les deux cas, veillez à mentionner dans un fichier requirements.txt toutes les bibliothèques qui ne sont pas incluses dans l'image sélectionnée. Par exemple, l'image Pytorch ne contient pas la bibliothèque Pandas. Comme notre code l'utilise, nous devrons la mentionner dans notre fichier requirements.txt et l'installer, sinon le job ne s'exécutera pas correctement.

Ensuite, vous pouvez activer le commutateur I want to link volumes of data to the job, pour attacher votre ou vos conteneurs Object Storage à l'environnement de votre job et accéder aux données que vous avez stockées dans le cloud (jeu de données, fichiers python, requirements.txt, etc.).

Si vous n'avez pas créé d'Object Storage, ne vous inquiétez pas, cette étape est optionnelle.

Si vous souhaitez ajouter le vôtre, sélectionnez simplement le conteneur qui contient vos données et spécifiez le répertoire de montage que vous avez mentionné dans votre code Python.

Par exemple, nous chargeons nos données en appelant le dossier /workspace/my_data/my-dataset.zip dans notre code Python. C'est pourquoi nous choisissons /workspace/my_data comme répertoire de montage.

Selon vos besoins, vous pouvez activer ou désactiver le cache et sélectionner la permission souhaitée. Comme nous voulons à la fois lire nos données mais aussi pouvoir extraire le fichier zip (ce qui signifie écrire de nouveaux fichiers) et sauvegarder notre modèle une fois glissé dans ce conteneur d'objets, nous opterons pour la permission Lecture & Écriture sur ce conteneur.

Info

Une bonne pratique consiste à attacher un conteneur avec vos données d'entrée, et à attacher un second conteneur pour y sauvegarder les données de sortie.

Mais comme nous voulons garder ce tutoriel assez simple, nous n'utiliserons qu'un seul conteneur pour nos données.

Ensuite, dans l'étape Commandes Docker, vous pouvez spécifier la commande qui permet d'installer vos bibliothèques et d'exécuter votre script Python, tous deux contenus dans votre conteneur d'objets.

  • Exemple :

En supposant que vous ayez ajouté votre fichier train-first-model.py et votre fichier requirements.txt dans un conteneur que vous avez lié à votre job avec /workspace/my_data comme répertoire de montage, vous pouvez alors utiliser :

-- bash -c 'pip install -r /workspace/my_data/requirements.txt && python /workspace/my_data/train-first-model.py'
Info

Cette fonctionnalité est actuellement en cours de mise à jour. Il est possible que vous rencontriez des problèmes lors de son utilisation. Si c'est le cas, nous vous conseillons d'utiliser l'AI CLI.

Pour finir, il vous suffit de saisir une commande SSH si vous souhaitez accéder au job à distance via SSH, et vous devez spécifier les ressources de votre job (nombre de CPUs ou de GPUs). Une fois tout cela fait, vous pouvez lancer le job en cliquant sur le bouton Créer.

2.2 - Lancer un job d'entraînement via la CLI

Si vous préférez lancer votre job avec la CLI, le principe est identique à la méthode via l'UI. En effet, vous devrez attacher vos volumes de données à un mount directory, spécifier vos ressources (nombre de CPUs ou de GPUs) et votre region, pour les mêmes raisons expliquées ci-dessus.

Un job d'entraînement classique peut être lancé avec la commande suivante :

ovhai job run <registry-address>/<docker_image_name>:<tag-name> \
  	  --gpu <nb_gpus> \
	  --volume <object_storage_name>@<region>/:/workspace/<mount_directory_name>:<permission_mode> \
	  -- bash -c 'pip install -r /workspace/mount_directory_name/requirements.txt && python /workspace/mount_directory_name/python_script.py'
Info

Arguments

<docker_image_name> : choisissez l'image Docker que vous souhaitez utiliser pour créer votre environnement. Vous pouvez obtenir une liste des images de frameworks hébergées par OVHcloud ici. Vous pouvez également utiliser votre propre image Docker.

<nb_gpus> : nombre de GPUs sur lesquels votre job sera exécuté. Vous pouvez également utiliser des CPUs en remplaçant cette ligne par --cpu <nb_cpus>.

--volume : volume que vous souhaitez ajouter à votre job (conteneur d'objets ou dépôt GitHub public).

Vous pouvez ajouter plusieurs volumes à votre job en appelant l'argument --volume plusieurs fois. Vous pouvez également ajouter un dépôt GitHub en tant que volume.

-- bash -c : vous permet de fournir des commandes grâce auxquelles vous pouvez par exemple installer les bibliothèques mentionnées dans votre fichier requirements.txt, et exécuter un script Python.

Si vous avez suivi la partie optionnelle qui vous montre comment stocker vos données (première étape), vous pouvez charger votre volume avec le paramètre --volume. Vous devrez spécifier l'object_storage_name, sa region et son mount_directory.

Selon vos besoins, vous pouvez sélectionner le permission_mode souhaité (lecture seule avec RO, lecture & écriture avec RW, et lecture, écriture & suppression avec RWD). Pour finir, vous pouvez également activer ou désactiver le cache sur votre volume, en ajoutant :cache juste après le permission_mode.

Sinon, vous pouvez supprimer la ligne --volume, car elle n'apportera rien à votre app.

Pour vous donner un exemple concret, voici la commande que nous utiliserons pour lancer notre job, en supposant cette fois que notre my-dataset.zip est contenu dans un conteneur fashion_MNIST_dataset, avec un mount_directory nommé /workspace/my_data, et que notre fichier Python et notre fichier requirements.txt se trouvent dans le dépôt GitHub ovh/ai-training-examples :

ovhai job run ovhcom/ai-training-pytorch \
	  --gpu 1 \
	  --volume fashion_MNIST_dataset@GRA/:/workspace/my_data:RW \
	  --volume https://github.com/ovh/ai-training-examples.git:/workspace/github_repo:RO \
	  -- bash -c 'pip install -r /workspace/github_repo/jobs/getting-started/train-first-model/requirements.txt && python /workspace/github_repo/jobs/getting-started/train-first-model/train-first-model.py'
Info

Quelle que soit la méthode utilisée, veillez à spécifier un chemin de montage par volume. Ils doivent être différents afin de ne pas entrer en conflit.

Étape 3 - Suivre la progression de votre job

Une fois votre job lancé, vous pouvez suivre sa progression (chargement de vos volumes, évolution du statut du job, suivi de vos prints, etc.)

Suivi via l'UI

Cela peut se faire en cliquant sur le nom de votre job, dans AI & Machine Learning > AI Training. Vous y trouverez deux catégories :

  • Job Information : vous y trouverez la progression générale de votre job.

  • Logs : particulièrement utile pour suivre vos prints et comprendre pourquoi votre job n'a pas pu être lancé, en cas d'erreurs. Vous y trouverez une console qui affichera toutes ces informations.

Suivi via la CLI

Une fois votre job lancé, vous obtiendrez de nombreuses informations via la CLI. Deux principales seront utiles : l'Id de votre job AI Training, donné dans les toutes premières lignes (à ne pas confondre avec l'ID des volumes ajoutés), et l'Info URL.

L'Info URL vous permettra de suivre visuellement votre job en direct. Vous verrez la progression du chargement de vos volumes, le statut de votre job qui évolue et passera à Running au moment du lancement.

Attention : lorsque le job est en cours d'exécution, l'option auto-refresh de la page Info URL est automatiquement désactivée. Pensez à la réactiver si vous voulez voir quand votre job sera terminé et passera au statut Done.

Comme mentionné précédemment, les logs sont utiles pour suivre et comprendre la progression de votre job. Pour les consulter, utilisez la commande suivante :

ovhai job logs <job_id>

Si vous n'êtes pas présent lorsque le job se termine et passe à Done, ne vous inquiétez pas, la facturation s'arrête automatiquement !

Étape 4 - Télécharger le modèle entraîné

Nous pouvons maintenant télécharger le modèle entraîné, à nouveau de deux façons (UI/CLI).

Téléchargement via l'UI

Cliquez simplement sur votre conteneur d'objets comme si vous vouliez encore y ajouter de nouveaux fichiers. Cela vous permettra de voir tous les fichiers qu'il contient. Vous devriez y trouver votre modèle entraîné, que vous pouvez télécharger en cliquant sur le bouton ....

Téléchargement via la CLI

Si vous préférez utiliser l'AI CLI, vous devrez utiliser la commande suivante :

ovhai bucket object download [OPTIONS] <BUCKET> [OBJECTS]...
Info

Arguments

<BUCKET> : container@data_store. Nom et région du conteneur depuis lequel télécharger.

[OBJECTS]... : nom(s) du ou des objet(s) à télécharger.

Pour plus d'informations sur cette commande, vous pouvez utiliser :

ovhai bucket object download --help

Par exemple, dans notre cas, nous utiliserons :

ovhai bucket object download fashion_MNIST_dataset@GRA model.net

Aller plus loin

  • Si vous souhaitez déployer votre modèle dans une app Python, découvrez AI Deploy en suivant ce tutoriel.
  • Si vous souhaitez en savoir plus sur Docker, consultez ce tutoriel.

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Votre avis nous intéresse !

N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :

Cette page vous a-t-elle aidé ?