
Les leçons d’apprentissage automatique que j’ai apprises ce mois-ci
en apprentissage automatique, ce sont les mêmes.
Coder, attendre les résultats, les interpréter, revenir au codage. De plus, quelques présentations intermédiaires de ses progrès. Mais le fait que les choses soient essentiellement les mêmes ne signifie pas qu’il n’y a rien à apprendre. Bien au contraire ! Il y a deux ou trois ans, j’ai commencé à prendre l’habitude quotidienne d’écrire les leçons que j’ai apprises de mon travail de ML. En repensant à certaines des leçons de ce mois-ci, j’ai trouvé trois leçons pratiques qui se démarquent :
- Utiliser les documents README pour vous-même
- Demander des tranches MIG au lieu de GPU complets
- Mouvements d’arrosage tout au long de la journée
Gardez un README – pour votre futur moi
La plupart des README sont rédigés en pensant à d’autres personnes. Ils sont là pour intégrer de nouveaux collaborateurs ou pour rendre un dépôt open source utilisable par des inconnus.
Écrivez-en un pour vous aussi, surtout pour votre avenir soi.
Lorsque vous êtes au milieu d’un projet, tous les chemins, commandes et paramètres subtils vivent dans votre tête. Après une pause, pas tellement. J’ai rencontré ce problème récemment lorsque j’ai dû préparer une mise à jour pour un article. Dans la recherche ML, les révisions prennent souvent des mois. Pendant ce temps, vous passez au projet suivant avec de nouveaux ensembles de données, un nouveau code, de nouvelles conventions. Lorsque la revue arrive enfin, vous revenez à l’ancien projet et… passez une demi-journée à reconstituer quel script a produit quelle figure.
C’est beaucoup de stress si l’échéance approche bientôt.
Se préparer à son propre oubli fait partie du travail. Un petit README évite un gros mal de tête.
Que capturer (pour vous)
Gardez-le pratique. Votre futur moi ne veut pas de prose ; ils veulent le « comment » :
- Démarrage rapide du projet. Configuration de l’environnement, version exacte de Python, fichier env ou
conda/pipcommandes. - Emplacements des données. Où vivent les données brutes et traitées ; comment télécharger, mettre en cache et somme de contrôle. Notez tout pièges (par exemple, « les tuiles NDVI sont retournées sud-nord après le rééchantillonnage », comme indiqué dans mes anciens articles).
- Reproduire les résultats. Une commande par artefact : figures, tableaux et points de contrôle.
- Formation et évaluation. Les commandes exactes pour exécuter les principales expériences ; comment reprendre ; comment planter des graines.
- Recherche d’hyperparamètres. La commande que vous avez réellement utilisée, avec des plages ; où les résultats sont enregistrés.
- Pièges courants. Tout ce que vous savez, vous l’oublierez (variables d’environnement requises, indicateurs GPU, conventions de dénomination de fichiers).
- Journal des modifications. Puces d’une seule ligne présentant des changements significatifs.
Un modèle minimal et générique que vous pouvez adapter à tous les projets :
# <Project Title>
## Quickstart
# env
conda create -n proj python=3.10 -y
conda activate proj
pip install -r requirements.txt
## Data
# download & preprocess
python tools/download_data.py --out data/raw
python tools/preprocess.py --in data/raw --out data/processed
## Train
python train.py --cfg cfgs/base.yaml --seed 42
## Evaluate
python eval.py --ckpt runs/exp123/best.ckpt --split test
## Reproduce Figures
python scripts/fig_1.py # outputs to figs/fig_1.png
python scripts/tab_2.py # writes tables/tab_2.csv
## Hyperparameter Search
python sweep.py --study local.pkl --n-trials 100
## Notes / Pitfalls
- Requires CUDA 12.1
- Set `WANDB_MODE=offline` if no internet
Tranches MIG pour une planification rapide
La formation de la génération actuelle de grands modèles de langage nécessite des centaines (ou des milliers) de GPU haut de gamme. Mais la plupart des travaux quotidiens de ML ne nécessitent pas de modèles à l’échelle LLM. De nombreux problèmes sont résolus avec des CNN compacts ou des petits MLP – et ceux-ci ne nécessitent pas un GPU A100/H100 complet.
Demander un GPU entier pour un petit modèle gaspille des ressources et vous place au fond de la file d’attente. Je l’ai réappris à mes dépens ce mois-ci : j’entraînais un MLP 4 couches et des âges d’attente à programmer. Dans mes demandes de planification, j’ai demandé un GPU haut de gamme complet. Bien entendu, ceux-ci sont très demandés par les emplois qui en ont réellement besoin (comme la mise au point des LLM).
Une fois que je suis passé à une tranche MIG, les tâches ont démarré immédiatement et ma vitesse d’itération a bondi.
Qu’est-ce que MIG et pourquoi l’utiliser ?
MIG (GPU multi-instances) vous permet de diviser un GPU NVIDIA récent en plusieurs « tranches » isolées. Un gros GPU devient jusqu’à sept GPU virtuels plus petits, et la VRAM complète est répartie entre ces tranches. Essentiellement, chaque tranche est un GPU plus petit. Et pour de nombreuses charges de travail, ces petites tranches sont largement suffisantes.
Il y a un avantage supplémentaire : moins de gens demandent des tranches (parce qu’ils ne sont pas au courant de l’opportunité), afin que les planificateurs puissent s’adapter immédiatement à votre travail. Cela vous permet de parcourir vos modèles plus rapidement, réduisant ainsi le temps nécessaire pour obtenir de bons résultats.
Pour l’appliquer en pratique
- Vérifiez la disponibilité. Demandez aux administrateurs de votre cluster ou consultez la documentation du planificateur pour connaître les noms de partition MIG (par exemple,
1g.10gb,2g.20gb). - Adaptez votre demande. Commencez petit. En cas de MOO VRAM, augmentez la taille. N’utilisez pas par défaut des GPU complets.
- Mémoire de profil précoce. Exécutez un petit lot pour lire la VRAM maximale ; choisissez la plus petite tranche qui laisse environ 10 à 20 % de marge.
- Modèlez votre travail. Conservez un script de travail pour MIG et un pour les GPU complets ; changer par drapeau.
Combattre la position assise prolongée par le mouvement
La plupart des travaux informatiques sont effectués devant un ordinateur. Nous avons tous remarqué que plus nous passons de temps, plus notre posture devient molle. Nous sommes arrondis vers l’avant; tout le travail se fait devant nous*.
Ce n’est pas une bonne position à occuper pendant longtemps, mais c’est assez courant de nos jours. Pour les utilisateurs de ML, les ordinateurs sont notre ensemble d’outils et nous devons (devrons) passer beaucoup de temps avec cet ensemble d’outils.
Heureusement, nous n’avons pas besoin de passer du temps dans une mauvaise posture lorsque nous travaillons sur un écran (non, ces deux-là ne sont pas liés par définition).
Je m’en suis rendu compte (encore une fois, car il me semble retomber dans de vieilles habitudes) ce mois-ci : des heures de lecture, de codage et de réunions ont tiré mes épaules vers l’avant et verrouillé le haut du dos. Puis, après quelques jours de lecture intensive de papier, mes épaules m’ont rappelé de changer quelque chose.
Il s’est avéré que la solution était simple et ne nécessite pas de salle de sport ni d’entraînement complet. Cela nécessite juste postes alternés et collations avec de brefs mouvements.
J’ai rassemblé un petit programme, dont j’ai utilisé des parties tout au long de la journée (consultez YouTube pour découvrir l’un de ces exercices si vous ne les connaissez pas. C’est une méta-connaissance qui pourrait vous aider à faire votre travail mieux, plus longtemps et en meilleure santé) :
- Réunions audio uniquement : levez-vous et marchez. Si vous devez rester près du bureau, installez-vous dans un position divisée (un pied en avant) pour ouvrir les hanches.
- Réinitialisations de deux minutes (par exemple, après une pause-café ou en sortant de l’imprimante, etc.):
- Séparations de bande ou tractions de visage (10 à 15 répétitions)
- Étirement des pectoraux du mur (30 à 45 secondes de chaque côté)
- Étirement des muscles fléchisseurs de la hanche / étirement du canapé (30 à 45 s de chaque côté)
- Blocs de lecture debout : imprimer un article ou lire sur une tablette debout ; alterner les blocs debout et assis.
Au-delà, j’ai constaté qu’une courte séance matinale améliore la sensation de mes épaules et améliore la concentration tout au long de la journée – un bonus bienvenu, car le travail de ML exige de la concentration :
- 5 min de cardio facile (marcher ou monter les escaliers)
- 5 min de mobilité (rotations thoraciques, cercles d’épaules, maintien de squat profond)
- 5 min de force légère (fentes, pompes contre le bureau, rangées de bandes)
* Un argument souvent évoqué : tout le travail n’est-il pas fait devant nous ? Ou, en d’autres termes : quel métier nous oblige à travailler les mains derrière nous ? C’est vrai, à l’exception peut-être des gymnastes, pratiquement tous les travaux se déroulent devant nous. Après tout, c’est là que sont nos yeux ! Mais : les métiers non informatiques connaissent des mouvements diversifiés tout au long de la journée : saisir quelque chose sur une étagère, traîner quelque chose, etc. C’est l’alternance qui compte.



