← नवीनतम पेपर
🤖 AI

torch-sla: Differentiable Sparse Linear Algebra with Adjoint Solvers and Sparse Tensor Parallelism for PyTorch

यह शोध पत्र torch-sla को प्रस्तुत करता है, जो एक ओपन-सोर्स PyTorch लाइब्रेरी है जो विविध CPU और GPU बैकएंड्स पर विभिन्न सॉल्वर्स के लिए एक एकल autograd-जागरूक API प्रदान करके डिफरेंशिएबल स्पार्स लीनियर अलजेब्रा को एकीकृत करती है, जबकि यह बैच ऑपरेशन्स और O(1)-ग्राफ एडजॉइंट फ्रेमवर्क के माध्यम से स्केलेबल डिस्ट्रिब्यूटेड मल्टी-GPU निष्पादन का समर्थन करती है।

मूल लेखक: Mingyuan Chi, Shizheng Wen

प्रकाशित 2026-05-07
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Mingyuan Chi, Shizheng Wen

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप एक विशाल, जटिल पहेली को हल करने की कोशिश कर रहे हैं। कंप्यूटर विज्ञान और मशीन लर्निंग की दुनिया में, यह पहेली अक्सर एक "स्पार्स लीनियर सिस्टम" (sparse linear system) होती है—अंकों का एक विशाल ग्रिड जहाँ अधिकांश सेल खाली (शून्य) होते हैं, लेकिन कुछ भरे हुए सेल ही सब कुछ समझने की कुंजी होते हैं।

लंबे समय तक, लोकप्रिय प्रोग्रामिंग टूल PyTorch (जिसका उपयोग कई AI शोधकर्ता करते हैं) के पास एक समस्या थी: यह घने पज़ल्स (जहाँ हर सेल भरा होता है) को संभालने में बहुत अच्छा था, लेकिन इन विशाल, अधिकतर खाली पज़ल्स को हल करने में यह बहुत खराब था—खासकर तब जब इसे अपनी गलतियों से सीखना हो। यदि आप इसे हल करने की कोशिश करते, तो कंप्यूटर या तो क्रैश हो जाता, या अविश्वसनीय रूप से धीमा हो जाता, या फिर परिणाम से सीखना भूल जाता।

यहाँ torch-sla आता है, जो एक नया ओपन-सोर्स लाइब्रेरी है जो इन पहेलियों के लिए एक यूनिवर्सल ट्रांसलेटर और एक सुपर-एफिशिएंट मैकेनिक की तरह काम करता है। यह कैसे काम करता है, इसके लिए सरल उपमाओं का उपयोग किया गया है:

1. "स्मार्ट डिस्पैचर" (यूनिफाइड बैकएंड)

कल्पना कीजिए कि आप एक पैकेज लेकर डिलीवरी ड्राइवर हैं। आपको उसे एक गंतव्य तक पहुँचाना है, लेकिन सड़क की स्थितियाँ बदलती रहती हैं: कभी यह एक छोटा शहर की गली होती है, कभी एक विशाल हाईवे, और कभी आप एक अलग देश में होते हैं।

पहले, आपको हर एक यात्रा के लिए अलग वाहन मैन्युअल रूप से चुनना पड़ता था (छोटे कामों के लिए साइकिल, बड़े कामों के लिए ट्रक, पानी के लिए नाव)। यदि आपने गलत वाहन चुना, तो आपने समय बर्बाद किया या आप फंस गए।

torch-sla एक स्मार्ट डिस्पैचर की तरह है। आप बस कहते हैं, "मुझे इस पहेली को हल करना है," और यह स्वचालित रूप से जाँच करता है:

  • आप कहाँ हैं? (क्या आपका कंप्यूटर CPU का उपयोग कर रहा है या एक शक्तिशाली ग्राफिक्स कार्ड/GPU का?)
  • पहेली कितनी बड़ी है? (क्या यह 100 टुकड़ों वाली छोटी पहेली है या 10 करोड़ टुकड़ों वाली एक विशाल पहेली?)
  • इसका आकार क्या है? (क्या यह पूरी तरह से सममित/सिमेट्रिकल है?)

