Définir ce qui varie et ce qui constitue une répétition
Commencez par la question : évaluez-vous l’effet de l’initialisation d’un entraînement, de l’ordre des données, d’un découpage train/test ou d’une génération stochastique ? Une graine contrôle un générateur aléatoire ; elle n’identifie pas à elle seule toutes ces dimensions. Conservez une ligne par exécution et les facteurs réellement modifiés.
Relancer dix fois l’évaluation déterministe du même checkpoint sur le même corpus ne produit pas dix entraînements indépendants. De même, mille prédictions issues d’un seul modèle ne remplacent pas plusieurs entraînements pour estimer leur variabilité. Choisissez l’unité de répétition correspondant à la décision.
Fixez avant la série la métrique principale, son sens et l’effet minimal qui justifierait le changement. Dans les exemples suivants, une valeur plus élevée est préférable et le seuil utile illustratif est de 0,30 point sur une métrique affichée de 0 à 100. Ce seuil vient de la décision du projet, pas d’une règle statistique universelle.
Apparier les configurations sur des conditions communes
Pour une paire i, exécutez la référence A et le candidat B sur le même découpage de données et avec les conditions communes prévues. Calculez ensuite dᵢ = score(Bᵢ) − score(Aᵢ). L’appariement porte sur une correspondance définie avant les résultats ; il ne consiste pas à associer ensuite les scores qui se ressemblent.
Utiliser la même liste de graines peut aider à organiser les paires, mais deux architectures peuvent consommer les nombres aléatoires différemment. Déclarez séparément les graines d’initialisation, de données et de génération lorsque votre code les distingue. Enregistrez aussi les partitions ou leurs identifiants : un entier commun ne prouve pas que les données ont été parcourues de la même manière.
Si une paire contient un échec, gardez les deux statuts et expliquez comment elle sera traitée. Ne comparez pas la moyenne de cinq candidats réussis à celle de six références sans signaler le changement de population.
Sources techniques : NIST — correspondance entre observations appariées
Conserver les limites de la graine et du déterminisme
PyTorch indique que des résultats entièrement reproductibles ne sont pas garantis entre versions, plateformes ou exécutions CPU et GPU, même avec une graine identique. Son guide distingue le contrôle des générateurs et celui des opérations non déterministes. Relevez les versions et les options appliquées plutôt que de résumer l’environnement par « seed fixée ».
Une exécution déterministe sert notamment à retrouver un comportement dans des conditions données. Elle ne démontre pas que le modèle résiste à d’autres initialisations ou données. Inversement, une différence entre deux relances identiques mérite un diagnostic avant d’être interprétée comme l’effet du candidat.
Gardez la même politique de déterminisme pour les deux variantes. Si vous la changez pour diagnostiquer une erreur, identifiez cette série séparément. Le résultat expérimental doit rester attaché aux conditions dans lesquelles il a été obtenu.
Sources techniques : PyTorch 2.14 — reproductibilité et contrôle de l’aléatoire
Exemple calculé : cinq différences appariées
Voici cinq paires fictives destinées au calcul, sans entraînement exécuté. Les graines sont des identifiants d’exemple. La référence et le candidat utilisent ici le même protocole de comparaison. Les scores sont exprimés sur 100 ; les différences sont des points, et non des pourcentages relatifs.
La moyenne des différences vaut (0,4 + 0,3 + 0,1 + 0,5 + 0,1) / 5 = 0,28 point. Leur médiane vaut 0,30 point et leur étendue va de 0,10 à 0,50. L’écart-type d’échantillon des différences vaut environ 0,179 point, avec un dénominateur n − 1. Les cinq signes sont positifs, mais l’amplitude reste importante par rapport au gain moyen.
| Graine illustrative | Référence A | Candidat B | B − A |
|---|---|---|---|
| 17 | 71,0 | 71,4 | +0,4 |
| 29 | 71,6 | 71,9 | +0,3 |
| 43 | 71,3 | 71,4 | +0,1 |
| 71 | 70,8 | 71,3 | +0,5 |
| 101 | 71,8 | 71,9 | +0,1 |
Lire un intervalle sans lui donner une portée excessive
Pour illustrer un calcul usuel, supposons les différences indépendantes entre paires et issues d’une distribution approximativement normale. L’intervalle de Student à 95 % pour leur moyenne utilise ici quatre degrés de liberté : 0,28 ± 2,776 × 0,080, soit environ [0,058 ; 0,502] point. Avec cinq paires seulement, la forme de la distribution est difficile à apprécier ; le calcul ne rend pas ces hypothèses vraies.
Cet intervalle est au-dessus de zéro dans l’exemple, mais il recouvre le seuil utile fixé à 0,30 point. Il ne soutient donc pas la règle exigeante « le gain moyen dépasse 0,30 point ». Une différence positive peut rester trop petite ou trop incertaine pour justifier le changement.
Un intervalle à 95 % décrit une procédure de couverture sous ses hypothèses, pas une probabilité de 95 % attachée au paramètre après le calcul. Il ne couvre ici que la variation représentée par les paires, pas automatiquement un autre domaine, un autre corpus ou un futur matériel.
Si vous utilisez SciPy, ttest_rel compare des échantillons liés et propose un intervalle de confiance. L’ordre des tableaux fixe le signe : pour B − A, placez B en premier. Conservez les valeurs et la méthode utilisée, pas seulement une p-value.
Sources techniques : NIST — intervalle de confiance pour une moyenne · SciPy 1.18 — ttest_rel et intervalle des différences
Préparer la décision et les répétitions suivantes
Le résultat de l’exemple est « gain utile non établi », pas « candidat inutile ». Selon le coût du changement, vous pouvez conserver la référence, poursuivre la collecte ou tester une modification plus substantielle. Annoncez cette règle avant d’avoir la série sous les yeux. Une borne inférieure au-dessus de votre seuil utile soutiendrait davantage l’adoption, à condition que le reste du protocole soit valide.
Planifiez les répétitions à partir de la précision nécessaire et de la variabilité attendue, avec une réserve pour les échecs. Il n’existe pas de nombre de graines qui garantisse universellement une conclusion. Un pilote peut aider à estimer la dispersion ; gardez son statut exploratoire et figez ensuite la procédure de confirmation.
Évitez de regarder après chaque paire puis d’arrêter dès que le résultat devient favorable en utilisant un intervalle prévu pour un effectif fixe. Choisissez un effectif et une analyse à l’avance, ou une méthode séquentielle adaptée. Ajouter des essais uniquement au candidat décevant change également l’équilibre de la comparaison.
Ne pas confondre variabilité d’entraînement et évaluation du corpus
Une série de graines sur un jeu de test fixé renseigne la variation des entraînements sur ce jeu. Elle ne mesure pas à elle seule l’incertitude liée au choix des exemples de test. Si votre question porte aussi sur les partitions ou les domaines, prévoyez un plan qui varie ces dimensions sans les mélanger dans un seul compteur de répétitions.
Gardez une évaluation finale à l’écart des choix de modèles. Sélectionner parmi de nombreuses variantes avec le même test favorise les options qui y paraissent bonnes par hasard. Les sous-groupes et métriques complémentaires doivent éclairer la décision, avec leur nombre et leur statut exploratoire visibles.
La sortie finale réunit les scores bruts, les paires, les différences, la dispersion, la méthode d’intervalle et la décision face au seuil utile. Joignez les échecs et les limites de généralisation. Vous pouvez alors expliquer pourquoi l’écart vous paraît suffisant, insuffisant ou encore indécidable.
Sources techniques : scikit-learn — conserver le test hors des choix de modèle
Questions pratiques
Cinq graines suffisent-elles pour choisir ?
Cinq graines peuvent servir à une première observation, mais elles ne garantissent pas une précision suffisante. Le nombre nécessaire dépend de la variabilité et du plus petit effet utile. Examinez les différences brutes et l’incertitude ; un résultat encore indécidable appelle un protocole mieux dimensionné, pas un nombre magique.
Un intervalle qui contient zéro prouve-t-il l’équivalence ?
Un intervalle qui contient zéro ne prouve pas l’équivalence. Il peut aussi être compatible avec des gains ou des pertes importants. Pour soutenir une équivalence pratique, fixez à l’avance une marge acceptable et utilisez une analyse adaptée à cette question, avec assez de précision pour l’examiner.
Puis-je publier seulement la meilleure graine ?
La meilleure graine décrit une sélection favorable, pas la performance typique de la procédure. Publiez l’ensemble des répétitions prévues et la règle de sélection du modèle livré. Si ce meilleur modèle doit être évalué, utilisez une évaluation finale qui n’a pas servi à le choisir.