Question d'entretien pour Ingénieur machine learning

Quelle est la différence entre SGD avec momentum et Adam, et lequel choisissez-vous ?

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

Réponse rapide

SGD avec momentum utilise un seul taux d'apprentissage global et accumule un terme de vitesse pour lisser les mises à jour. Adam garde des taux adaptatifs par paramètre à partir d'estimations glissantes des premiers et seconds moments du gradient, donc il converge vite avec peu de réglage. Adam est le choix par défaut pour les transformeurs et les problèmes creux ; un SGD avec momentum bien réglé généralise encore mieux sur de nombreux modèles de vision.

Pourquoi les recruteurs posent cette question

Les recruteurs veulent savoir si vous comprenez les optimiseurs comme des mécanismes plutôt que comme des chaînes de caractères passées en argument. Le discriminant est l'adaptativité par paramètre et ce qu'elle vous apporte : de la robustesse à un taux d'apprentissage mal choisi et aux gradients creux. Les bons candidats mentionnent AdamW et pourquoi découpler la décroissance des poids compte, plus le warmup et les schedules, puisque presque personne n'entraîne un transformeur sans les deux.

Comment structurer votre réponse

  • Décrivez ce que chaque optimiseur garde en mémoire d'état.
  • Expliquez ce que l'adaptativité par paramètre vous apporte réellement.
  • Nommez votre choix par défaut et le cas où vous changeriez.
  • Mentionnez AdamW, le warmup, et le schedule que vous y associez.

Exemple de réponse

Exemple parlé, à la première personne

Le momentum garde une moyenne glissante des gradients passés, donc la mise à jour emporte de la vitesse à travers les zones plates et amortit les oscillations dans un ravin. Il reste un seul taux d'apprentissage pour tous les paramètres. Adam ajoute une seconde moyenne glissante, celle des gradients au carré, et divise par sa racine, ce qui donne à chaque paramètre son propre pas effectif. Les paramètres à gradients constamment grands reçoivent des pas plus petits, les caractéristiques rares à gradients creux en reçoivent de plus grands. En pratique, Adam est bien moins sensible au choix d'un mauvais taux d'apprentissage initial, ce qui explique qu'il soit le choix par défaut pour tout ce qui a la forme d'un transformeur et pour les modèles chargés en embeddings. Mon vrai choix par défaut est AdamW plutôt qu'Adam simple, parce qu'intégrer la décroissance des poids dans le terme adaptatif rend la décroissance de fait différente par paramètre, et la découpler corrige ça. Je l'associe à un warmup linéaire sur quelques centaines de pas puis à une décroissance cosinus. Là où je bascule vers SGD avec momentum, c'est pour le fine-tuning de backbones de vision convolutifs, où un schedule bien réglé finit encore par gagner près d'un point d'exactitude en validation, si j'ai le budget pour le régler.

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

  • Pourquoi Adam a-t-il besoin d'une correction de biais dans les premiers pas ?
  • Que change exactement AdamW par rapport à Adam ?
  • Comment choisiriez-vous un taux d'apprentissage initial pour un modèle que vous n'avez jamais entraîné ?

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