Formation de modèles d'apprentissage automatique sur l'ETAA¶
Info
La formation de modèles d'apprentissage automatique implique l'utilisation d'algorithmes pour apprendre des modèles et des relations dans les données. Ce processus implique d'identifier les caractéristiques ou les variables pertinentes pour le problème en question et d'utiliser ces caractéristiques pour effectuer des prédictions ou des classifications.
Pourquoi s'entraîner avec nous ?¶
La formation de modèles d'apprentissage automatique sur Advanced Analytics Workspace (AAW) présente plusieurs avantages.
-
Code Logiciel Ouvert : L'ETAA est une plate-forme de données open source hébergée par Statistique Canada qui offre un accès sécurisé (Protégé B) à une variété de sources de données, y compris les données de recensement, les enquêtes et les dossiers administratifs. Ces données peuvent être utilisées pour former des modèles d'apprentissage automatique et générer des informations susceptibles d'éclairer les décisions politiques et d'améliorer les processus métier.
-
Polyvalent : L'ETAA est conçu pour gérer des ensembles de données volumineux et complexes. Il donne accès à une gamme d'outils d'analyse avancés, dans le langage de votre choix, notamment Python, R et SAS, qui peuvent être utilisés pour prétraiter les données, former des modèles d'apprentissage automatique et générer des visualisations. Étant donné que l'ETAA exploite les technologies cloud, les utilisateurs peuvent augmenter leur puissance de calcul selon leurs besoins*. *
- Sécurisé : L'ETAA est une plateforme sécurisée (Protégée B) qui adhère aux normes les plus élevées en matière de confidentialité et de sécurité des données. Les données peuvent être stockées et traitées sur la plateforme sans risque d'accès non autorisé ou de violation de données.
MLOps et pipelines de données¶
Optimiser les flux de données
Les MLOps et les pipelines de données sont des outils importants utilisés dans le domaine de la science des données pour gérer et optimiser les flux de travail de données.
MLOps¶
MLOps fait référence à l'ensemble de pratiques et d'outils utilisés pour gérer l'ensemble du cycle de vie d'un modèle d'apprentissage automatique. Cela comprend tout, depuis le développement et la formation du modèle jusqu'à son déploiement en production et sa maintenance au fil du temps. MLOps garantit que les modèles d'apprentissage automatique sont fiables, précis et évolutifs, et qu'ils peuvent être mis à jour et améliorés selon les besoins.
Pipelines de données¶
Les pipelines de données sont une série d'étapes qui permettent de déplacer les données d'un système ou d'une application à un autre. Cela inclut la collecte, le nettoyage, la transformation et le stockage des données, ainsi que leur récupération en cas de besoin. Les pipelines de données sont importants pour garantir que les données sont exactes, fiables et accessibles à ceux qui en ont besoin.
Automatisation et fiabilité
Les MLOps et les pipelines de données aident les organisations à gérer le processus complexe consistant à travailler avec de grandes quantités de données et à développer des modèles d'apprentissage automatique. En automatisant ces processus et en garantissant que les données sont exactes et fiables, les organisations peuvent économiser du temps et des ressources tout en prenant de meilleures décisions basées sur des informations basées sur les données.
Pourquoi des MLOps conteneurisés ?¶
Les avantages de l'utilisation d'une approche conteneurisée pour la formation de modèles d'apprentissage automatique avec flux de travail Argo incluent :
-
Reproductibilité : La conteneurisation du modèle d'apprentissage automatique et de ses dépendances garantit que l'environnement reste cohérent d'une exécution à l'autre, ce qui facilite la reproduction des résultats.
-
Évolutivité : Les flux de travail Argo peut orchestrer des tâches parallèles et des flux de travail complexes, ce qui facilite l'évolution du processus de formation selon les besoins.
-
Portabilité : Les conteneurs peuvent être exécutés sur n'importe quelle plate-forme prenant en charge la conteneurisation, ce qui facilite le déplacement du processus de formation vers différents environnements ou fournisseurs de cloud.
-
Collaboration : En transférant le conteneur vers un registre de conteneurs, d'autres utilisateurs peuvent facilement télécharger et utiliser le conteneur à leurs propres fins, ce qui facilite la collaboration sur des projets d'apprentissage automatique.
Lesflux de travail Argo et la conteneurisation offrent une approche puissante et flexible pour la formation de modèles d'apprentissage automatique. En tirant parti de ces outils, les scientifiques des données et les ingénieurs en apprentissage automatique peuvent créer, déployer et gérer des flux de travail d'apprentissage automatique avec facilité et reproductibilité.
Comment former des modèles¶
Il existe de nombreuses façons de former des modèles d’apprentissage automatique et ce n’est pas à nous de dire à qui que ce soit comment procéder. Cela étant dit, nous avons fourni ci-dessous quelques guides sur la façon de former des modèles d'apprentissage automatique à l'aide des outils disponibles sur l'ETAA. Le premier tutoriel concerne la formation d'un modèle simple directement dans un bloc-note JupyterLab. Le deuxième didacticiel suppose que l'utilisateur est plus avancé et souhaite définir un pipeline MLOps pour la formation de modèles à l'aide des flux de travail Argo.
Créer un serveur de bloc-note sur l'ETAA¶
Serveurs bloc-notes
Que vous envisagiez de travailler dans JupyterLab, R Studio ou quelque chose de plus avancé avec les flux de travail Argo, vous aurez besoin du serveur de bloc-notes approprié. Suivez les instructions trouvées ici pour commencer.
Utiliser JupyterLab¶
JupyterLab est populaire
La formation de modèles d'apprentissage automatique avec JupyterLab est une approche populaire parmi les scientifiques des données et les ingénieurs en apprentissage automatique.
Vous trouverez ici les étapes nécessaires pour entraîner un modèle d'apprentissage automatique avec JupyterLab sur AAW. Parce que nous sommes un environnement multilingue, nous avons fait de notre mieux pour fournir des exemples de code dans nos langages les plus populaires, Python
, R
et SAS
.
1. Importez les bibliothèques requises¶
Une fois qu'une session JupyterLab est en cours d'exécution, vous devez importer les bibliothèques requises pour votre modèle d'apprentissage automatique. Cela pourrait inclure des bibliothèques telles que NumPy
, Pandas
, Scikit-learn
, Tensorflow
ou PyTorch
. Si vous utilisez R
, vous aurez besoin de tidyverse
, caret
et janitor
.
libraries.sas | |
---|---|
À propos du code
Les exemples de code que vous voyez dans ce document et dans toute la documentation sont fournis à des fins d'illustration pour vous aider à démarrer vos projets. En fonction de la tâche ou du projet spécifique, d'autres bibliothèques et étapes peuvent être nécessaires.
2. Charger et prétraiter les données¶
Ensuite, vous devez charger et prétraiter les données que vous utiliserez pour entraîner votre modèle d'apprentissage automatique. Cela pourrait inclure le nettoyage des données, l’extraction de fonctionnalités et la normalisation. Les étapes exactes de prétraitement que vous devrez effectuer dépendront de l'ensemble de données spécifique avec lequel vous travaillez, des exigences de votre modèle d'apprentissage automatique et du travail à effectuer.
load_data.py | |
---|---|
3. Divisez les données en ensembles de formation et de test¶
Une fois les données prétraitées, vous devez les diviser en ensembles de formation et de test. L'ensemble de formation sera utilisé pour entraîner le modèle d'apprentissage automatique, tandis que l'ensemble de test sera utilisé pour évaluer ses performances.
train_test.py | |
---|---|
train_test.py | |
---|---|
train_test.sas | |
---|---|
Note
Nous divisons les données en ensembles d'entraînement et de test à l'aide de la fonction train_test_split
de scikit-learn
, qui divise aléatoirement les données en deux ensembles en fonction de la taille de test spécifiée et de la graine aléatoire.
4. Définir et entraîner le modèle d'apprentissage automatique¶
Avec la répartition des données, vous pouvez désormais définir et entraîner votre modèle d'apprentissage automatique à l'aide de l'ensemble de formation. Cela pourrait impliquer la sélection de l’algorithme approprié, le réglage des hyperparamètres et la validation croisée.
``` sas title="train.sas" linenums="1" / Charger l'ensemble de données / proc import datafile="my-dataset.csv" out=mydata dbms=csv replace; run;
/ Diviser l'ensemble de données en train et test / proc surveyselect data=mydata method=srs seed=123 out=selected outall samprate=0.7; strata target_variable; run;
/* Entraîner le modèle */
proc hpforest data=selected;
class _all_;
target target_variable / level=nominal;
partition rolevar=target_variable(test="0" train="1");
input _all_;
forest ntree=100 seed=123;
run;
/* Noter le modèle sur les données de test */
proc hpforest predict testdata=selected out=testout;
run;
/* Imprimer le score de précision sur les données du test */
proc freq data=testout;
tables target_variable*p_target_variable / nocum nocol;
run;
```
5. Évaluer le modèle¶
Après avoir entraîné le modèle, vous devez évaluer ses performances sur l’ensemble de tests. Cela vous donnera une idée des performances du modèle sur de nouvelles données invisibles.
6. Déployer le modèle¶
Enfin, vous pouvez déployer le modèle d'apprentissage automatique formé dans un environnement de production.
Utiliser les flux de travail Argo¶
Meilleures pratiques MLOps
Les flux de travail Argo sont un excellent outil pour tous ceux qui cherchent à mettre en œuvre des pratiques MLOps et à rationaliser le processus de formation et de déploiement de modèles d'apprentissage automatique ou d'autres tâches de science des données telles que ETL.
Flux de travail Argo est un moteur de flux de travail open source natif pour conteneurs permettant d'orchestrer des tâches parallèles sur Kubernetes. Les flux de travail Argo sont implémentés en tant que Kubernetes CRD (Custom Resource Definition). Il est particulièrement adapté aux flux de travail d’apprentissage automatique et de science des données.
Les flux de travail Argo vous permettent de
- Définir des flux de travail où chaque étape du flux est un conteneur.
- Modélisez des flux de travail en plusieurs étapes sous la forme d'une séquence de tâches ou capturez les dépendances entre les tâches à l'aide d'un graphe acyclique dirigé (DAG).
- Exécutez facilement des tâches de calcul intensives pour l'apprentissage automatique ou le traitement des données en une fraction du temps à l'aide de flux de travail Argo sur Kubernetes.
- Exécutez des pipelines CI/CD de manière native sur Kubernetes sans configurer de produits de développement logiciel complexes.
ce qui facilite la gestion de l'ensemble du pipeline d'apprentissage automatique de bout en bout. Avec les flux de travail Argo, vous pouvez facilement créer des flux de travail qui intègrent des tâches telles que le prétraitement des données, la formation de modèles et le déploiement de modèles, le tout dans un environnement Kubernetes.
Voir la section flux de travail argo pour plus de détails.