PyTorch एक मशीन लर्निंग के लिए खुला-स्रोत पुस्तकालय है, जिसे मूल रूप से Facebook के AI अनुसंधान प्रयोगशाला द्वारा विकसित किया गया था और पहली बार 2016 में जारी किया गया था। यह Torch फ्रेमवर्क का उत्तराधिकारी है और गहन लर्निंग एल्गोरिदम के अनुकूलित निम्न-स्तरीय कार्यान्वयन पर निर्मित एक उच्च-स्तरीय अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस प्रदान करता है। 2025 तक, PyTorch कृत्रिम बुद्धिमत्ता अनुसंधान और उत्पादन के लिए सबसे व्यापक रूप से उपयोग किए जाने वाले पुस्तकालयों में से एक बना हुआ है, साथ ही TensorFlow और Keras जैसे फ्रेमवर्क के साथ। सितंबर 2022 से, पुस्तकालय PyTorch फाउंडेशन द्वारा शासित है, जो Linux फाउंडेशन की एक सहायक कंपनी है।
इतिहास
PyTorch की उत्पत्ति Torch से हुई है, जो C और Lua में लिखा गया एक मशीन लर्निंग पुस्तकालय है, जिसे 2001 में Idiap अनुसंधान संस्थान द्वारा GNU जनरल पब्लिक लाइसेंस के तहत जारी किया गया था। 2010 के आसपास, Ronan Collobert, Clement Farabet, और Koray Kavukcuoglu सहित शोधकर्ताओं ने पुस्तकालय को Torch7 के रूप में फिर से लिखा, C बैकएंड को Lua फ्रंटएंड से अलग कर दिया। 2016 के मध्य में, Facebook के डेवलपर्स ने Torch7 को और अधिक डिकपल करने के लिए रीफैक्टर किया, autograd पुस्तकालय और Chainer फ्रेमवर्क से प्रभाव लेते हुए। इस कार्य ने PyTorch के निर्माण का मार्ग प्रशस्त किया, जिसे 2016 में एक खुला-स्रोत परियोजना के रूप में जारी किया गया था। Torch7 पर विकास 2018 में बंद हो गया, और इसकी कार्यक्षमता PyTorch में समाहित हो गई।
सितंबर 2017 में, Meta और Microsoft ने गहन लर्निंग फ्रेमवर्क के बीच अंतरसंचालनीयता सक्षम करने के लिए Open Neural Network Exchange (ONNX) परियोजना शुरू की। ONNX मॉडल को फ्रेमवर्क के बीच परिवर्तित करने और विभिन्न निष्पादन प्रदाताओं, जैसे NVIDIA के TensorRT, के लिए अनुकूलित करने की अनुमति देता है। मार्च 2018 में, Caffe2 को PyTorch में विलय कर दिया गया, जिससे Meta के गहन लर्निंग प्रयासों को समेकित किया गया। 15 मार्च 2023 को PyTorch 2.0 रिलीज़ ने TorchDynamo पेश किया, जो एक Python-स्तरीय कंपाइलर है जो कोड निष्पादन को दो गुना तक तेज करता है, साथ ही प्रमुख क्लाउड प्लेटफार्मों पर प्रशिक्षण और अनुमान प्रदर्शन में महत्वपूर्ण सुधार किए।
मुख्य विशेषताएँ
PyTorch टेंसर डेटा संरचना के आसपास बनाया गया है, जो NumPy सरणियों के समान एक सजातीय बहुआयामी सरणी है। टेंसर पर केंद्रीय प्रोसेसिंग इकाइयों (CPUs) या ग्राफिक्स प्रोसेसिंग इकाइयों (GPUs) द्वारा संचालित किया जा सकता है, जिसमें NVIDIA हार्डवेयर पर CUDA, साथ ही AMD के ROCm और Apple के Metal फ्रेमवर्क के लिए समर्थन शामिल है। पुस्तकालय की स्वचालित विभेदन प्रणाली, जिसे Autograd कहा जाता है, फॉरवर्ड पास के दौरान टेंसर पर संचालन रिकॉर्ड करके एक निर्देशित चक्रीय ग्राफ (DAG) का निर्माण करती है। जब एक हानि की गणना की जाती है, तो बैकप्रोपेगेशन इस ग्राफ को पार करके ग्रेडिएंट की गणना करता है, जिनका उपयोग मॉडल पैरामीटर को अपडेट करने के लिए किया जाता है।
torch.nn मॉड्यूल तंत्रिका नेटवर्क के लिए बिल्डिंग ब्लॉक्स का एक व्यापक संग्रह प्रदान करता है, जिसमें विभिन्न परत प्रकार, सक्रियण फ़ंक्शन और हानि फ़ंक्शन शामिल हैं। मॉडल आमतौर पर torch.nn.Module को सबक्लास करके और forward विधि को लागू करके परिभाषित किए जाते हैं। यह मॉड्यूलर डिज़ाइन सरल फीडफॉरवर्ड नेटवर्क से लेकर ट्रांसफॉर्मर-आधारित मॉडल तक जटिल आर्किटेक्चर के लचीले निर्माण की अनुमति देता है।
मॉडल क्रमबद्धता
PyTorch मॉडल को उसके मूल क्रमबद्धता प्रारूप का उपयोग करके सहेजा और लोड किया जा सकता है, जो एक ZIP64 संग्रह है जिसमें Python pickle फ़ाइल में मॉडल वेट, साथ ही बाइट ऑर्डर जैसे मेटाडेटा शामिल हैं। .pt और .pth फ़ाइल एक्सटेंशन आमतौर पर इन फ़ाइलों के लिए उपयोग किए जाते हैं। यह प्रारूप प्रशिक्षित मॉडल को विभिन्न वातावरणों में आसानी से साझा करने और तैनात करने में सक्षम बनाता है।
उदाहरण
निम्नलिखित कोड PyTorch की निम्न-स्तरीय कार्यक्षमता को प्रदर्शित करता है। यह torch.nn मॉड्यूल का उपयोग करके रैखिक परतों के साथ एक सरल तंत्रिका नेटवर्क को परिभाषित करता है और एक फॉरवर्ड पास करता है।
import torch
import torch.nn as nn
class SimpleNet(nn.Module):
def __init__(self):
super(SimpleNet, self).__init__()
self.fc1 = nn.Linear(10, 5)
self.fc2 = nn.Linear(5, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)यह भी देखें
- गहन लर्निंग सॉफ्टवेयर की तुलना
- मशीन लर्निंग सॉफ्टवेयर की तुलना
- विभेदनीय प्रोग्रामिंग
- DeepSpeed
- खुला-स्रोत कृत्रिम बुद्धिमत्ता
- PyTorch Lightning
संदर्भ
- PyTorch दस्तावेज़ीकरण। उपलब्ध: https://pytorch.org/docs/stable/index.html
- PyTorch GitHub रिपॉजिटरी। उपलब्ध: https://github.com/pytorch/pytorch
- Paszke, A. एट अल. (2019)। PyTorch: An Imperative Style, High-Performance Deep Learning Library। इन Advances in Neural Information Processing Systems 32.