Mettre les modèles à l'épreuve

Déployer des modèles de Machine Learning en production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Équité individuelle vs équité entre groupes

Équité individuelle

Traiter de façon semblable des personnes semblables.

  • P. ex. offrir des emplois comparables à des personnes ayant des expériences similaires.

Équité entre groupes

Traiter équitablement différents groupes.

  • P. ex. ne pas défavoriser des personnes de certains groupes raciaux ou ethniques dans des modèles d'admission scolaire.
Déployer des modèles de Machine Learning en production

Test par lot témoin (holdout)

  • Le test par lot témoin évalue la fiabilité avec un ensemble distinct
  • Mesure la performance sur des données non vues, comme à l'entraînement
  • Détecte la surapprentissage ou le sous-apprentissage

robots using data

Déployer des modèles de Machine Learning en production

Rechercher la dérive d'un modèle

Dérive de concept

  • Changement du lien entre les caractéristiques et la réponse
    • P. ex. un algorithme d'analyse des sentiments
      • Des termes peuvent changer de sens (dire qu'un truc est « sick » veut dire « super »)

Dérive de prédiction

  • Changement dans la distribution des prédictions du modèle
    • P. ex. une panne temporaire fait augmenter l'intention « outage » pour votre clavardoir
    • Rien n'est « erroné » en soi, mais cette dérive peut ralentir les réponses aux utilisateurs
Déployer des modèles de Machine Learning en production

Exemple : repérer la dérive d'un modèle

Configuration :

# Import necessary libraries and split data
X_train, X_test, y_train, y_test = ...

Ajuster le modèle :

# Train a classifier on the training data
clf = DecisionTreeClassifier(random_state=42)
clf.fit(X_train, y_train)

# Calculate the accuracy on test data
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Tester la dérive plus tard :

X_test_drift = X_test + 1.0  # Simulate data drift
# Calculate the accuracy on drifted data
y_pred_drift = clf.predict(X_test_drift)
accuracy_drift = accuracy_score(
    y_test, y_pred_drift)
print(f"Accuracy with drift: {accuracy_drift}")

# Drift detection threshold based on the accuracy
drift_threshold = accuracy * 0.9

# Check for drop in accuracy on the drifted data
if accuracy_drift < drift_threshold:
    print("Concept drift detected!")
else:
    print("No concept drift detected.")
Déployer des modèles de Machine Learning en production

Coût des modèles complexes vs modèles de base

  • Les modèles complexes coûtent plus cher et peuvent nuire à l'efficacité
  • La latence mesure le temps pour traiter une entrée et produire une prédiction
  • Le débit mesure le nombre de prédictions en un temps donné
  • Tester latence et débit pour cibler la complexité adéquate
  • Viser un équilibre entre exactitude et efficacité
Déployer des modèles de Machine Learning en production

Passons à la pratique !

Déployer des modèles de Machine Learning en production

Preparing Video For Download...