Question d'entretien pour Ingénieur machine learning

Votre entraînement plante avec une erreur de mémoire CUDA épuisée. Détaillez ce que vous vérifiez.

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Parcourez les consommateurs de mémoire dans l'ordre : taille de lot et longueur de séquence, activations conservées pour la passe arrière, état de l'optimiseur, et fragmentation due aux formes variables. Les correctifs rapides sont un lot plus petit avec accumulation de gradient pour préserver le lot effectif, le gradient checkpointing, le bf16, et un optimiseur économe en mémoire. Vérifiez aussi que vous n'accumulez pas des tenseurs qui portent encore un graphe de calcul.

Pourquoi les recruteurs posent cette question

C'est le quotidien de quiconque entraîne des modèles, donc le recruteur cherche une méthode systématique plutôt qu'un tripotage aléatoire d'options. Le détail qui trahit l'expérience, c'est de savoir que les activations dominent en général plutôt que les poids, plus le bug classique consistant à ajouter un tenseur de perte à une liste à chaque pas, ce qui retient tout le graphe et fait fuir la mémoire d'une itération à l'autre.

Comment structurer votre réponse

  • Listez les consommateurs de mémoire dans l'ordre approximatif de leur taille.
  • Distinguez un problème de capacité d'une fuite qui grossit au fil des pas.
  • Donnez les correctifs bon marché : accumulation, checkpointing, bf16.
  • Nommez le bug du graphe retenu et comment vous le repérez.

Exemple de réponse

Exemple parlé, à la première personne

La première chose que je vérifie, c'est si ça meurt immédiatement ou après quelques centaines de pas, parce que ce sont des bugs différents. Immédiat, c'est un problème de capacité ; croissant, c'est une fuite. Pour la capacité je décompose ce qui réside réellement : poids, gradients, état de l'optimiseur (avec Adam, deux copies supplémentaires) et activations conservées pour la passe arrière. Sur un transformeur, les activations dominent en général, et elles évoluent comme la taille de lot fois la longueur de séquence, donc ce sont les premiers curseurs. Je baisse le lot et j'utilise l'accumulation de gradient pour garder un lot effectif identique, ce qui coûte du temps réel et rien d'autre. Ensuite le gradient checkpointing, qui recalcule les activations pendant la passe arrière et échange environ trente pour cent de calcul en plus contre une grosse économie de mémoire. Le bf16 divise par deux la taille des activations en plus de ça. Si ça grossit au fil des pas, quelque chose retient un graphe. Le classique, c'est d'ajouter le tenseur de perte brut à une liste pour la journalisation, ce qui garde vivant le graphe de calcul de chaque pas, et le correctif est d'appeler item dessus. Je le confirme en affichant la mémoire allouée et réservée tous les cent pas, parce qu'un escalier bien net vers le haut est le signe qui ne trompe pas.

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 marche

Questions de relance à prévoir

  • Quelle est la différence entre mémoire allouée et réservée dans l'allocateur ?
  • Comment la fragmentation mémoire se produit-elle avec des entrées de longueur variable ?
  • Quand utiliseriez-vous le déchargement vers le CPU plutôt que réduire le lot ?

Autres questions pour Ingénieur machine learning

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

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot