Ceci est un guide étape par étape sur l'utilisation de l'AutoML, en particulier Auto-sklearn, sur Qarnot avec une intervention minimale de l'utilisateur, en utilisant un Jupyter Notebook Binder comme interface utilisateur graphique. Binder est un service gratuit d'hébergement de Jupyter Notebook/Lab qui permet à l'utilisateur de partager des notebooks avec d'autres personnes via un simple lien.
Nous vous encourageons à lire la documentation AutoML autonome pour mieux comprendre le fonctionnement de ce logiciel.
Version
- Version : v0.12.5
- Année de sortie : 2021
Si une autre version vous intéresse, veuillez nous envoyer un courriel à qlab@qarnot.com.
Prérequis
Avant de démarrer un calcul avec le SDK Python, quelques étapes sont nécessaires :
- Récupérer le jeton d'authentification
- Installer le SDK Python de Qarnot (ici)
Note : En plus du SDK Python, Qarnot fournit des SDK C# et Node.js ainsi qu'une ligne de commande.
Cas de test
Les données présentées dans ce tutoriel sont les Données de Localisation pour l'Activité d'une Personne (Localization Data for Person Activity). Elles contiennent des enregistrements de cinq personnes effectuant différentes activités. Chaque personne portait quatre capteurs (tags) tout en effectuant le même scénario cinq fois. Le problème consiste à classer le type d'activité, parmi 11 types différents (marcher, tomber ; s'asseoir, etc...), pour chaque entrée, en fonction des données de capteurs collectées. Vous pouvez télécharger les données à partir de ce lien.
Contrairement au tutoriel AutoML lié ci-dessus, il s'agit ici d'un problème de classification multi-classes, c'est-à-dire que chaque entrée de données peut avoir l'une des 11 valeurs différentes pour le type d'activité. Ceci s'oppose à une classification binaire où vous n'avez que deux classes à prédire (par exemple, classer des images comme chien ou chat). Il s'agit d'un problème d'apprentissage automatique complètement différent utilisant exactement le même logiciel.
Lancement du cas de test
Une fois que vous avez téléchargé l'ensemble de données, tout ce que vous avez à faire est de cliquer sur le lien suivant pour accéder au Jupyter Notebook hébergé sur Binder.
- Note : Cela peut prendre quelques minutes, selon si le notebook a été lancé récemment ou s'il y a une file d'attente pour le lancement de Binder.
- La page peut occasionnellement ne pas se charger correctement (surtout si elle n'a pas été utilisée pendant un certain temps). Si cela vous arrive, vous pouvez simplement actualiser la page ou la relancer une deuxième fois, ce qui ne devrait prendre que quelques secondes.
Une fois que le notebook est en cours d'exécution, vous devriez voir cette page chargée dans votre navigateur.
Vous pouvez voir qu'il y a un certain nombre de champs sur la page.
Paramètres de base
- Champ Mot de passe pour votre jeton secret Qarnot.
- Bouton pour téléverser les données sur lesquelles vous souhaitez exécuter la classification (prend en charge uniquement les fichiers
.csv
pour l'instant). Pour ce cas de test, assurez-vous de téléverser l'ensemble de données lié ci-dessus, phpH4DHsK.csv
. - Une fois que vous avez téléversé votre fichier de données, un menu déroulant colonne cible sera disponible avec les noms des colonnes de l'ensemble de données.
- Comme mentionné dans le notebook, seul le premier paramètre (colonne cible) doit être défini par l'utilisateur. Les autres sont facultatifs et ont des valeurs par défaut. Pour ce cas de test, assurez-vous qu'il est défini sur
Class
dans le menu déroulant.
- Noms de tâche et de bucket facultatifs.
- Nombre de nœuds dans le cluster vous permet de spécifier le nombre de processeurs que vous souhaitez utiliser pour votre tâche d'entraînement Auto-sklearn.
- Deux des paramètres qu'un utilisateur pourrait vouloir modifier sont :
- Temps d'entraînement total : Le temps total (en minutes) alloué à Auto-sklearn pour cette tâche d'entraînement. Après quoi l'entraînement s'arrêtera et les résultats seront renvoyés.
- Temps d'entraînement par exécution : Auto-sklearn entraîne plusieurs modèles en parallèle dans la limite de temps donnée. Ce paramètre régit la limite de temps pour chaque modèle individuel. Il peut être fixé à environ 10 % du temps total pour les entraînements plus longs (>60 minutes) et plus pour les entraînements plus courts (~33 % pour < 60 minutes). Il n'y a pas de règle stricte pour cela, et l'utilisateur devrait expérimenter différentes valeurs.
- Pour ce cas d'usage, vous pouvez les laisser à leurs valeurs par défaut.
Paramètres facultatifs
- Comme leur nom l'indique, ce sont des paramètres facultatifs (un peu plus techniques) qui ont déjà des valeurs par défaut et peuvent être ignorés complètement. Cependant, n'hésitez pas à expérimenter différentes valeurs si vous le souhaitez.
- Nombre de plis de validation croisée (Number of cross validation folds) dicte le nombre de fois où vos données seront divisées et utilisées pour l'entraînement/la validation de vos modèles. Par exemple, s'il est défini sur 3, deux tiers de vos données seront utilisés pour l'entraînement et un tiers sera utilisé pour la validation (évaluation des performances des hyper-paramètres du modèle).
- Taille maximale de l'ensemble (Maximum ensemble size) indique le nombre maximum de modèles qui peuvent composer votre ensemble final.
- Nbest de l'ensemble (Ensemble nbest) est utilisé pour définir le nombre de modèles à conserver à partir de cet ensemble. Par exemple, ne conserver que les 10 meilleurs modèles.
- Note concernant les estimateurs et les pré-processeurs à inclure/exclure :
- Les quatre derniers champs sont des sélections multiples, c'est-à-dire que vous pouvez sélectionner plusieurs entrées en utilisant
shift
et/ou ctrl
. - Selon la documentation de l'API Auto-sklearn, les paramètres d'inclusion et d'exclusion sont incompatibles l'un avec l'autre. Cela signifie qu'un seul doit être défini. Par exemple, vous ne pouvez pas inclure l'estimateur
Adaboost
et exclure d'autres estimateurs, car ils sont déjà exclus en définissant le premier paramètre d'inclusion.
Une fois que tous les paramètres ont été définis, vous pouvez lancer la tâche sur Qarnot en cliquant simplement sur le bouton Lancer l'entraînement sur Qarnot ! (Start Training on Qarnot!).
Résultats
Vous obtiendrez une progression en direct des différents états de la tâche. Une fois l'entraînement terminé, vous pouvez cliquer sur le bouton Afficher les sorties (Display outputs) pour visualiser les graphiques générés par l'entraînement (une matrice de confusion et un tracé de la précision au fil du temps).
Si vous le souhaitez, vous pouvez générer un lien pour télécharger un fichier zip contenant toutes les sorties de votre tâche. Principalement les graphiques que vous voyez ci-dessus, le modèle entraîné, et divers journaux (logs) avec des métriques de performance détaillées.
Il est également possible de visualiser ces résultats à partir de votre explorateur de bucket en sélectionnant le bucket automl-binder-out
.
Conclusion
C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et nous vous aiderons avec plaisir !