2022 में PyTorch और TensorFlow की तुलना
(assemblyai.com)-
आम तौर पर कहा जाता है कि TensorFlow इंडस्ट्री के लिए है और PyTorch रिसर्च के लिए, लेकिन यह पुरानी जानकारी पर आधारित बात है
-
व्यावहारिक दृष्टि से देखें तो तुलना आमतौर पर 3 बातों पर आकर ठहरती है
→ मॉडल उपलब्धता: सार्वजनिक रूप से इस्तेमाल किए जा सकने वाले मॉडल कितने हैं
→ डिप्लॉयमेंट इन्फ्रास्ट्रक्चर: कितनी दक्षता से डिप्लॉय किया जा सकता है
→ इकोसिस्टम: विभिन्न environments/hardware का समर्थन
Model Availability
-
PyTorch और TensorFlow, दोनों के अपने आधिकारिक मॉडल रिपॉज़िटरी हैं
-
HuggingFace
→ 85% मॉडल केवल PyTorch पर ही उपलब्ध हैं, और जो एक्सक्लूसिव नहीं हैं उनमें भी 50% इस्तेमाल किए जा सकते हैं. पूरे में से सिर्फ 16% TensorFlow पर उपलब्ध हैं (केवल 8% सिर्फ TF पर)
→ Top 30 लोकप्रिय मॉडलों के मामले में, सभी PyTorch पर उपलब्ध हैं, लेकिन TensorFlow पर उनमें से केवल 18 उपलब्ध हैं
- शोध-पत्र
→ हर साल जमा होने वाले शोध-पत्रों में PyTorch का उपयोग लगातार बढ़ रहा है
→ 2017 में 7% से शुरू होकर 2021 में यह लगभग 80% तक पहुंच गया
→ TensorFlow 1 की कठिनाइयों के कारण बहुत से लोगों ने PyTorch चुना
→ 2019 में आए TensorFlow 2 में इन कठिनाइयों में काफी सुधार हुआ, लेकिन तब तक PyTorch रिसर्च-केंद्रित विकल्प के रूप में स्थापित हो चुका था
→ 2018 में TensorFlow इस्तेमाल करने वाले शोधकर्ताओं में से 55% ने 2019 में PyTorch अपनाया
→ 2018 में PyTorch इस्तेमाल करने वाले शोधकर्ताओं में से 85% ने 2019 में भी PyTorch का ही उपयोग किया
- Papers With Code के डेटा के अनुसार
→ TensorFlow का उपयोग लगातार घट रहा है, जबकि PyTorch और अन्य frameworks का उपयोग बढ़ रहा है
→ TensorFlow 2 के रिलीज़ के बाद भी यह रुझान जारी रहा. TF1 में आई पुरानी कठिनाइयों की छवि को पलटना पर्याप्त नहीं रहा
-
निष्कर्षतः मॉडल उपलब्धता के मामले में PyTorch ने बाज़ार पर पकड़ बना ली है
-
कुछ अन्य अपवाद
→ GoogleAI मुख्य रूप से TensorFlow का उपयोग करता था, लेकिन Google Brain ने JAX/Flax का उपयोग किया
→ DeepMind ने भी JAX अपनाया, और JAX के लिए neural network library Haiku भी विकसित की (Sonnet for JAX)
→ JAX: Google का अलग से बनाया गया framework, जो रिसर्च क्षेत्र में लोकप्रिय हो रहा है
Deployment
- TensorFlow शुरू से ही deployment-oriented applications के लिए अनुकूल था
→ TensorFlow Serving, TensorFlow Lite आदि के जरिए cloud/server/mobile/IoT devices पर बिना ज्यादा परेशानी के डिप्लॉय किया जा सकता है
- PyTorch deployment के नज़रिए से काफी पीछे था, लेकिन हाल के वर्षों में इस अंतर को कम करने की कोशिश की है
→ TorchServe और PyTorch Live
- निष्कर्षतः, फिलहाल deployment के मामले में TensorFlow अभी भी बेहतर है
→ खासकर TFLite का local और Coral devices पर इस्तेमाल किया जा सकना अन्य इंडस्ट्री उपयोगों के लिए भी बहुत महत्वपूर्ण है
→ PyTorch Live केवल mobile पर केंद्रित है, और TorchServe अभी शुरुआती अवस्था में है
Ecosystems
- PyTorch
→ आधिकारिक PyTorch Hub मौजूद है: इसमें Audio/Vision/NLP आदि के कई मॉडल हैं
→ SpeechBrain: आधिकारिक open source speech toolkit, जिसमें ASR/स्पीकर पहचान/ऑथेंटिकेशन आदि कई सुविधाएं हैं
→ Fast.ai सहित कई तरह के tools और libraries उपलब्ध हैं
→ TorchElastic: AWS+Facebook collaboration project
→ TorchX: तेज़ machine learning development और deployment के लिए library
→ PyTorch Lightning: Keras of PyTorch
- TensorFlow
→ आधिकारिक TensorFlow Hub: BERT सहित कई मॉडल
→ Model Garden: SOTA(State-of-the-ART) मॉडलों के source code का repository
→ TensorFlow Extended(TFX): मॉडल deployment के लिए E2E platform
→ Vertex AI: Google Cloud का unified machine learning platform
→ Media Pipe: face recognition, hand tracking, object recognition जैसी सुविधाओं के लिए machine learning pipelines बनाने वाला multimodal, cross-platform framework
→ Coral: local AI वाले products (IoT) को support करने के लिए बनाया गया toolkit
→ TensorFlow.js: machine learning के लिए JavaScript library
→ TensorFlow Cloud: local development environment को Google Cloud से जोड़ता है
→ Colab: cloud-based notebook environment (Jupyter जैसा)
→ Playground: neural network की बुनियाद समझने के लिए अच्छा educational tool
→ Datasets: Google द्वारा नियमित रूप से जारी datasets को संग्रहित करता है (PyTorch users भी उपयोग कर सकते हैं)
- निष्कर्षतः, इकोसिस्टम के मामले में TensorFlow बेहतर है
→ इसमें Google ने लंबे समय से काफी निवेश किया है
→ Google Cloud से कनेक्ट करना या Coral devices जैसे targets पर पोर्ट करना कुछ क्षेत्रों में इसे और बेहतर बनाता है
तो दोनों में से क्या इस्तेमाल करना चाहिए?
- अगर आप इंडस्ट्री में हैं, तो यह इस पर निर्भर कर सकता है कि आप किस इंडस्ट्री में हैं (मूल लेख में आसान चयन के लिए flow chart दिया गया है)
→ यदि आप इंडस्ट्री environment में deep learning इस्तेमाल कर रहे हैं, तो संभव है कि आप पहले से TensorFlow उपयोग कर रहे हों, और उसी पर बने रहना ठीक है
→ TorchServe की वजह से PyTorch पर भी विचार किया जा सकता है
→ अगर mobile है तो PyTorch Live, और अगर audio/video input है तो TensorFlow
→ अगर IoT में AI इस्तेमाल करना है, तो TensorFlow Lite + Coral
- अगर आप शोधकर्ता हैं?
→ संभव है कि आप पहले से ही PyTorch इस्तेमाल कर रहे हों, और उसी पर बने रहना ठीक है
→ एक विशेष अपवाद के रूप में, यदि आप Reinforcement Learning करते हैं तो TensorFlow पर विचार करें
→ यदि आप TensorFlow नहीं इस्तेमाल करना चाहते, तो JAX पर भी एक बार विचार किया जा सकता है
→ आप जो भी चुनें, 2022 में JAX पर नज़र रखनी चाहिए
- अगर आप प्रोफेसर हैं?
→ यह पाठ्यक्रम के लक्ष्य पर निर्भर कर सकता है
→ अगर आप ऐसे इंजीनियर तैयार करना चाहते हैं जो सीधे काम में machine learning का उपयोग करें, तो TensorFlow
→ अगर deep learning और deep learning models को समझाना लक्ष्य है, तो PyTorch
- अगर आप करियर बदल रहे हैं?
→ PyTorch / TensorFlow दोनों अच्छे विकल्प हैं
→ जो इस्तेमाल करने में आसान लगे, उसे चुनें
→ यदि आप किसी खास framework से बंधे नहीं हैं, तो इंडस्ट्री में standard के रूप में उपयोग होने वाला TensorFlow बेहतर हो सकता है
→ नौकरी ढूंढने/भर्ती के संदर्भ में भी TensorFlow का पक्ष अधिक मज़बूत था
- अगर आप शौकिया deep learning कर रहे हैं?
→ यह इस पर निर्भर करता है कि आप क्या करना चाहते हैं, लेकिन मूल रूप से PyTorch बेहतर है
- अगर आप deep learning में बिल्कुल शुरुआती हैं?
→ Keras से शुरुआत करने की सिफारिश है
→ अगर आप Python native जैसा environment चाहते हैं, तो PyTorch, खासकर PyTorch Lightning
1 टिप्पणियां
2019/2020 में आई बातों से इसकी तुलना करके देखना भी दिलचस्प है.
मशीन लर्निंग फ्रेमवर्क्स की वर्तमान स्थिति [2019] https://hi.news.hada.io/topic?id=696
मशीन लर्निंग विशेषज्ञों की नज़र में 2020 में AI की दिशा https://hi.news.hada.io/topic?id=1213
खुद से AI सीखकर Google में पहुंचे शोधकर्ता का इंटरव्यू https://hi.news.hada.io/topic?id=1347
TensorFlow ecosystem: मशीन लर्निंग डेवलपमेंट से deployment तक https://hi.news.hada.io/topic?id=1757
Google द्वारा बनाया गया मशीन लर्निंग क्रैश कोर्स with TensorFlow [कोरियाई] https://hi.news.hada.io/topic?id=1052