इन सुरागों के आधार पर, यह तुरंत पांच अलग-अलग विकल्पों के गैरेज (जिसमें SciPy, NVIDIA और स्वयं PyTorch के टूल्स शामिल हैं) में से सबसे अच्छा "वाहन" (सॉल्वर) चुन लेता है। आपको यह जानने की ज़रूरत नहीं है कि किसे चुनना है; लाइब्रेरी आपके लिए यह काम करती है।

2. "जादुई शॉर्टकट" (एडजॉइंट डिफरेंशिएशन)

यह इस लाइब्रेरी का सबसे जादुई करतब है।

पुराना तरीका (नेइव बैकप्रोपैगेशन):
कल्पना कीजिए कि आप एक अंधेरी भूलभुलैया (maze) में चल रहे हैं, बाहर निकलने का रास्ता खोजने के लिए 1,000 कदम उठा रहे हैं। अपनी यात्रा से सीखने के लिए, आप हर एक कदम, अपने पैरों की सटीक स्थिति और हर क्षण के वायु दबाव को लिखने का निर्णय लेते हैं। जब आप अंत में पहुँचते हैं, तो आपके पास नोट्स की 1,000 पृष्ठों वाली एक नोटबुक होती है। यदि आप वापस जाकर देखना चाहते हैं कि आपने कहाँ गलती की, तो आपको उन 1,000 पृष्ठों को पलटना होगा। यदि भूलभुलैया बड़ी होती है, तो आपकी नोटबुक बहुत बड़ी हो जाएगी, और आपका कंप्यूटर उन नोट्स को रखने के लिए केवल मेमोरी (RAM) की कमी के कारण क्रैश हो जाएगा।

torch-sla का तरीका (एडजॉइंट सॉल्वर):
हर कदम को लिखने के बजाय, torch-sla इम्प्लिसिट फंक्शन थ्योरम नामक गणितीय सिद्धांत पर आधारित एक "जादुई शॉर्टकट" का उपयोग करता है।
इसे ऐसे सोचें: आप भूलभुलैया में एक बार चलते हैं। जब आप बाहर पहुँचते हैं, तो अपने कदमों को दोबारा ट्रेस करने के बजाय, आप अपने दिमाग में तुरंत "रिवर्स मैप" की गणना कर लेते हैं। आपको केवल शुरुआत, अंत और भूलभुलैया के नियमों को याद रखने की आवश्यकता है।

  • परिणाम: चाहे भूलभुलैया में 10 कदम लगे हों या 10,000, आपकी "नोटबुक" का आकार एक समान छोटा रहता है।
  • लाभ: शोध पत्र दिखाता है कि यह पुराने तरीके की तुलना में 195 गुना अधिक मेमोरी बचाता है। यह आपको एक एकल कंप्यूटर पर उन विशाल पज़ल्स को हल करने की अनुमति देता है जो पहले सिस्टम को क्रैश कर देते थे।

3. "टीम हडल" (डिस्ट्रीब्यूटेड सॉल्वर्स)

क्या होगा अगर पहेली इतनी बड़ी हो कि एक कंप्यूटर उसे संभाल ही न सके? आपको कंप्यूटरों की एक टीम की आवश्यकता है (जैसे दोस्तों का एक समूह एक विशाल भित्ति चित्र/म्यूरल पर काम कर रहा हो)।

