Interviewfrage für Machine Learning Engineer

Die p99-Latenz deines Modells liegt bei 400 Millisekunden und das Produkt braucht 50. Wie gehst du das an?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Erst profilen, dann optimieren: zerleg die 400 Millisekunden in Feature-Abruf, Preprocessing, den Forward Pass und Netzwerk, denn das Modell ist oft nicht der größte Anteil. Dann greif das größte Stück an. Typische Gewinne sind Nebenläufigkeit bei Feature-Lookups, Caching, Quantisierung, eine kompilierte Runtime, ein destilliertes Modell und Arbeit vom Request-Pfad wegzuschieben. Ziel ist explizit p99, nicht der Mittelwert.

Warum Interviewer das fragen

Das ist eine Systemfrage im ML-Kostüm, und Interviewer wollen sehen, dass du misst, bevor du optimierst. Kandidaten, die sofort ein kleineres Modell vorschlagen, raten. Die Nicht-Modell-Komponenten zu benennen, besonders Feature-Abruf und Serialisierung, und zu wissen, dass ein Tail weit über dem Median meist auf Queueing oder Cold Starts hinweist, sind die Marker von jemandem, der einen Service betrieben hat.

So baust du deine Antwort auf

  • Weigere dich zu optimieren, bevor du eine Aufschlüsselung der 400 ms hast.
  • Nenn die Komponenten, die du getrennt messen würdest.
  • Ordne die Maßnahmen nach der Größe des Stücks, das sie angreifen.
  • Merk an, dass p99 meist auf Queueing, Cold Starts oder Garbage Collection zeigt.

Beispielantwort

Gesprochenes Beispiel, erste Person

Ich würde das Modell nicht anfassen, bevor ich eine Aufschlüsselung habe. Ich trace einen Request end to end und messe Feature-Abruf, Deserialisierung, Preprocessing, den Forward Pass, Postprocessing und Netzwerk. Jedes Mal, wenn ich das bei einem Service gemacht habe, der sich langsam anfühlte, war das Modell eine Minderheit der Zeit. Der letzte lag bei rund 400 Millisekunden gesamt, davon etwa 90 im Modell und über 200 im Warten auf drei sequenzielle Feature-Lookups gegen einen entfernten Store. Das zu beheben war kein ML-Problem, es hieß, sie nebenläufig abzusetzen und die zwei zu cachen, die sich nur täglich änderten, und allein das hat den größten Teil des Wegs gebracht. Danach schaue ich aufs Modell: Dynamic Batching, int8-Quantisierung oder der Export in eine kompilierte Runtime wie ONNX Runtime oder TensorRT, was bei kleineren Modellen häufig ein Faktor zwei bis drei ohne Genauigkeitsverlust ist. Die andere Sache speziell zu p99 ist, dass ein Tail so weit über dem Median meist gar nicht Compute ist, sondern Queueing unter Last, ein Cold Start auf einer frischen Replik oder Garbage Collection. Ich prüfe also, ob p50 schon in Ordnung ist, denn wenn ja, heißt die Lösung Kapazität und warme Pools.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie hilft Dynamic Batching dem Durchsatz und schadet der Latenz eines einzelnen Requests?
  • Was würdest du cachen, und wie würdest du es invalidieren?
  • Wie würdest du das lasttesten, um den Punkt zu finden, an dem der Tail explodiert?

Weitere Fragen für Machine Learning Engineer

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen