एमएल प्रोजेक्ट की योजना बनाना, सामान्य सॉफ़्टवेयर इंजीनियरिंग प्रोजेक्ट की योजना बनाने से अलग है. मशीन लर्निंग प्रोजेक्ट में आम तौर पर नॉन-लीनियर होता है और इनमें कई तरह की अनिश्चितता होती है. इनके लिए बार-बार और प्रयोग करने की सोच की ज़रूरत होती है.
प्रोजेक्ट अनिश्चितता
शुरुआती स्टेज की प्लानिंग मुश्किल हो सकती है, क्योंकि आम तौर पर प्रोजेक्ट शुरू करते समय, सबसे अच्छा तरीका साफ़ तौर पर नहीं दिखता. इस तरह की अनिश्चितता की वजह से, टाइमलाइन का अनुमान लगाना मुश्किल हो जाता है.
हाल ही में हुई Kaggle प्रतियोगिता में, मशीन लर्निंग प्रोजेक्ट में आने वाली मुश्किलों को दिखाया गया है. प्रतियोगिता के पहले कुछ हफ़्तों में, 350 टीमों ने हिस्सा लिया. कुछ टीमें बेंचमार्क अनुमान की क्वालिटी को 35% से 65% तक बढ़ाने में कामयाब रहीं. अगले दो हफ़्तों में, समस्या पर काम करने वाली टीमों की संख्या 350 से बढ़कर 1,400 हो गई. हालांकि, सबसे अच्छा मॉडल सिर्फ़ 68% अनुमानित क्वालिटी तक पहुंच पाया.
तीसरी इमेज में, मशीन लर्निंग के डेवलपमेंट में अनिश्चितता के बारे में बताया गया है. ऐसा करने के लिए यह दिखाया गया है कि मशीन की परफ़ॉर्मेंस में काफ़ी बढ़ोतरी हुई है, लेकिन मॉडल की क्वालिटी में बहुत ज़्यादा बढ़ोतरी नहीं हुई है.
तीसरी इमेज. दो हफ़्ते में, समस्या पर काम करने वाली टीमों की संख्या चार गुना बढ़ गई. हालांकि, मॉडल की क्वालिटी करीब-करीब वैसी ही बनी रही. इससे यह पता चलता है कि मशीन लर्निंग (एमएल) की सुविधा इस्तेमाल करने की कोशिश का अनुमान लगाने में कितनी मुश्किल हुई.
दूसरे शब्दों में, एक हज़ार से ज़्यादा टीमों ने अलग-अलग तरह के डेटा ट्रांसफ़ॉर्मेशन, आर्किटेक्चर, और हाइपर पैरामीटर के साथ प्रयोग किया. इससे, सिर्फ़ 68% अनुमान क्वालिटी वाला मॉडल तैयार किया गया.
इंडस्ट्री का एक उदाहरण, एमएल प्रोजेक्ट की नॉन-लीनियरिटी दिखाता है, जहां आउटपुट, इनपुट का अनुपात में नहीं होता. दो टीमों ने एक मॉडल को 90% अनुमान क्वालिटी पर ट्रेनिंग देने में कई महीने लगाए. हालांकि, कई टीमों को मॉडल को प्रोडक्शन के लिए तैयार करने में पांच साल से ज़्यादा समय लगे और यह 99.9% अनुमान की क्वालिटी के साथ तैयार हुआ.
इन उदाहरणों में यह हाइलाइट किया गया है कि प्रोडक्शन के लिए तैयार एमएल, जानकारी इकट्ठा करने की एक प्रोसेस है. इसमें साइंटिफ़िक और इंजीनियरिंग, दोनों की मानसिकता ज़रूरी होती है.
एक्सपेरिमेंटल अप्रोच
ज़्यादातर मामलों में, मशीन लर्निंग का इस्तेमाल करना, पारंपरिक सॉफ़्टवेयर इंजीनियरिंग के बजाय, प्रयोग करने जैसा होता है. एमएल में अलग-अलग सुविधाओं की जांच करनी, कई आर्किटेक्चर आज़माना, और हाइपर पैरामीटर ट्यून करना ज़रूरी होता है. परिभाषा के मुताबिक, एक्सपेरिमेंट के सफल होने की कोई गारंटी नहीं है. इसलिए, बेहतर होगा कि एक्सपेरिमेंट के लिए बनाए गए फ़्रेमवर्क का इस्तेमाल करके प्लान बनाया जाए.
आइए, एक सामान्य सॉफ़्टवेयर इंजीनियरिंग प्लान पर नज़र डालते हैं. इसमें यह देखा जाता है कि यह एमएल प्रोजेक्ट प्लान से कैसे अलग है.
सॉफ़्टवेयर इंजीनियरिंग प्रोजेक्ट की प्लानिंग करना
एक आम सॉफ़्टवेयर इंजीनियरिंग प्लान में, आप ज़रूरी शर्तें तय करते हैं, कॉम्पोनेंट की आउटलाइन तय करते हैं, काम का अनुमान लगाते हैं, और काम को शेड्यूल करते हैं. समाधान का एक साफ़ तरीका होता है. उदाहरण के लिए, इंजीनियरों को अक्सर इस बात की पूरी जानकारी होती है कि डिज़ाइन से जुड़ी ज़रूरी शर्तों को पूरा करने वाला ऐप्लिकेशन बनाने के लिए, किन टास्क को पूरा करना होता है.
जब वे किसी काम को पूरा करने में लगने वाले समय का अनुमान लगाते हैं, तब वे मिलते-जुलते प्रोजेक्ट के आधार पर काम का अनुमान लगा सकते हैं. हालांकि, कभी-कभी चुनौतियां सामने आती हैं—जैसे, चीज़ों पर निर्भरता या बदलाव की शर्तें बदलना. हालांकि, इनकी वजह से अनुमान लगाना कभी-कभी मुश्किल हो सकता है कि समस्या को हल करने का एक अच्छा तरीका है.
वहीं दूसरी ओर, मशीन लर्निंग प्रोजेक्ट में आम तौर पर सफलता का कोई साफ़ तरीका नहीं होता.
मशीन लर्निंग प्रोजेक्ट की प्लानिंग
ज़्यादातर मशीन लर्निंग प्रोजेक्ट के लिए, ट्रायल और गड़बड़ी की प्रोसेस में कई तरीकों को आज़माकर सबसे अच्छा समाधान मिलता है. आम तौर पर, अपनी समस्या को हल करने की कोशिश करने से पहले आपको उसका सबसे अच्छा समाधान पता नहीं होता. उदाहरण के लिए, इष्टतम सॉल्यूशन का आर्किटेक्चर एक सामान्य लीनियर मॉडल या न्यूरल नेट हो सकता है. इसके अलावा, यह डिसिज़न ट्री भी हो सकता है. हर तरीके को आज़माकर ही आपको सबसे अच्छा समाधान मिल सकता है.
इस वजह से, प्लानिंग करना मुश्किल हो जाता है. जैसा कि पहले बताया जा चुका है, एमएल प्रोजेक्ट में कितनी मेहनत करनी पड़ेगी, इसका अनुमान लगाना मुश्किल है. समस्या को हल करने की कोशिश करने पर ही, आपको अच्छे से पता चल सकता है कि समस्या को हल करने के लिए कितने समय और संसाधनों की ज़रूरत होगी.
मशीन लर्निंग का इस्तेमाल करने की योजना बनाने के लिए, यहां दी गई रणनीतियां सुझाई गई हैं:
काम के हिसाब से समय तय करें. टास्क पूरे करने या कोई ख़ास समाधान आज़माने के लिए साफ़ समयसीमा सेट करें. उदाहरण के लिए, दो हफ़्ते दिए जा सकते हैं, ताकि यह तय किया जा सके कि आपको सही तरह के डेटा का ऐक्सेस मिलेगा या नहीं. अगर आपको डेटा मिल जाता है, तो आपको दो हफ़्ते और तय करने होंगे. इसमें यह देखा जा सकता है कि आसान मॉडल से यह पता चलता है कि मशीन लर्निंग का इस्तेमाल किया जा सकता है या नहीं. अगर कोई आसान मॉडल काम नहीं करता, तो न्यूरल नेट आज़माने के लिए दो हफ़्ते और तय किए जा सकते हैं. हर एक समयसीमा के आखिर में, आपके पास यह तय करने के लिए ज़्यादा जानकारी होगी कि समस्या पर संसाधनों को लागू करना फ़ायदेमंद है या नहीं.
प्रोजेक्ट की ज़रूरी शर्तों का दायरा कम करें. अगर मशीन लर्निंग से जुड़ा कोई समाधान अच्छा दिखता है, लेकिन वह आपके प्रॉडक्ट या सेवा के लिए ज़रूरी नहीं है, तो उसकी ज़रूरी शर्तें पूरी न करें. उदाहरण के लिए, अगली तिमाही के काम की योजना बनाते समय, आप एक बहुत ही आसान समाधान आज़मा सकते हैं. ऐसा हो सकता है कि अगली तिमाही में, समाधान को बार-बार बेहतर बनाया जाए. मशीन लर्निंग टूल को लागू करके, लंबे समय तक लगातार सुधार करते हुए कई टीमें मशीन लर्निंग को असरदार बनाने में कामयाब हुई हैं.
Intern या Noogler प्रोजेक्ट. मशीन लर्निंग का इस्तेमाल करने के लिए किसी इंटर्न या Noogler को निर्देश देना और उनका मार्गदर्शन करना, एक नई जगह को एक्सप्लोर करने का अच्छा तरीका हो सकता है. प्रोजेक्ट पूरा होने के बाद, आपको इस बात की बेहतर जानकारी होगी कि मशीन लर्निंग समाधान की ज़रूरत है. साथ ही, काम करने के संभावित तरीक़ों का पता चल जाएगा या संसाधन कहीं और इस्तेमाल किए जाने चाहिए या नहीं.
किसी भी रणनीति से हारने में समझदारी है. सबसे कम लागत, लेकिन संभावित रूप से सबसे ज़्यादा फ़ायदा पाने वाले तरीके सबसे पहले आज़माएं. अगर यह तरीका काम करता है, तो आपको एक अच्छा समाधान मिल गया है. अगर ऐसा नहीं है, तो इसका मतलब है कि आपने बहुत ज़्यादा समय और संसाधन बेहद नहीं किए हैं.
जैसे-जैसे टीम को चलने वाले प्रयोग का अनुभव और उनसे जुड़े अनुभव मिलते हैं, वैसे-वैसे वे इस बात का बेहतर अनुमान लगा पाती हैं कि एक्सपेरिमेंट की कितनी ज़रूरत है, जिससे प्लानिंग का ज़्यादा अनुमान लगाया जा सकेगा. हालांकि, किसी प्रयोग के नतीजे की जानकारी हमेशा उपलब्ध नहीं होगी, इसलिए सबसे अच्छा समाधान खोजने के लिए ज़रूरी प्रयोगों की संख्या का अनुमान पहले से नहीं लगाया जा सकता.
एक्सपेरिमेंट के तौर पर सोच-विचार करने पर, अपनी टीम को कामयाब बनाने में मदद मिलती है. जब टीम के सदस्य यह समझते हैं कि हिचकिचाहट पाने के बजाय उनका काम बंद कर दिया जाए, तो टीम के सदस्य यह समझते हैं कि मशीन लर्निंग का समाधान खोजने की प्रक्रिया का हिस्सा ही इस बात का हिस्सा है. सबसे अहम बात, हिस्सेदारों के साथ मशीन लर्निंग के डेवलपमेंट में अनिश्चितता के बारे में बात करके, ज़्यादा सही उम्मीदें रखी जा सकती हैं.
ध्यान रखें
कई एमएल (मशीन लर्निंग) के तरीकों की योजना बनाने में, संभावित तौर पर समय और अनुभव लगता है. आपके प्रोजेक्ट प्लान को बार-बार अपडेट करना पड़ सकता है. जब आपकी टीम कई तरीकों से प्रयोग करती है, तो यह एक डाइनैमिक दस्तावेज़ है. इसे लगातार बेहतर बनाया जा सकता है. इन अहम आइडिया पर ध्यान देकर, आपको अपनी सफलता की संभावना बढ़ाने में मदद मिलेगी:
- हर तरीके के लिए लागत और सफलता की संभावना का अनुमान लगाएं.
- अलग-अलग तरीकों वाले पोर्टफ़ोलियो आज़माएं.
- इस बात की पहचान करें कि उसने क्या सीखा है और सिस्टम को बेहतर बनाने के लिए, एक-एक करके ऐसा करें.
- विफलताओं के लिए योजना बनाएं.
कभी-कभी, एक शुरुआती तरीका अपनाकर कामयाबी भी हासिल की जा सकती है. किसी व्यक्ति को डेटा जनरेशन पाइपलाइन या ट्रेनिंग-वैलिडेशन स्प्लिट में गड़बड़ी का पता चल सकता है. अच्छी प्लानिंग और पूरी जानकारी वाले दस्तावेज़ की मदद से, इस बात की संभावना बढ़ जाती है कि आपको ऐसा मॉडल मिल जाएगा जो आपके कारोबार की समस्या को उम्मीद से जल्दी हल कर दे.