आमतौर पर, जब दोस्त म्यूरल के अलग-अलग हिस्सों पर काम करते हैं, तो उन्हें यह सुनिश्चित करने के लिए आपस में चिल्लाना पड़ता है कि किनारे आपस में मिल रहे हैं या नहीं। कंप्यूटर की भाषा में, इसे "हेलो एक्सचेंज" (halo exchange) कहा जाता है।

  • समस्या: जब आप अंतिम चित्र से सीखने की कोशिश करते हैं, तो पुराने टूल्स यह नहीं जानते थे कि सुधारों को सही लोगों तक वापस कैसे "चिल्लाकर" भेजा जाए।
  • torch-sla समाधान: यह कंप्यूटरों को सुधारों को उलटे क्रम में पास करना सिखाता है। यदि कंप्यूटर A, कंप्यूटर B को डेटा का एक हिस्सा भेजता है, तो torch-sla यह सुनिश्चित करता है कि जब लर्निंग (सीखना) होती है, तो कंप्यूटर B सुधार को वापस कंप्यूटर A को बिल्कुल सही तरीके से भेजता है। यह लाइब्रेरी को तीन शक्तिशाली GPU पर 40 करोड़ अज्ञात (unknowns) तक स्केल करने की अनुमति देता है।

4. यह वास्तव में क्या कर सकता है?

शोध पत्र यह प्रदर्शित करता है कि यह लाइब्रेरी निम्नलिखित को संभाल सकती है:

  • डायरेक्ट सॉल्वर्स (Direct Solvers): मध्यम आकार की पहेलियों के लिए कोड को तुरंत क्रैक करना।
  • इटरेटिव सॉल्वर्स (Iterative Solvers): विशाल पहेलियों के लिए चरण-दर-चरण अनुमान लेना।
  • नॉनलीनियर और आइजनवैल्यू सॉल्वर्स (Nonlinear & Eigenvalue Solvers): उन पहेलियों को संभालना जहाँ नियम हल करते समय बदलते रहते हैं, या डेटा में विशिष्ट "कंपनों" (आइजनवैल्यू) को खोजना।
  • बैचिंग (Batching): एक ही समय में हजारों पहेलियों को हल करना (जैसे एक साथ 1,000 अलग-अलग भूलभुलैया को हल करना)।

वास्तविक दुनिया का परीक्षण

यह साबित करने के लिए कि यह काम करता है, लेखकों ने "इनवर्स कोएफिशिएंट लर्निंग" नामक एक परीक्षण चलाया।
कल्पना कीजिए कि आप एक अंतिम छाया (समाधान) देखते हैं और आप पता लगाना चाहते हैं कि किस वस्तु (इनपुट) ने वह छाया बनाई है।

  • उन्होंने छिपी हुई वस्तु के आकार को उसकी छाया को देखकर "सीखने" के लिए torch-sla का उपयोग किया।
  • लाइब्रेरी ने एक मिनट से भी कम समय में 99.77% सटीकता के साथ छिपी हुई वस्तु का सफलतापूर्वक पता लगा लिया।
  • महत्वपूर्ण बात यह है कि शोधकर्ता को यह सीखने की प्रक्रिया शुरू करने के लिए कोई जटिल गणितीय कोड नहीं लिखना पड़ा; उन्होंने बस एक सरल कमांड कॉल की: A.solve(f)

सारांश

torch-sla PyTorch इकोसिस्टम में एक बड़े अंतर को भरता है। यह विशाल, स्पार्स गणितीय पहेलियों को हल करने के कठिन, मेमोरी-गहन कार्य को लेता है और इसे बनाता है:

  1. स्वचालित: यह काम के लिए सबसे अच्छा टूल खुद चुनता है।
  2. कुशल: यह मेमोरी बचाने के लिए "जादुई शॉर्टकट" का उपयोग करता है।
  3. स्केलेबल: यह कंप्यूटरों की टीमों को निर्बाध रूप से मिलकर काम करने की अनुमति देता है।
  4. सीखने योग्य: यह AI मॉडल को बिना टूटे इन जटिल गणितीय समस्याओं से सीधे सीखने की अनुमति देता है।

यह अनिवार्य रूप से वह लापता कड़ी है जो PyTorch उपयोगकर्ताओं को उन प्रकार की वैज्ञानिक और इंजीनियरिंग समस्याओं से निपटने में सक्षम बनाती है जो पहले अन्य, अधिक विशिष्ट प्रोग्रामिंग वातावरणों में ही संभव थीं।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →