Torch एक ओपन-सोर्स Machine learning लाइब्रेरी और वैज्ञानिक कंप्यूटिंग फ्रेमवर्क है, जो Lua स्क्रिप्टिंग भाषा पर आधारित है। 2002 में Idiap Research Institute द्वारा जारी, इसने C में लागू डीप लर्निंग एल्गोरिदम के लिए LuaJIT इंटरफेस प्रदान किया, जिससे यह Artificial intelligence और Neural network मॉडल पर काम करने वाले शोधकर्ताओं के लिए एक उल्लेखनीय प्रारंभिक उपकरण बन गया। लाइब्रेरी के डिजाइन ने लचीलेपन और मॉड्यूलरिटी पर जोर दिया, जिसने शैक्षणिक और औद्योगिक सेटिंग्स में इसके अपनाने में योगदान दिया। 2017 में, Torch का विकास PyTorch में स्थानांतरित हो गया, जो लाइब्रेरी का Python में एक पोर्ट है, जो तब से Deep learning अनुसंधान में एक प्रमुख फ्रेमवर्क बन गया है।
कोर पैकेज: torch
Torch का केंद्रीय पैकेज torch पैकेज है, जो एक लचीला N-आयामी सरणी प्रदान करता है जिसे Tensor के रूप में जाना जाता है। यह Tensor इंडेक्सिंग, स्लाइसिंग, ट्रांसपोज़िंग, टाइप-कास्टिंग, रीसाइज़िंग, स्टोरेज साझा करने और क्लोनिंग के लिए बुनियादी रूटीन का समर्थन करता है, जो अधिकांश अन्य पैकेजों द्वारा उपयोग की जाने वाली मुख्य वस्तु बनाता है। इन संरचनात्मक संचालनों के अलावा, Tensor max, min, और sum जैसे गणितीय कार्यों, uniform, normal, और multinomial सहित सांख्यिकीय वितरण, और dot product, matrix-vector multiplication, और matrix-matrix multiplication जैसे बुनियादी रैखिक बीजगणित सबप्रोग्राम (BLAS) संचालन का समर्थन करता है।
torch पैकेज अपने पारिस्थितिकी तंत्र में उपयोग किए जाने वाले सुविधा कार्यों के माध्यम से ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और सीरियलाइज़ेशन को भी सरल बनाता है। torch.class(classname, parentclass) फ़ंक्शन ऑब्जेक्ट फैक्ट्री या क्लास बनाता है, जिससे डेवलपर्स कस्टम डेटा संरचनाओं को परिभाषित कर सकते हैं। जब एक कंस्ट्रक्टर को कॉल किया जाता है, Torch एक उपयोगकर्ता-परिभाषित metatable के साथ एक Lua तालिका को आरंभ करता है, जिससे तालिका एक ऑब्जेक्ट में बदल जाती है। इस फैक्ट्री के माध्यम से बनाई गई वस्तुओं को सीरियलाइज़ किया जा सकता है जब तक कि उनमें Lua coroutines या कच्चे userdata जैसी गैर-सीरियलाइज़ करने योग्य संस्थाओं के संदर्भ न हों; हालांकि, userdata को सीरियलाइज़ किया जा सकता है यदि इसे read() और write() विधियों के साथ एक तालिका में लपेटा गया हो।
न्यूरल नेटवर्क पैकेज: nn
nn पैकेज Neural network आर्किटेक्चर बनाने के लिए डिज़ाइन किया गया है। यह मॉड्यूलर ऑब्जेक्ट्स से बना है जो एक सामान्य Module इंटरफेस साझा करते हैं, जिसमें forward() और backward() विधियाँ क्रमशः फीडफॉरवर्ड और बैकप्रोपेगेशन को सक्षम करती हैं। इन मॉड्यूल को Sequential, Parallel, और Concat जैसे कंपोजिट का उपयोग करके जोड़ा जा सकता है ताकि कार्य-विशिष्ट ग्राफ बनाए जा सकें। Linear, Tanh, और Max जैसे बुनियादी घटक बिल्डिंग ब्लॉक के रूप में शामिल हैं। यह मॉड्यूलर इंटरफेस पहले-क्रम स्वचालित विभेदन प्रदान करता है, जिससे शोधकर्ता मैन्युअल रूप से ग्रेडिएंट व्युत्पन्न किए बिना मॉडल बना सकते हैं।
लॉस फ़ंक्शन Criterion के उपवर्गों के रूप में लागू किए जाते हैं, जो लॉस की गणना और ग्रेडिएंट प्रसार के लिए forward() और backward() विधियों के साथ Module इंटरफेस को दर्शाता है। सामान्य मानदंडों में माध्य वर्ग त्रुटि के लिए MSECriterion और क्रॉस-एन्ट्रॉपी लॉस के लिए ClassNLLCriterion शामिल हैं, जो विशिष्ट कार्यों पर प्रशिक्षण की सुविधा प्रदान करते हैं। पैकेज में स्टोकेस्टिक ग्रेडिएंट डिसेंट लागू करने के लिए एक StochasticGradient क्लास भी शामिल है, हालांकि optim पैकेज momentum और weight decay नियमितीकरण जैसे अतिरिक्त विकल्प प्रदान करता है।
अतिरिक्त पैकेज और पारिस्थितिकी तंत्र
आधिकारिक पैकेजों के अलावा, कई तृतीय-पक्ष लाइब्रेरी Torch की क्षमताओं का विस्तार करती हैं, जिसमें समानांतरता, अतुल्यकालिक इनपुट/आउटपुट, और छवि प्रसंस्करण जैसे क्षेत्र शामिल हैं। ये पैकेज आमतौर पर LuaRocks के माध्यम से स्थापित किए जाते हैं, जो Torch वितरण के साथ शामिल Lua पैकेज मैनेजर है। पारिस्थितिकी तंत्र की मॉड्यूलरिटी ने प्रयोग को प्रोत्साहित किया, और विशेष उपकरणों की उपलब्धता ने Torch को विविध अनुसंधान आवश्यकताओं के लिए अनुकूल बना दिया।
अनुप्रयोग और अपनाना
Torch का उपयोग शैक्षणिक और औद्योगिक दोनों सेटिंग्स में हुआ। इसे Facebook AI Research Group, IBM, Yandex, और Idiap Research Institute द्वारा अपनाया गया, जिसमें Facebook ने एक्सटेंशन मॉड्यूल का एक सेट ओपन-सोर्स सॉफ्टवेयर के रूप में जारी किया। लाइब्रेरी को Android और iOS प्लेटफार्मों पर तैनाती के लिए भी विस्तारित किया गया था, और इसका उपयोग न्यूरल नेटवर्क में डेटा प्रवाह के लिए हार्डवेयर कार्यान्वयन बनाने के लिए किया गया था। इन अनुप्रयोगों ने वास्तविक दुनिया के मशीन लर्निंग कार्यों को संभालने में Torch की बहुमुखी प्रतिभा को उजागर किया, अनुसंधान प्रोटोटाइप से लेकर उत्पादन प्रणालियों तक।
विरासत और उत्तराधिकार
Torch का विकास 2017 में बंद हो गया जब परियोजना PyTorch में स्थानांतरित हो गई, जो Python-आधारित पोर्ट है जिसने Torch की कई मुख्य अवधारणाओं को बनाए रखा जबकि Python के व्यापक पारिस्थितिकी तंत्र का लाभ उठाया। PyTorch तब से आधुनिक Machine learning अनुसंधान का एक आधारशिला बन गया है, जो Transformer (architecture) मॉडल और बड़े पैमाने पर Generative AI प्रणालियों जैसे क्षेत्रों में प्रगति को शक्ति प्रदान करता है। एक अग्रदूत के रूप में, Torch ने टेंसर संचालन और मॉड्यूलर न्यूरल नेटवर्क डिजाइन में मौलिक कार्य किया जिसने बाद के फ्रेमवर्क को प्रभावित किया। हालांकि, Lua पर इसका जोर Python-आधारित विकल्पों की तुलना में इसके व्यापक अपनाने को सीमित करता है, एक कारक जिसने अंततः संक्रमण में योगदान दिया।
विरासत और प्रभाव
Torch का प्रभाव इसके प्रत्यक्ष उत्तराधिकारियों से परे है। इसकी मॉड्यूलर आर्किटेक्चर और लचीलेपन पर जोर ने बाद के Machine learning लाइब्रेरी के डिजाइन को सूचित किया, और उच्च-स्तरीय स्क्रिप्टिंग के साथ C-समर्थित एल्गोरिदम का उपयोग प्रदर्शन-उन्मुख फ्रेमवर्क के लिए एक मिसाल स्थापित करता है। PyTorch में संक्रमण ने Torch के योगदान को व्यापक रूप से उपयोग किए जाने वाले उपकरण में समेकित किया, जिससे Artificial intelligence सॉफ्टवेयर विकास के इतिहास में इसकी भूमिका मजबूत हुई। आज, PyTorch कई अनुप्रयोगों को शक्ति प्रदान करता है, जिसमें Large language model प्रशिक्षण और Generative AI प्रणालियाँ शामिल हैं, जो Torch द्वारा शुरू की गई मौलिक अवधारणाओं पर निर्माण करती हैं।
यह भी देखें
- PyTorch: Torch का Python उत्तराधिकारी।
- Machine learning: अध्ययन का व्यापक क्षेत्र।
- Deep learning: मशीन लर्निंग का एक उपसमुच्चय जिसे Torch ने समर्थन किया।