Intelligence artificielle et apprentissage machine

From Alliance Doc
Revision as of 15:15, 30 July 2019 by Lemc2220 (talk | contribs)
Jump to navigation Jump to search
Other languages:

Pour tirer le maximum de vos applications d'apprentissage machine, il faut connaître certains aspects particuliers des grappes. Ces machines sont beaucoup plus complexes que l'ordinateur local avec lequel vous faites du prototypage. Entre autres, une grappe possède des systèmes de fichiers distribués qui vont d'un type de stockage à un autre de façon transparente. Bien que l'accès à un fichier dans /project donne l'impression de se faire de la même manière que s'il était situé dans le nœud courant, sous le capot les effets sur la performance sont bien différents. Il est donc important de prendre connaissance de la section Gérer vos ensembles de données ci-dessous.

Cette page contient l'information de base pour les nouveaux utilisateurs et des solutions pratiques à certaines difficultés courantes.

Python

Python est un logiciel populaire en apprentissage machine. Prenez connaissance de notre page wiki pour des renseignements importants sur les versions, les environnements virtuels, les nœuds de connexion et de calcul, le multiprocessing, Anaconda, Jupyter, etc.

Information sur les paquets logiciels disponibles

Pour des renseignements sur l'installation et les problèmes fréquents, voyez la page wiki pour chacun des paquets suivants :

Gérer vos ensembles de données

Stockage et gestion de fichiers

Les besoins de nos utilisateurs sont diversifiés; nous offrons donc plusieurs solutions qui vont du stockage local temporaire haute vitesse au stockage à long terme sur différents supports. Pour plus d'information, voyez Stockage et gestion de fichiers.

Ensembles de données composés de plusieurs petits fichiers

En apprentissage machine, il est fréquent d'avoir des ensembles de données composés de centaines et même de milliers de fichiers, par exemple dans le cas des ensembles de données d'images. Chacun des fichiers peut être de petite taille, souvent en deçâ de quelques centaines de kilo-octets et dans ces cas, certains problèmes peuvent survenir :

  • le système de fichiers impose un quota qui restreint le nombre de fichiers,
  • l'application est considérablement ralentie par le transfert des fichiers de /project ou /scratch vers un nœud de calcul.

Avec un système de fichiers distribué, les données devraient être enregistrées dans un même fichier archive; voyez Travailler avec un grand nombre de fichiers.

Calculs de longue durée

Si vos calculs exigent beaucoup de temps, il est recommandé d'utiliser des points de contrôle; par exemple, plutôt que trois jours d'entraînement, on pourrait avoir trois blocs de 24 heures chacun. De cette manière, votre travail ne serait pas perdu en cas de panne et vous pourriez bénéficier d'une meilleure priorisation de vos tâches puisqu'il y a plus de nœuds qui sont réservés pour les tâches courtes. Cette fonctionnalité est intégrée dans la plupart des bibliothèques; si ce n'est pas le cas, voyez Points de contrôle. Vous trouverez des suggestions dans Resoumettre une tâche pour un calcul de longue durée.

Exécution de plusieurs tâches similaires

Dans un des cas suivants :

  • recherche d'hyperparamètres,
  • entraînement de plusieurs variants d'une même méthode,
  • exécution de plusieurs processus d'optimisation de même durée.

vous devriez grouper plusieurs tâches pour n'en former qu'une avec un outil comme GLOST ou GNU Parallel.