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

आपने किसी training run में batch size दोगुना कर दिया। learning rate का क्या करेंगे, और क्यों?

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

छोटा जवाब

learning rate बढ़ाइए, मामूली बढ़त के लिए मोटे तौर पर batch size के अनुपात में, या कुछ विश्लेषणों के हिसाब से उसके square root के अनुपात में। बड़ा batch कम variance वाला gradient estimate देता है, इसलिए आप बड़ा कदम उठा सकते हैं। व्यवहार में warmup भी चाहिए, क्योंकि ट्रेनिंग की शुरुआत में linear नियम टूट जाता है, और बहुत बड़े batches एक हद के बाद generalization सुधारना बंद कर देते हैं।

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

यह जल्दी से जांचने का तरीका है कि आपने सचमुच बड़े पैमाने पर मॉडल ट्रेन किए हैं या सिर्फ tutorials चलाए हैं। इंटरव्यूअर को रटा हुआ नियम नहीं, gradient variance वाली सोच चाहिए, साथ में यह समझ भी कि linear scaling की सीमाएं हैं और उसे warmup चाहिए। जो कैंडिडेट कहते हैं कि कुछ नहीं बदलता, वे बता देते हैं कि उन्होंने बड़े GPU पर जाने के बाद किसी run को diverge होते कभी नहीं देखा।

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

  • linear scaling नियम पहले ही साफ बता दें।
  • उसे सिर्फ रिवाज से नहीं, gradient variance से सही ठहराएं।
  • warmup को व्यावहारिक जरूरत के तौर पर जोड़ें।
  • बताएं कि नियम कहां टूटता है और आप किस चीज पर नजर रखते हैं।

उदाहरण जवाब

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

डिफॉल्ट linear scaling है: batch दोगुना, learning rate दोगुना। तर्क यह है कि किसी batch पर आप जो gradient निकालते हैं वह असली gradient का एक estimate है, और batch size बढ़ने पर उसका variance गिरता है, इसलिए बड़ा batch ज्यादा भरोसेमंद दिशा देता है और आप उसमें आनुपातिक रूप से बड़ा कदम रख सकते हैं। जो चीज लोग छोड़ देते हैं वह warmup है। शुरुआत में weights random होते हैं और loss surface मेहरबान नहीं होता, इसलिए batch size बढ़ाने के तुरंत बाद लगाया गया बड़ा learning rate पहले कुछ सौ steps में ही run उड़ा देगा। तो मैं एक warmup window में लगभग शून्य से target तक linear चढ़ता हूं, फिर decay करता हूं। एक खास batch size के आगे नियम फायदा देना बंद कर देता है, एक तो इसलिए कि gradient estimate का variance पहले ही कम है और आपको कुछ मिलता नहीं, और दूसरा इसलिए कि प्रति epoch optimizer steps कहीं कम हो जाते हैं, जो generalization को नुकसान पहुंचाता दिखता है। जिन मॉडलों पर मैंने काम किया है, उन पर वह छत मुझे प्रति batch कुछ हजार samples के आसपास मिली है। तो batch size बदलने के बाद मेरी रूटीन है scale कीजिए, warm up कीजिए, और फिर चले जाने की बजाय पहले हजार steps तक loss curve देखिए।

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

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

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

  • warmup कितना लंबा रखेंगे, और वह किस चीज से तय होता है?
  • gradient accumulation क्या है और वह कब बड़े batch की जगह ले लेता है?
  • बहुत बड़ा batch आखिरी validation accuracy को नुकसान क्यों पहुंचा सकता है?

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

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

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

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

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

GhostPilot पाएं