0Pricing
Learn AI with Python · Leçon

Reproductibilité : graines, configurations et environnements

random.seed(), np.random.seed(), fichiers de configuration YAML et verrouillage de l’environnement avec pip freeze.

Reproductibilité : graines, configurations et environnements est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Pourquoi la reproductibilité ?

Une expérience que vous ne pouvez pas reproduire n’est pas de la science. Si l’exécution du même code deux fois produit des résultats différents, vous ne pouvez pas faire confiance aux comparaisons ni corriger les régressions.

Trois piliers rendent le travail d’IA reproductible : les graines random fixes, les configurations externalisées et les environnements verrouillés.

Sources du caractère aléatoire

Le caractère aléatoire peut apparaître à de nombreux endroits : mélange des données, séparation entre entraînement et évaluation, initialisation des poids, abandon et augmentation des données. Chacun de ces éléments peut utiliser un générateur aléatoire différent.

Pour reproduire une exécution, vous devez définir une seed pour chaque générateur utilisé par votre code.

Initialiser Python et NumPy

Fixez les générateurs de la bibliothèque standard et de NumPy avec une seule seed choisie (42 est une convention courante).

import random
import numpy as np

random.seed(42)
np.random.seed(42)

Initialisation des cadres logiciels

Les cadres logiciels d’apprentissage automatique possèdent leurs propres générateurs. Initialisez-les également et transmettez la graine aux fonctions qui acceptent random_state.

import numpy as np
from sklearn.model_selection import train_test_split

X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)
# torch.manual_seed(42) / tf.random.set_seed(42) for deep learning

Un assistant set_seed

Regroupez toute l’initialisation dans une seule fonction et appelez-la au début de chaque script afin de ne jamais oublier un générateur.

import random, os
import numpy as np

def set_seed(seed=42):
    random.seed(seed)
    np.random.seed(seed)
    os.environ["PYTHONHASHSEED"] = str(seed)

set_seed(42)

Les hyperparamètres codés en dur sont un piège

Disperser 0.01, 200 et 0.2 dans votre code rend les exécutions difficiles à suivre et à modifier. Lors de l’exécution ayant obtenu le meilleur score, le taux d’apprentissage était-il de 0.01 ou de 0.001 ?

La solution consiste à placer tous les hyperparamètres dans un fichier de configuration, et non dans le code.

Fichiers de configuration YAML

YAML est un format lisible par l’être humain, idéal pour les configurations. Un seul fichier regroupe tous les paramètres d’une exécution.

# config.yaml
seed: 42
model:
  name: random_forest
  n_estimators: 200
  max_depth: 8
training:
  test_size: 0.2
data:
  path: data/processed/train.csv

Lire du YAML avec PyYAML

Chargez la configuration au début de votre script avec PyYAML. Votre code lit alors les valeurs depuis cfg au lieu de les coder en dur.

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

print(cfg["model"]["n_estimators"])   # 200
set_seed(cfg["seed"])

Transmettre la configuration au code

Les fonctions reçoivent la configuration, ou ses valeurs, comme arguments. Pour lancer une nouvelle expérience, vous modifiez le YAML, et non le code Python.

from sklearn.ensemble import RandomForestClassifier

m = cfg["model"]
model = RandomForestClassifier(
    n_estimators=m["n_estimators"],
    max_depth=m["max_depth"],
    random_state=cfg["seed"],
)

Verrouiller l’environnement

Des versions différentes des bibliothèques produisent des résultats différents. Verrouillez les versions exactes afin que les autres personnes, et vous-même à l’avenir, installent la même pile logicielle.

# requirements.txt with pinned versions
pandas==2.2.0
scikit-learn==1.4.0
numpy==1.26.4

# generate it with:
# pip freeze > requirements.txt

Environnements virtuels

Isolez chaque projet afin que ses versions verrouillées n’entrent pas en conflit avec celles des autres projets. Créez et activez un environnement virtuel, puis installez les dépendances depuis le fichier contenant les versions verrouillées.

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Vérification rapide : hyperparamètres

Vous voulez essayer dix combinaisons différentes d’hyperparamètres et conserver chaque exécution reproductible et traçable.

Récapitulatif : reproductibilité

Vous avez appris les trois piliers d’une IA reproductible :

  • Graines : random.seed(42), np.random.seed(42), les graines des cadres logiciels et random_state
  • Configurations : tous les hyperparamètres dans config.yaml, chargés avec PyYAML
  • Environnements : requirements.txt contenant les versions verrouillées, dans un environnement virtuel

Modifiez la configuration, pas le code. Ensuite : bonnes pratiques pour les blocs-notes Jupyter.

Questions Fréquemment Posées

La leçon « Reproductibilité : graines, configurations et environnements » est-elle gratuite ?

Oui — le texte complet de « Reproductibilité : graines, configurations et environnements » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Reproductibilité : graines, configurations et environnements » ?

random.seed(), np.random.seed(), fichiers de configuration YAML et verrouillage de l’environnement avec pip freeze. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Reproductibilité : graines, configurations et environnements » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structure professionnelle des répertoires d’un projet d’IA
  2. Git pour les projets d’IA
  3. Reproductibilité : graines, configurations et environnements
  4. Bonnes pratiques pour les notebooks Jupyter
← Retour à Learn AI with Python