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

mixed precision training क्या है और उसमें क्या गड़बड़ हो सकती है?

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

छोटा जवाब

mixed precision ज्यादातर operations 16 bit (fp16 या bf16) में चलाती है, जबकि weights की एक master copy और कुछ reductions fp32 में रहती हैं। इससे मेमोरी मोटे तौर पर आधी हो जाती है और tensor cores इस्तेमाल होते हैं, इसलिए वह काफी तेज है। fp16 का खतरा underflow है: छोटे gradients घटकर शून्य हो जाते हैं, और इसीलिए loss scaling मौजूद है। bf16 fp32 वाली exponent range रखता है, इसलिए वह इससे काफी हद तक बच जाता है।

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

लगभग हर संजीदा training run इसे इस्तेमाल करता है, इसलिए इंटरव्यूअर नाम से ज्यादा उम्मीद करते हैं। कीमती हिस्सा यह जानना है कि fp16 को loss scaling क्यों चाहिए और bf16 को क्यों नहीं, जिसके लिए floating point में range और precision का फर्क समझना पड़ता है। यह बताना कि आप master weights और softmax या norm reductions fp32 में रखते हैं, दिखाता है कि आप जानते हैं numerics असल में कहां टूटते हैं।

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

  • बताएं कि कम precision में क्या चलता है और fp32 में क्या रहता है।
  • मेमोरी और रफ्तार का फायदा ठोस आंकड़े में बताएं।
  • fp16 underflow और dynamic loss scaling समझाएं।
  • bf16 की range को fp16 की precision के सामने रखें और अपना डिफॉल्ट बताएं।

उदाहरण जवाब

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

weights की एक master copy आप fp32 में रखते हैं, लेकिन forward और backward pass 16 bit में चलाते हैं, इसलिए activations और gradients आधे आकार के होते हैं और matmuls tensor cores पर जाते हैं। व्यवहार में यह मोटे तौर पर आधी मेमोरी और अक्सर करीब दोगुना throughput है, जो आपके hardware पर run समाने और न समाने का फर्क बन सकता है। क्लासिक नाकामी fp16 underflow है। fp16 में सिर्फ पांच exponent bits हैं, इसलिए बहुत छोटे gradients शून्य हो जाते हैं, और छोटे gradients ठीक वही होते हैं जो ट्रेनिंग के आखिर में मायने रखते हैं। dynamic loss scaling यही ठीक करती है: backward से पहले loss को एक बड़े factor से गुणा कीजिए ताकि gradients दिखाने लायक range में उतरें, optimizer step से पहले unscale कीजिए, और infinities दिखते ही factor घटा दीजिए। bf16 आठ exponent bits रखता है, fp32 जितनी ही range, और इसकी कीमत वह कम mantissa bits से चुकाता है, इसलिए वह कहीं कम underflow करता है और आम तौर पर उसे loss scaling चाहिए ही नहीं। मेरा अब का डिफॉल्ट Ampere या उससे नए किसी भी hardware पर bf16 है। और मैं softmax, layer norm और खुद loss जैसे reductions fp32 में रखता हूं, क्योंकि 16 bit में हजारों terms जोड़ने पर accuracy तेजी से गिरती है।

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

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

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

  • bf16 mantissa bits देकर exponent bits क्यों लेता है, और वह कब नुकसान करता है?
  • किन लक्षणों से पता चलेगा कि loss scaling गलत सेट है?
  • mixed precision आपके learning rate के चुनाव को बदलती है क्या?

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

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

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

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

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

GhostPilot पाएं