मशीन लर्निंग इंजीनियर इंटरव्यू सवाल

आपके मॉडल की p99 latency 400 millisecond है और प्रोडक्ट को 50 चाहिए। आप इसे कैसे संभालेंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

optimize करने से पहले profile कीजिए: उन 400 millisecond को feature fetch, preprocessing, मॉडल के forward pass और network में तोड़िए, क्योंकि अक्सर सबसे बड़ा हिस्सा मॉडल होता ही नहीं। फिर सबसे बड़े टुकड़े पर हमला कीजिए। आम जीत हैं feature lookups पर concurrency, caching, quantization, compiled runtime, distilled मॉडल, और काम को request वाले रास्ते से हटाना। खास तौर पर p99 को निशाना बनाइए, औसत को नहीं।

इंटरव्यूअर यह क्यों पूछते हैं

यह ML की पोशाक पहना हुआ सिस्टम्स का सवाल है, और इंटरव्यूअर देखना चाहते हैं कि आप optimize करने से पहले नापते हैं। जो कैंडिडेट फौरन छोटा मॉडल सुझाते हैं वे अंदाजा लगा रहे हैं। मॉडल के अलावा वाले हिस्सों का नाम लेना, खासकर feature fetching और serialization, और यह जानना कि median से बहुत ऊपर की tail आम तौर पर queueing या cold starts होती है, उस इंसान की पहचान है जिसने कोई सर्विस चलाई हो।

अपना जवाब कैसे स्ट्रक्चर करें

  • 400ms का ब्योरा मिलने से पहले optimize करने से मना कर दें।
  • जिन हिस्सों का समय आप अलग अलग नापेंगे, उनका नाम लें।
  • इलाजों को उस टुकड़े के आकार से क्रम दें जिस पर वे हमला करते हैं।
  • बताएं कि p99 आम तौर पर queueing, cold starts या garbage collection की तरफ इशारा करती है।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

जब तक मेरे पास ब्योरा न हो, मैं मॉडल को हाथ नहीं लगाऊंगा। मैं एक request को end to end trace करके feature fetch, deserialization, preprocessing, forward pass, postprocessing और network का समय नापता हूं। धीमी लगने वाली सर्विस पर जब जब मैंने यह किया है, मॉडल कुल समय का अल्पमत ही निकला। पिछली बार कुल करीब 400 millisecond थे जिनमें मॉडल में करीब 90 और दो सौ से ज्यादा किसी remote store पर तीन क्रमवार feature lookups के इंतजार में थे। उसे ठीक करना ML की समस्या नहीं थी, बात बस उन्हें साथ साथ भेजने और जो दो रोज ही बदलते थे उन्हें cache करने की थी, और अकेले उससे हम ज्यादातर रास्ता तय कर गए। उसके बाद मैं मॉडल देखता हूं: dynamic batching, int8 quantization, या ONNX Runtime या TensorRT जैसे compiled runtime में export, जो छोटे मॉडलों पर अक्सर बिना किसी accuracy कीमत के दो से तीन गुना जीत होती है। खास तौर पर p99 के बारे में दूसरी बात यह है कि median से इतनी ऊपर की tail आम तौर पर compute होती ही नहीं, वह load के नीचे queueing होती है, किसी नए replica पर cold start, या garbage collection। तो मैं देखता हूं कि p50 पहले से ठीक है या नहीं, क्योंकि अगर है तो इलाज capacity और warm pools है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • dynamic batching throughput में मदद और अकेली request की latency में नुकसान कैसे करती है?
  • आप क्या cache करेंगे, और उसे invalidate कैसे करेंगे?
  • जिस बिंदु पर tail फट जाती है उसे ढूंढने के लिए आप load test कैसे करेंगे?

मशीन लर्निंग इंजीनियर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं