Question d'entretien pour Ingénieur machine learning

Votre modèle ne tient plus sur un seul GPU. Quelles sont vos options pour distribuer l'entraînement ?

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

Réponse rapide

Si le modèle tient mais que vous voulez du débit, utilisez le parallélisme de données : répliquez le modèle, découpez le lot, faites un all-reduce des gradients. S'il ne tient pas, découpez-le. Le parallélisme de tenseurs répartit des couches individuelles entre les appareils, le parallélisme de pipeline attribue des couches différentes à des étages différents, et le parallélisme de données entièrement partitionné répartit paramètres, gradients et état de l'optimiseur entre les rangs. Les gros entraînements combinent en général les trois.

Pourquoi les recruteurs posent cette question

Cela sépare les candidats qui ont entraîné sur un cluster de ceux qui n'ont utilisé qu'un seul GPU. Le recruteur veut la distinction entre ça ne tient pas et c'est trop lent, puisque ces deux cas appellent des outils différents. Nommer FSDP ou le partitionnement à la ZeRO, et comprendre que l'état de l'optimiseur domine souvent la mémoire plutôt que les poids, est le détail qui montre une exposition réelle.

Comment structurer votre réponse

  • Séparez le problème c'est trop lent du problème ça ne tient pas.
  • Décrivez le parallélisme de données et l'étape d'all-reduce.
  • Décrivez le partitionnement par tenseurs et par pipeline en une ligne chacun.
  • Mentionnez le partitionnement de l'état de l'optimiseur et le moment où la communication devient le goulet.

Exemple de réponse

Exemple parlé, à la première personne

La première question, c'est de savoir si ça ne tient pas ou si c'est juste lent, parce que ce sont des problèmes différents. Si ça tient, le parallélisme de données est le gain facile : chaque GPU garde une réplique complète, chacun prend une tranche du lot, et vous faites un all-reduce des gradients avant le pas. Ça passe bien à l'échelle jusqu'à ce que l'all-reduce sature votre interconnexion. Si vraiment ça ne tient pas, je regarde d'abord la composition de la mémoire, parce qu'avec Adam l'état de l'optimiseur pèse environ deux fois le nombre de paramètres en fp32, donc les poids sont souvent minoritaires dans l'empreinte. Cela pointe directement vers le parallélisme de données partitionné, FSDP ou ZeRO niveau trois, qui répartit paramètres, gradients et état de l'optimiseur entre les rangs et les rassemble juste à temps. C'est en général suffisant et ça garde le modèle de programmation simple. Au-delà, vous passez au parallélisme de tenseurs, en répartissant les produits matriciels d'une couche entre appareils, ce qui exige une interconnexion rapide puisqu'il communique à chaque couche, donc je le garde à l'intérieur d'un nœud. Le parallélisme de pipeline place des couches différentes sur des appareils différents et vous combattez le surcoût de bulle avec des micro-lots. Avant tout ça j'essaie le gradient checkpointing et la précision mixte, parce que parfois ça suffit à repasser sous la limite.

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

  • Que vous coûte le gradient checkpointing en calcul ?
  • Pourquoi le parallélisme de tenseurs préfère-t-il rester dans un seul nœud ?
  • Comment la bulle de pipeline évolue-t-elle avec le nombre d'étages ?

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