← नवीनतम पेपर
🤖 machine learning

Memory-Efficient Activation Checkpointing with Sliding Window and Hirschberg's Algorithm for 0/1 Knapsack Solving in PyTorch

यह शोध पत्र पायटॉर्च (PyTorch) के लिए एक मेमोरी-कुशल एक्टिवेशन चेकपॉइंटिंग सॉल्वर पेश करता है जो पीक मेमोरी उपयोग को O(nW)O(nW) से घटाकर O(W)O(W) करने के लिए स्लाइडिंग विंडो और हिरशबर्ग (Hirschberg's) एल्गोरिदम को संयोजित करता है, जिससे 25-28% रनटाइम स्पीडअप के साथ काफी बड़े 0/1 नैपसैक (knapsack) समस्याओं को हल करना सक्षम होता है और इसके बाद पायटॉर्च 2.10 में इसका एकीकरण किया गया है।

मूल लेखक: Jędrzej Maczan

प्रकाशित 2026-08-11
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Jędrzej Maczan

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

कल्पना कीजिए कि आप दुनिया का सबसे स्वादिष्ट, जटिल केक बनाने की कोशिश कर रहे हैं, लेकिन आपके पास केवल एक छोटा सा, तंग किचन है। आपके पास एक ऐसी रेसिपी है जिसके लिए आपको अपने द्वारा मिलाई गई हर एक सामग्री, हर तापमान परिवर्तन और हर फेंटने की गति का हिसाब रखना होगा ताकि आप बाद में इस प्रक्रिया को पूरी तरह से उल्टा (reverse) करके देख सकें कि केक कैसा बना। समस्या यह है कि आपका किचन काउंटर (आपका कंप्यूटर मेमोरी) उन सभी नोट्स को रखने के लिए बहुत छोटा है। यदि आप सब कुछ लिखने की कोशिश करते हैं, तो काउंटर भर जाता है, और आपको बेकिंग रोकनी पड़ती है। यह विशाल आर्टिफिशियल इंटेलिजेंस मॉडल को प्रशिक्षित करने वाले वैज्ञानिकों का दैनिक संघर्ष है। उन्हें एआई को सिखाने के लिए बहुत से चरणों को याद रखने की आवश्यकता होती है, लेकिन उनके कंप्यूटरों में जगह खत्म हो जाती है। इस समस्या को हल करने के लिए, वे "एक्टिवेशन चेकपॉइंटिंग" नामक एक चतुर ट्रिक का उपयोग करते हैं। हर कदम को लिखने के बजाय, वे सबसे महत्वपूर्ण कदमों को चुनते हैं जिन्हें सहेजना है और बाद में कम महत्वपूर्ण कदमों को दोबारा करने के लिए सहमत होते हैं। यह वैसा ही है जैसे यह तय करना कि छोटे फोटो एल्बम में कौन सी तस्वीरें रखनी हैं और किन तस्वीरों को आप फिर से ले सकते हैं यदि आप उन्हें भूल जाते हैं। लक्ष्य उस पूरे केक बनाने की प्रक्रिया को उस छोटे से किचन में फिट करना है बिना रेसिपी का जादू खोए।

लंबे समय तक, पायटॉर्च (PyTorch) नामक कंप्यूटर प्रोग्राम, जिसका उपयोग कई एआई वैज्ञानिक इन मॉडल्स को बनाने के लिए करते हैं, के पास यह तय करने का एक विशिष्ट तरीका था कि किन चरणों को सहेजना है। उन्होंने इस निर्णय को "0/1 नैपसैक प्रॉब्लम" (0/1 Knapsack Problem) नामक एक क्लासिक पहेली की तरह माना। कल्पना कीजिए कि आप एक यात्री हैं जिसके पास एक बैकपैक है जो केवल एक निश्चित वजन ही उठा सकता है। आपके पास वस्तुओं की एक सूची है, जिनमें से प्रत्येक का एक वजन और एक मूल्य (वैल्यू) है (जो आपकी मदद करता है)। आप उन वस्तुओं को चुनना चाहते हैं जो बिना आपका बैकपैक तोड़े सबसे अधिक मूल्य प्रदान करती हैं। पायटॉर्च का डिफ़ॉल्ट तरीका इस पहेली को हल करने के लिए एक विशाल कागज की शीट पर वस्तुओं के हर संभावित संयोजन को लिखने जैसा था। हालांकि यह तरीका एकदम सटीक था और सबसे अच्छा उत्तर ढूंढता था, लेकिन वह कागज इतना बड़ा हो जाता था कि कंप्यूटर की मेमोरी फट जाती थी, जिससे प्रोग्राम क्रैश हो जाता था। शोधकर्ताओं ने पाया कि यदि उनके पास चुनने के लिए केवल 100 आइटम होते, तो आवश्यक कागज इतना बड़ा होता कि उसे 304 गीगाबाइट स्थान की आवश्यकता होती, जो उनके 64 गीगाबाइट उपलब्ध मशीन से कहीं अधिक है। यह एक आदर्श समाधान था जो बस कमरे में फिट नहीं हो पा रहा था।

इस शोध पत्र में, लेखक एक नया, स्मार्ट तरीका पेश करते हैं, जिसे वे dp_knapsack_sliding_hirschberg कहते हैं। पूरी विशाल कागज की शीट को एक साथ लिखने के बजाय, वे एक "स्लाइडिंग विंडो" ट्रिक का उपयोग करते हैं। कल्पना कीजिए कि आप एक लंबी किताब पढ़ रहे हैं, लेकिन आपके पास केवल एक छोटा आवर्धक लेंस (magnifying glass) है जो एक बार में दो पन्ने दिखा सकता है। आप कांच को नीचे की ओर खिसकाते हैं, दो पन्ने देखते हैं, फिर अगले दो, और इसी तरह। इस तरह, आपको एक समय में केवल दो पन्नों को ही अपने दिमाग में रखने की आवश्यकता होती है, जिससे मानसिक स्थान की भारी बचत होती है। हालाँकि, पूरी कहानी को याद रखने के लिए केवल दो पन्नों को देखना पर्याप्त नहीं है; आपको यह जानने की आवश्यकता है कि किन विशिष्ट वस्तुओं को चुनना है। इसे ठीक करने के लिए, वे स्लाइडिंग विंडो को "हर्शबर्ग एल्गोरिदम" (Hirschberg's algorithm) नामक एक पुराने, चतुर तरीके के साथ जोड़ते हैं। इसे "विभाजित करो और जीतो" (divide and conquer) के खेल के रूप में सोचें। पूरे बैकपैक की समस्या को एक साथ हल करने के बजाय, वे वस्तुओं की सूची को आधा कर देते हैं। वे बाएं आधे हिस्से को हल करते हैं, फिर दाएं आधे हिस्से को, और फिर दो सबसे अच्छे समाधानों को कैसे जोड़ा जाए, यह पता लगाते हैं। वे इसे तब तक पुनरावर्ती (recursively) रूप से करते हैं, जब तक कि वे इसे छोटे और छोटे टुकड़ों में न तोड़ दें जिन्हें वे आसानी से हल कर सकें, और यह सब वे बहुत कम मेमोरी का उपयोग करते हुए करते हैं।

इस नए तरीके के परिणाम प्रभावशाली हैं। लेखक ने 64 गीगाबाइट रैम वाले कंप्यूटर पर इसका परीक्षण किया। जबकि पुराना तरीका केवल 100 आइटमों के साथ हल करने की कोशिश में क्रैश हो गया था, नया तरीका 2,000 आइटमों के समस्या को सफलतापूर्वक हल करने में सक्षम रहा, जिसमें 58.4 गीगाबाइट मेमोरी का शिखर (peak) उपयोग हुआ। इसका अर्थ है कि कंप्यूटर अब पहले की तुलना में 20 गुना बड़ी समस्या को बिना जगह खत्म हुए संभाल सकता है। इसके अलावा, नया तरीका केवल मेमोरी बचाने वाला ही नहीं है; यह तेज़ भी है। अपने परीक्षणों में, यह पुराने तरीके से 25% से 28% तेज़ चला। लेखक ने एक विशिष्ट मशीन पर एक ही पहेली को 1,000 बार चलाकर इसकी गति मापी और पाया कि नया सॉल्वर लगातार पुराने वाले से बेहतर प्रदर्शन करता है। महत्वपूर्ण बात यह है कि, अन्य "त्वरित सुधार" (quick fix) विधियों के विपरीत जो उत्तर का अनुमान लगाते हैं और थोड़े गलत हो सकते हैं, यह नया तरीका हर बार सटीक और पूर्ण समाधान पाता है। यह पुराने तरीके जितना ही सटीक है लेकिन बहुत अधिक कुशल है।

यह शोध पत्र पुष्टि करता है कि यह नया दृष्टिकोण केवल एक सिद्धांत नहीं है; इसे सफलतापूर्वक पायटॉर्च सॉफ्टवेयर में मर्ज कर दिया गया है और यह संस्करण 2.10 में उपलब्ध है। लेखक दिखाते हैं कि स्लाइडिंग विंडो और डिवाइड-एंड-कॉन्कर के इस संयोजन का उपयोग करके, वे मेमोरी की उस बाधा को दूर कर सकते हैं जो बड़े एआई मॉडल्स को बढ़ने से रोक रही थी। वे यह दावा नहीं करते कि यह समस्या को हल करने का एकमात्र तरीका है, न ही वे सुझाव देते हैं कि यह हर प्रकार के कंप्यूटर पहेली के लिए काम करता है, लेकिन विशेष रूप से एआई चरणों को सहेजने के निर्णय के लिए, यह एक सिद्ध, सटीक और अत्यधिक कुशल अपग्रेड है। शोध पत्र इस विचार को खारिज करता है कि पुराना तरीका बड़े मॉडल्स के लिए पर्याप्त है, यह स्पष्ट रूप से दिखाता है कि जब वस्तुओं की संख्या बहुत अधिक हो जाती है तो यह विफल हो जाता है। इसके बजाय, वे एक ऐसा समाधान प्रदान करते हैं जो पुराने तरीके की पूर्ण सटीकता को बनाए रखता है और मेमोरी क्रैश को हटा देता है, जिससे वैज्ञानिक अपने छोटे किचन में बड़े, अधिक जटिल एआई केक बना सकते हैं।

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

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

Digest आज़माएँ →