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

आपका मॉडल अब एक GPU पर नहीं समाता। training बांटने के आपके पास क्या विकल्प हैं?

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

छोटा जवाब

अगर मॉडल समा जाता है और आपको सिर्फ throughput चाहिए, तो data parallelism इस्तेमाल कीजिए: मॉडल की नकल कीजिए, batch बांटिए, gradients का all reduce कीजिए। अगर वह समाता ही नहीं, तो उसे shard कीजिए। tensor parallelism अलग अलग layers को devices में बांटता है, pipeline parallelism अलग layers को अलग stages पर रखता है, और fully sharded data parallel parameters, gradients और optimizer state को ranks में बांट देता है। बड़े runs आम तौर पर इन्हें मिलाकर चलाते हैं।

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

यह उन कैंडिडेट को अलग करता है जिन्होंने cluster पर ट्रेन किया है, उनसे जिन्होंने सिर्फ एक GPU इस्तेमाल किया है। इंटरव्यूअर को समाता नहीं और बहुत धीमा है, इन दोनों का फर्क चाहिए, क्योंकि इनके इलाज अलग हैं। FSDP या ZeRO जैसी sharding का नाम लेना, और यह समझना कि मेमोरी पर अक्सर weights नहीं बल्कि optimizer state हावी होता है, वही ब्योरा है जो असली अनुभव दिखाता है।

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

  • बहुत धीमा है वाली समस्या को समाता नहीं वाली समस्या से अलग करें।
  • data parallelism और all reduce वाला कदम बताएं।
  • tensor और pipeline sharding को एक एक लाइन में बताएं।
  • optimizer state को shard करने और communication कहां अड़चन बन जाती है, इसका जिक्र करें।

उदाहरण जवाब

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

पहला सवाल यह है कि मॉडल समाता नहीं है या बस धीमा है, क्योंकि ये अलग समस्याएं हैं। अगर समा जाता है तो data parallel आसान जीत है: हर GPU पर पूरी नकल रहती है, हर एक batch का एक हिस्सा लेता है, और step से पहले आप gradients का all reduce कर लेते हैं। यह तब तक अच्छा scale करता है जब तक all reduce आपके interconnect को भर न दे। अगर वह सचमुच समाता ही नहीं, तो मैं पहले मेमोरी की बनावट देखता हूं, क्योंकि Adam के साथ fp32 में optimizer state मोटे तौर पर parameter count का दोगुना होता है, यानी अक्सर कुल जगह में weights अल्पमत में होते हैं। यह सीधे sharded data parallel की तरफ इशारा करता है, FSDP या ZeRO stage three, जो parameters, gradients और optimizer state को ranks में बांटकर ऐन वक्त पर इकट्ठा करता है। आम तौर पर इतना काफी होता है और programming model सरल बना रहता है। उससे आगे आप tensor parallel पर जाते हैं, यानी एक layer के अंदर के matmuls को devices में बांटना, जिसके लिए तेज interconnect चाहिए क्योंकि वह हर layer पर communicate करता है, इसलिए मैं उसे एक node के अंदर ही रखता हूं। pipeline parallel अलग layers को अलग devices पर रखता है और micro batching से आप bubble overhead से लड़ते हैं। इन सबसे पहले मैं gradient checkpointing और mixed precision आजमाता हूं, क्योंकि कभी कभी अकेले उतने से ही आप सीमा के अंदर लौट आते हैं।

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

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

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

  • gradient checkpointing की compute में क्या कीमत पड़ती है?
  • tensor parallelism एक ही node के अंदर क्यों रहना चाहता है?
  • stages की संख्या के साथ pipeline bubble कैसे बढ़ता है?

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

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

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

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

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

GhostPilot पाएं