PyTorch एक गहन शिक्षण लाइब्रेरी है जो मूल रूप से Meta Platforms द्वारा विकसित की गई थी और वर्तमान में Linux Foundation द्वारा समर्थित है। यह Torch का उत्तराधिकारी है, जो ट्रांसफॉर्मर और SGD वेरिएंट जैसे एल्गोरिदम और आर्किटेक्चर के अनुकूलित, निम्न-स्तरीय कार्यान्वयन पर निर्मित एक उच्च-स्तरीय API प्रदान करता है। यह लाइब्रेरी मॉडल प्रशिक्षण और अनुमान को कुछ पंक्तियों के कोड में सरल बनाती है, स्वचालित समानांतरीकरण की अनुमति देती है, और GPU संसाधनों का लाभ उठाने के लिए CUDA बाइंडिंग लागू करती है। 2025 तक, यह TensorFlow और Keras के साथ सबसे लोकप्रिय गहन शिक्षण लाइब्रेरी में से एक बनी हुई है, और ChatGPT, Tesla Autopilot, Uber's Pyro, और Hugging Face's Transformers सहित व्यावसायिक प्रणालियों को रेखांकित करती है।
PyTorch टेंसर को मौलिक डेटा प्रकार के रूप में उपयोग करता है, जो NumPy सरणियों के समान है, लेकिन GPU संचालन के समर्थन के साथ। प्रशिक्षण Autograd द्वारा सुगम बनाया जाता है, एक विपरीत स्वचालित विभेदन प्रणाली जो फॉरवर्ड पास के दौरान संचालन का एक निर्देशित अचक्रीय ग्राफ बनाती है, जिससे लॉस फ़ंक्शन के साथ बैकप्रोपेगेशन सक्षम होता है। लाइब्रेरी को Anaconda पैकेज प्रबंधकों के माध्यम से स्थापित किया जा सकता है और यह अनुसंधान और उद्योग दोनों में व्यापक रूप से अपनाई जाती है।
इतिहास और विकास
मूल Torch लाइब्रेरी 2001 में Idiap Research Institute द्वारा GPL लाइसेंस के तहत जारी की गई थी, जो C++ और CUDA में लिखी गई थी, और तंत्रिका नेटवर्क और सपोर्ट वेक्टर मशीन जैसी विधियों का समर्थन करती थी। लगभग 2010 में, इसे Ronan Collobert, Clement Farabet, और Koray Kavukcuoglu द्वारा Torch7 या LuaTorch के रूप में फिर से लिखा गया, जिसमें C बैकएंड और Lua फ्रंटएंड था। 2016 के मध्य में, डेवलपर्स ने torch-autograd और Chainer से प्रभावित होकर फ्रंटएंड और बैकएंड को अलग करने के लिए इसे पुनर्गठित किया, जो बदले में HIPS/autograd से प्रेरित थे। Torch7 पर विकास 2018 में बंद हो गया, जो PyTorch परियोजना द्वारा अवशोषित कर लिया गया।
Meta ने Caffe2 भी संचालित किया, लेकिन दोनों फ्रेमवर्क के मॉडल असंगत थे। सितंबर 2017 में, Meta और Microsoft ने Open Neural Network Exchange (ONNX) परियोजना बनाई ताकि फ्रेमवर्क को हार्डवेयर-विशिष्ट रनटाइम से अलग किया जा सके, जिससे NVIDIA के TensorRT जैसे निष्पादन प्रदाताओं के लिए मॉडल रूपांतरण और अनुकूलन सक्षम हो सके। Caffe2 को मार्च 2018 के अंत में PyTorch में विलय कर दिया गया। सितंबर 2022 में, Meta ने घोषणा की कि PyTorch स्वतंत्र PyTorch Foundation द्वारा शासित होगा, जो Linux Foundation की सहायक कंपनी है। PyTorch 2.0 15 मार्च 2023 को जारी किया गया था, जिसमें TorchDynamo पेश किया गया, एक Python-स्तरीय कंपाइलर जो कोड को दो गुना तक तेज करता है, प्रमुख क्लाउड प्लेटफार्मों में सुधार के साथ।
टेंसर संचालन
PyTorch Tensor वर्ग (torch.Tensor) को परिभाषित करता है ताकि संख्याओं के सजातीय बहुआयामी आयताकार सरणियों को संग्रहीत और संचालित किया जा सके। टेंसर NumPy सरणियों के समान हैं, लेकिन CUDA-सक्षम NVIDIA GPUs द्वारा संचालित किए जा सकते हैं। लाइब्रेरी ने अन्य GPU प्लेटफार्मों के लिए भी समर्थन विकसित किया है, जिसमें AMD का ROCm और Apple का Metal Framework शामिल है। यह लचीलापन विविध हार्डवेयर वातावरणों में कुशल गणना की अनुमति देता है।
तंत्रिका नेटवर्क मॉड्यूल
torch.nn मॉड्यूल तंत्रिका नेटवर्क के लिए बिल्डिंग ब्लॉक्स का एक व्यापक संग्रह प्रदान करता है, जिसमें परतें और सक्रियण फ़ंक्शन शामिल हैं। नेटवर्क इस मॉड्यूल से विरासत में मिलकर और forward() फ़ंक्शन में संचालन के अनुक्रम को परिभाषित करके बनाए जाते हैं। यह डिज़ाइन सरल रैखिक परतों से लेकर अवशिष्ट नेटवर्क और U-Nets जैसी उन्नत संरचनाओं तक जटिल मॉडल आर्किटेक्चर का समर्थन करता है, जिससे अनुसंधान और तैनाती सुगम होती है।
क्रमबद्धीकरण और फ़ाइल प्रारूप
PyTorch अपने स्वयं के फ़ाइल प्रारूप का उपयोग करके मॉडल सहेज और लोड कर सकता है, एक ZIP64 संग्रह जिसमें Python pickle फ़ाइल में मॉडल वेट होते हैं, साथ ही बाइट ऑर्डर जैसे मेटाडेटा भी होते हैं। सामान्य फ़ाइल एक्सटेंशन .pt और .pth हैं। यह क्रमबद्धीकरण मॉडल स्थिरता और साझाकरण को सक्षम बनाता है, जो उत्पादन तैनाती और सहयोगी विकास के लिए आवश्यक है।
उदाहरण उपयोग
निम्नलिखित प्रोग्राम लाइब्रेरी की निम्न-स्तरीय कार्यक्षमता को प्रदर्शित करता है। nn मॉड्यूल का उपयोग करके रैखिक परतों वाला एक सरल तंत्रिका नेटवर्क परिभाषित किया गया है, जो मॉडल बनाने और प्रशिक्षित करने की आसानी को दर्शाता है। यह उदाहरण मुख्य कार्यप्रवाह को उजागर करता है: एक नेटवर्क परिभाषित करना, एक लॉस फ़ंक्शन निर्दिष्ट करना, और Adam जैसे अनुकूलक के साथ बैकप्रोपेगेशन करना।
यह भी देखें
संबंधित विषयों में गहन शिक्षण सॉफ्टवेयर की तुलना, विभेदक प्रोग्रामिंग, DeepSpeed, ओपन-सोर्स कृत्रिम बुद्धिमत्ता, और PyTorch Lightning शामिल हैं। ये संसाधन पारिस्थितिकी तंत्र पर व्यापक संदर्भ प्रदान करते हैं।