Utilisez le Notebook ou VSCode intégré dans DSW (Data Science Workshop) pour développer, entraîner et déployer des modèles d'apprentissage profond dans le cloud. Cette rubrique utilise la reconnaissance de chiffres manuscrits MNIST comme exemple pour illustrer le flux de travail complet.
La reconnaissance de chiffres manuscrits MNIST est une tâche classique d'introduction à l'apprentissage profond. L'objectif est d'entraîner un modèle capable de reconnaître 10 chiffres manuscrits (de 0 à 9).
Prérequis
Vous devez disposer d'un compte Alibaba Cloud ayant activé PAI et créé un espace de travail. Si vous n'avez pas encore activé PAI, accédez à PAI console, sélectionnez la région cible dans le coin supérieur gauche de la page, puis procédez à l'autorisation en un clic et à l'activation du produit.
Facturation
Cette rubrique utilise des groupes de ressources publics pour créer une instance DSW et un service de modèle EAS, facturés selon le mode paiement à l'utilisation. Pour plus de détails sur la facturation, consultez les rubriques Facturation DSW et Facturation EAS.
Créer une instance DSW
-
Accédez à la page DSW.
Accédez à PAI console.
Sélectionnez la région cible dans le coin supérieur gauche de la page.
Dans le volet de navigation de gauche, cliquez sur Workspaces pour accéder à l'espace de travail cible.
Dans le volet de navigation de gauche, choisissez .
-
Sur la page de l'assistant Configure Instance, configurez les paramètres suivants et conservez les valeurs par défaut pour les autres.
Resource Type : sélectionnez Public Resources (paiement à l'utilisation).
-
Instance Type : sélectionnez
ecs.gn7i-c8g1.2xlarge.Si ce type d'instance n'est pas disponible, vous pouvez sélectionner une autre instance GPU.
-
Image config : sélectionnez Alibaba Cloud Image et recherchez l'image
modelscope:1.26.0-pytorch2.6.0-gpu-py311-cu124-ubuntu22.04.Nous vous recommandons d'utiliser la même image afin d'éviter les problèmes de compatibilité d'environnement.
-
Mount storage : permet de persister les fichiers de développement de modèle. Cette rubrique utilise Object Storage Service (OSS). Cliquez sur OSS, puis sur l'icône
, sélectionnez un Bucket et créez un répertoire (par exemple, pai_test).Si aucun bucket n'est disponible dans la région actuelle, suivez ces étapes pour en créer un :
Uri :
oss://**********oss-cn-hangzhou-internal.aliyuncs.com/pai_test/Mount Path :
/mnt/data/
-
Cliquez sur OK pour créer l'instance.
Si le démarrage de l'instance échoue, consultez la rubrique Créer une instance DSW pour résoudre le problème.
Développer un modèle dans DSW
Dans la liste des instances, cliquez sur Open pour accéder à l'environnement de développement DSW. Sur la page du lanceur, cliquez sur JupyterLab pour créer un environnement de développement Notebook.
-
Rédigez le code du modèle. Le code d'entraînement MNIST est fourni : téléchargez mnist.ipynb, puis cliquez sur l'icône
dans le coin supérieur gauche du Notebook pour importer le fichier.
-
Entraînez le modèle. Ouvrez
mnist.ipynb, localisez la cellule de code d'entraînement, puis cliquez sur l'icône
pour l'exécuter. Le code télécharge automatiquement le jeu de données MNIST dans le répertoire dataSetet enregistre le modèle entraîné dans le répertoireoutput. L'entraînement dure environ 10 minutes.

Le processus d'entraînement affiche la précision sur l'ensemble de validation, qui reflète la capacité de généralisation du modèle. Dans cet exemple, la précision sur l'ensemble de validation atteint 98 %. Vous pouvez passer aux étapes suivantes.
-
Consultez les courbes d'entraînement. Exécutez la cellule suivante et cliquez sur l'URL TensorBoard
http://localhost:6006/.
TensorBoard affiche les courbes train_loss (perte d'entraînement) et validation_loss (perte de validation).

Après avoir consulté les courbes, cliquez sur l'icône
dans la cellule pour arrêter TensorBoard. Si TensorBoard n'est pas arrêté, les cellules suivantes ne peuvent pas être exécutées. -
Testez le modèle. Exécutez la cellule suivante pour afficher 20 images de test avec leurs étiquettes réelles et les prédictions du modèle.

Exemple de sortie :

-
Persistance des fichiers de modèle. Cette rubrique utilise des groupes de ressources publics pour créer l'instance DSW, et les fichiers sont stockés sur le disque cloud gratuit. Si l'instance est arrêtée pendant plus de 15 jours, le contenu du disque cloud est automatiquement effacé. Copiez les fichiers de modèle vers OSS pour une utilisation ultérieure avec le déploiement PAI-EAS.

Accédez à la console OSS pour consulter les fichiers copiés :

Une fois le développement du modèle terminé, vous pouvez déployer le modèle en tant que service en ligne. Consultez la section Déployer le service de modèle avec EAS.
Cette rubrique utilise des ressources publiques pour créer l'instance DSW, qui est facturée selon le mode paiement à l'utilisation. Lorsque vous n'utilisez pas l'instance, arrêtez ou supprimez l'instance depuis la page de liste des instances afin d'éviter des frais continus.
Déployer le service de modèle avec EAS
EAS (Elastic Algorithm Service) vous permet de déployer des modèles entraînés en tant que service d'inférence en ligne ou application web IA. EAS prend en charge des ressources hétérogènes et combine des fonctionnalités telles que la mise à l'échelle automatique, les tests de charge en un clic, le déploiement canari et la surveillance en temps réel pour garantir la stabilité du service dans des scénarios à forte concurrence, tout en réduisant les coûts.
-
Rédigez le code du service web du modèle et copiez-le vers OSS. Le code du service web et les commandes de copie sont fournis. Exécutez les cellules suivantes.

-
(Facultatif) Vérifiez le service web dans DSW. Exécutez les cellules suivantes pour installer les dépendances et démarrer le service.

Testez le service. Sur la page du lanceur, cliquez sur VSCode pour accéder à l'environnement de développement. Cliquez sur
request_web.pydans le volet de gauche, puis faites un clic droit et choisissez Run Python > Run Python File in Terminal pour exécuter le code. Le résultat suivant s'affiche :{"prediction": 7}RemarquePour accéder au service web dans DSW via Internet, vous devez configurer VPC, NAT Gateway et EIP. Pour plus de détails, consultez la rubrique Accéder aux services d'une instance via le réseau public.
-
Créez un service EAS. Dans le volet de navigation de gauche de la console PAI, cliquez sur Elastic Algorithm Service (EAS) > Deploy Service > Custom Deployment.
Configurez les paramètres suivants et conservez les valeurs par défaut pour les autres :
Deployment Method : Image-based Deployment
-
Image Configuration : sélectionnez Image Address et collez l'adresse de l'image utilisée par DSW.
DSW a vérifié que cette image peut exécuter correctement le code du modèle. L'utilisation de la même image pour le déploiement évite les problèmes d'environnement.

-
Mount storage : les fichiers de modèle et le code du service web ont été copiés vers OSS. Cliquez sur OSS et sélectionnez le chemin correspondant.
Uri : oss://*/pai_test/
Mount Path : /mnt/data/
Command to Run :
web.pya été monté sur/mnt/data/. Ajustez le chemin. La commande d'exécution est :python /mnt/data/web.pyPort Number : saisissez le numéro de port
9000utilisé parweb.py.Third-party Library Settings : l'image sélectionnée n'inclut pas la bibliothèque bottle. Ajoutez
bottleici.Resource Type : sélectionnez Public Resources. Pour Instance Type, sélectionnez
ecs.gn7i-c8g1.2xlarge.-
Configure a system disk : définissez la taille sur 20 Go.
L'image est volumineuse. Un espace insuffisant sur le disque système entraîne des échecs de démarrage de l'instance. Nous vous recommandons de définir la taille sur 20 Go ou plus.
Cliquez sur Deploy pour créer le service. La création du service prend environ 5 minutes. Le service est déployé lorsque son statut passe à Running.
Obtenez les informations d'appel. Sur la page des détails du service, cliquez sur View Endpoint Information pour obtenir le Internet Endpoint et le Token.
-
Appelez le service. Remplacez le Internet Endpoint et le Token dans le code suivant par les valeurs réelles, puis exécutez le code.
import requests """ Test image URLs: label is 7 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg label is 2 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_2_No_1.jpg label is 1 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_1_No_2.jpg label is 0 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_0_No_3.jpg label is 4 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_4_No_4.jpg label is 5 http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_9_No_5.jpg """ image_url = 'http://aliyun-document-review.oss-cn-beijing.aliyuncs.com/dsw_files/mnist_label_7_No_0.jpg' # Download the image as binary data img_response = requests.get(image_url, timeout=10) # Automatically check whether the request succeeded based on the status code img_response.raise_for_status() img_bytes = img_response.content # Replace <EAS_TOKEN> in the header with the actual token # In production, we recommend that you set the token as an environment variable to prevent sensitive information leaks. # For more information about how to configure environment variables, see: https://www.alibabacloud.com/help/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems headers = {"Authorization": "Token"} # Send the binary data as the body of a POST request to the model service resp = requests.post('Call URL/predict_image', data=img_bytes, headers=headers) print(resp.json())Résultat :
{"prediction": 7}
Cette rubrique utilise des ressources publiques pour créer le service EAS, qui est facturé selon le mode paiement à l'utilisation. Lorsque vous n'utilisez pas le service, arrêtez ou supprimez le service depuis la page de liste des services afin d'éviter des frais continus.
Références
Pour résoudre les problèmes de démarrage de DSW, consultez la rubrique Créer une instance DSW.
Pour la facturation de DSW, consultez la rubrique Facturation DSW.
Pour les fonctionnalités principales de DSW, consultez la rubrique Présentation de DSW.
Pour accéder aux services web DSW via Internet, consultez la rubrique Accéder aux services d'une instance via le réseau public.
Pour les fonctionnalités principales d'EAS, consultez la rubrique Présentation d'EAS.
