Vérifier les exemples et ce que la perte représente
Commencez par afficher quelques entrées transformées et leurs cibles. Vérifiez le découpage, le padding, les masques et les labels réellement transmis à la fonction de perte. En génération, une instruction peut être présente dans l’entrée sans devoir contribuer au même objectif que la réponse. Pour une classification, une erreur de correspondance entre numéro et classe peut laisser une perte calculable tout en entraînant la mauvaise tâche.
Isolez un très petit sous-ensemble pour contrôler la mécanique, pas pour annoncer une généralisation. Une boucle peut-elle apprendre ces exemples, produire des valeurs finies et retrouver les bons identifiants ? Si elle échoue, une longue location ne résout pas le diagnostic. Gardez ensuite apprentissage, validation et test séparés par l’unité qui évite les fuites : conversation, patient, document source ou période selon votre projet.
Passer une porte de contrôle à chaque phase
Le pilote doit traverser toutes les opérations de la campagne. Le premier pas qui alloue un état d’optimiseur peut différer des suivants. Une évaluation sur des séquences plus longues peut produire le plus grand pic. Une sauvegarde ou un export peut également demander de la mémoire et du temps. Ne concluez donc pas à partir du seul chargement des poids.
Conservez une ligne par phase avec paramètres d’entrée, compteur mémoire, durée mesurée et verdict. Sous PyTorch, les compteurs de tenseurs alloués et de mémoire réservée par l’allocateur sont distincts ; ils ne s’additionnent pas. Relevez chaque GPU avec les mêmes limites de mesure. Le dossier mémoire fournit le détail des baselines, de la synchronisation et des pics absolus.
| Phase | Vérification | Si le contrôle échoue |
|---|---|---|
| Données | Identifiants, cibles, longueurs et masques | Corriger le jeu ou la transformation |
| Passage avant et perte | Dimensions attendues, perte finie | Examiner le lot réduit et les valeurs |
| Passage arrière | Gradients attendus, valeurs finies | Vérifier graphe, précision et normalisation |
| Mise à jour | Paramètres ciblés modifiés, étape comptée | Examiner optimiseur et accumulation |
| Validation | Mode d’évaluation, sorties complètes | Séparer ses réglages de ceux de l’entraînement |
| Reprise | Progression et état restaurés | Corriger le checkpoint avant la série |
Sources techniques : PyTorch — compteurs et gestion mémoire
Compter les exemples par mise à jour
Le microbatch est traité lors d’un passage. L’accumulation combine plusieurs passages avant une mise à jour. Dans un exemple à un GPU, deux exemples par microbatch et huit accumulations donnent seize exemples par mise à jour complète. Avec 3 200 exemples parcourus une fois et aucun lot incomplet, cela représente 200 mises à jour. Ces calculs ne prédisent pas une durée ni une qualité.
Fixer le nombre de mises à jour et changer le batch peut changer le nombre d’exemples vus. Fixer les époques peut changer le nombre de mises à jour. Choisissez ce que votre comparaison doit conserver et notez l’autre quantité. Sur plusieurs répliques de données, le comptage inclut leur nombre ; le parallélisme de modèle ne multiplie pas automatiquement le batch effectif. Les lots finaux et les séquences de longueurs différentes demandent une normalisation cohérente.
Sources techniques : PyTorch — accumulation et précision mixte
Modifier la mémoire sans perdre la question expérimentale
Si le pilote dépasse la mémoire, repérez la phase et l’entrée en cause. Un microbatch réduit peut diminuer les activations ; une longueur maximale plus petite peut supprimer une partie indispensable de la tâche. L’accumulation ne libère pas par elle-même les poids ou l’état de l’optimiseur. Ne présentez pas un cas qui tient après troncature comme la même expérience si la sortie attendue a changé.
Le checkpointing d’activations conserve moins d’intermédiaires et les recalcule pendant le passage arrière. Comparez mémoire et durée dans votre boucle. La précision mixte choisit les formats de certaines opérations ; les réglages de mise à l’échelle des gradients et le moment de leur mise à jour doivent correspondre au batch effectif. Enregistrez ces changements comme des variantes et vérifiez qu’ils préservent l’objectif de qualité.
Sources techniques : PyTorch — checkpointing d’activations · PyTorch — règles AMP
Exemple : comparer trois taux d’apprentissage
Préparez un témoin à 0,0001 et deux variantes illustratives à 0,00005 et 0,0002. Ces valeurs ne sont pas des recommandations pour votre modèle : elles servent à écrire un plan. Gardez architecture, données, batch effectif et budget de 200 mises à jour identiques dans ce cas simplifié. Définissez avant l’essai la fréquence de validation et les causes d’arrêt.
Conservez la courbe de perte, les points de validation et les prédictions nécessaires à l’analyse. Si une variante diverge, sa ligne reste dans le bilan. Une relance avec un autre batch reçoit un nouvel identifiant et ne remplace pas silencieusement l’échec. Si l’écart de qualité est faible, la méthode sur les graines explique comment comparer plusieurs essais sans retenir seulement le meilleur.
Reprendre l’apprentissage, puis relire la sortie
Une sauvegarde de poids permet certains usages d’inférence ; une reprise d’apprentissage doit aussi retrouver les états pertinents et la progression. Le guide PyTorch distingue notamment modèle et optimiseur. Testez la reprise tôt dans un nouveau processus, avec les éléments nécessaires à votre boucle, puis contrôlez l’étape, le taux d’apprentissage et la continuité des données.
À la clôture, rechargez l’artefact destiné à l’évaluation et rejouez des entrées de contrôle. Archivez modèle ou adaptateur, configuration, révisions, métriques brutes et instructions. Ne chargez pas un fichier d’origine inconnue uniquement pour vérifier son contenu : utilisez des artefacts dont vous connaissez la provenance et les règles de désérialisation de votre environnement.
Sources techniques : PyTorch — poids et checkpoints de reprise
Passer du pilote à une location adaptée
Votre fiche de choix rassemble mémoire par GPU, dimensions maximales, précision, microbatch, accumulation, stratégie de répartition et résultat attendu. Une configuration avec assez de mémoire n’est retenue qu’après contrôle de la pile logicielle. Une préférence PyTorch à la commande décrit une préparation souhaitée ; elle ne garantit pas votre modèle ou toutes ses extensions.
Organisez ensuite les variantes prioritaires dans un forfait de 3, 7 ou 30 jours en conservant du temps pour l’évaluation et l’export. Aucune durée n’impose un type d’entraînement. Le carnet peut garder la décision et les observations saisies, tandis que vos sauvegardes conservent les fichiers. Une campagne réussie produit une conclusion relisible, y compris lorsque le témoin reste le meilleur choix.
Questions pratiques
Puis-je dimensionner avec le passage avant seulement ?
Non : une campagne d’entraînement doit aussi couvrir passage arrière, mise à jour, validation et sauvegarde. Le pic peut apparaître dans une autre phase ou sur une entrée plus longue.
Un batch effectif identique garantit-il les mêmes résultats ?
Non. Le comptage identique ne garantit pas les mêmes opérations numériques, statistiques de lot ou trajectoires d’apprentissage. Contrôlez l’implémentation, la normalisation et la qualité avec le protocole retenu.
Pourquoi conserver un entraînement qui diverge ?
Il indique une limite du réglage et a consommé des ressources. Son identifiant, sa cause d’arrêt et ses paramètres empêchent de répéter le même essai ou de présenter uniquement les résultats favorables.