Versionnez quatre choses ensemble : le code, les données, la configuration et l'environnement. Utilisez un outil de suivi comme MLflow ou Weights and Biases pour journaliser paramètres, métriques et artefacts par exécution ; figez les données avec un instantané daté plutôt qu'une requête en direct ; gardez les hyperparamètres dans des fichiers de configuration sous git ; et notez les versions de paquets. L'artefact du modèle doit porter le SHA git qui l'a produit.
Pourquoi les recruteurs posent cette question
Les questions de reproductibilité séparent ceux qui ont maintenu un modèle de ceux qui n'en ont construit qu'un. Le recruteur veut les quatre axes nommés, surtout le versionnage des données, celui que la plupart oublient et celui qui casse silencieusement la reproduction. Relier l'artefact du modèle à un commit précis est la pratique concrète qui prouve que vous avez dû le faire pour de vrai.
Comment structurer votre réponse
- Nommez les quatre choses à versionner ensemble.
- Dites quel outil vous utilisez pour le suivi par exécution et ce que vous journalisez.
- Expliquez comment vous figez les données, pas seulement le code.
- Mentionnez l'environnement et le SHA git porté par l'artefact.
Exemple de réponse
La règle que je suis, c'est qu'un modèle n'est reproductible que si le code, les données, la configuration et l'environnement sont tous figés. Le code est facile, c'est git. La configuration, je la garde en YAML dans le dépôt plutôt que dans des cellules de notebook, pour que les hyperparamètres exacts vivent dans l'historique des commits. L'environnement, c'est un fichier de verrouillage et un tag d'image de conteneur. Les données, c'est ce qui piège les gens, et ça m'a piégé : j'ai voulu un jour reproduire un modèle vieux de quatre mois, j'avais le code et les paramètres exacts, et j'ai obtenu un autre résultat, parce que la requête d'entraînement lisait une table qui avait été rechargée entre-temps. Maintenant l'entraînement lit un instantané daté avec un nombre de lignes et une somme de contrôle enregistrés, jamais une requête en direct. Pour le suivi des exécutions j'utilise MLflow, en journalisant les paramètres, les métriques, la liste des variables et l'artefact du modèle à chaque exécution, et l'artefact porte le SHA git et l'identifiant de l'instantané de données dans ses métadonnées. Comme ça, un modèle en production remonte à une exécution précise, et l'exécution peut être rejouée. C'est environ une heure de mise en place et ça m'a fait gagner des semaines.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment versionnez-vous un jeu de données vraiment trop gros pour être figé en instantané ?
- Que journalisez-vous pour une exécution qui échoue ?
- Comment compareriez-vous cinquante exécutions de réglage sans vous y noyer ?
Autres questions pour Data Scientist
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions