तकनीकी गाइड

ग्रेडियंट चेकपॉइंटिंग

ग्रेडिएंट चेकपॉइंटिंग (जिसे एक्टिवेशन चेकपॉइंटिंग भी कहा जाता है) एक मेमोरी-सेविंग ट्रिक है जो फॉरवर्ड पास के दौरान अधिकांश मध्यवर्ती सक्रियणों को हटा देती है और बैकप्रॉपैगेशन के दौरान उन्हें तुरंत पुन: गणना करती है।

2 मिनट लालअंतिम बार अद्यतन किया गया

सिंहावलोकन

It lets you train deeper, larger networks by trading extra compute for much lower memory use.

गहरा गोता

प्रशिक्षण तंत्रिका नेटवर्क आम तौर पर फॉरवर्ड पास के दौरान प्रत्येक परत की सक्रियता को संग्रहीत करता है क्योंकि बैकप्रॉपैगेशन के लिए उन्हें ग्रेडिएंट की गणना करने की आवश्यकता होती है। गहरे मॉडलों के लिए ये सक्रियताएँ स्मृति पर हावी होती हैं। इसके बजाय ग्रेडिएंट चेकपॉइंटिंग केवल 'चेकपॉइंट' परतों के एक विरल सेट पर सक्रियण को बचाता है और बाकी को हटा देता है। जब बैकप्रॉप उस क्षेत्र में पहुंचता है जिसकी सक्रियता समाप्त हो गई थी, तो यह केवल उस खंड के लिए आगे की गणना को फिर से चलाता है ताकि उसे जो चाहिए उसे पुन: उत्पन्न कर सके, फिर आगे बढ़े। चौकियों को लगभग हर वर्ग-मूल-एन परतों में रखे जाने के साथ, सक्रियण के लिए मेमोरी क्रम एन से वर्ग-मूल-एन के क्रम तक गिर जाती है, जबकि गणना केवल एक अतिरिक्त फॉरवर्ड पास (लगभग 20-30% धीमी) से बढ़ती है। इससे एक ही जीपीयू पर बड़े बैच आकार या गहरे ट्रांसफार्मर को फिट करना संभव हो जाता है।

तकनीकी अंतर्दृष्टि

यह तकनीक समय-बनाम-स्मृति ट्रेडऑफ़ का फायदा उठाती है। सभी सक्रियणों को संग्रहीत करना तेज़ है लेकिन स्मृति-भूख है; मेमोरी ख़त्म होने की लागत के सापेक्ष आधुनिक त्वरक पर उनकी पुनः गणना करना सस्ता है। PyTorch (torch.utils.checkpoint) जैसे फ्रेमवर्क एक मॉड्यूल को लपेटते हैं ताकि इसका फॉरवर्ड आउटपुट सेव हो जाए लेकिन बैकवर्ड के दौरान इसके इंटरनल की दोबारा गणना की जाती है। चेकपॉइंट प्लेसमेंट का चयन करना मायने रखता है: मोटे तौर पर sqrt (N) सेगमेंट की एक समान दूरी कुल मेमोरी को कम करती है, जबकि समग्र रूप से केवल एक अतिरिक्त फॉरवर्ड पास जोड़ती है।

सामरिक प्रभाव

लागत और बजट

वास्तुकला संबंधी निर्णय वर्षों तक प्रदर्शन और परिचालन लागत को संचालित करते हैं।

स्पष्ट निर्णय

तकनीकी शिक्षा टीमों को सही स्टैक चुनने में मदद करती है, न कि केवल नवीनतम स्टैक चुनने में।

गुणवत्ता नियंत्रण

बेहतर इंजीनियरिंग विकल्प उत्पादन में विश्वसनीयता की घटनाओं को कम करते हैं।

ग्रेडिएंट चेकपॉइंटिंग का भविष्य

बड़े-मॉडल प्रशिक्षण में ग्रेडिएंट चेकपॉइंटिंग अब मानक है और तेजी से स्वचालित हो रही है, पुस्तकालय आपके लिए इष्टतम चेकपॉइंट स्थानों का चयन करते हैं। यह स्वाभाविक रूप से एफएसडीपी, मिश्रित परिशुद्धता और मॉडल आकार को ऊंचा करने के लिए ऑफलोडिंग के साथ जुड़ता है। 'चयनात्मक' चेकपॉइंटिंग की अपेक्षा करें जो महंगे ऑपरेशनों (जैसे ध्यान मैट्रिक्स) को कैश्ड रखते हुए केवल सस्ते ऑपरेशनों की पुनर्गणना करता है, साथ ही PyTorch के टॉर्च.कंपाइल जैसे टूल में कंपाइलर-संचालित दृष्टिकोण जो स्वचालित रूप से तय करते हैं कि सर्वोत्तम गति-मेमोरी संतुलन के लिए क्या सहेजना है बनाम पुनर्गणना करना है।

वास्तविक विश्व कार्यान्वयन

परत सक्रियणों को त्यागकर और पुन: गणना करके एकल जीपीयू पर बड़े बैच आकार के साथ एक गहरे ट्रांसफार्मर को प्रशिक्षित करना।

उच्च-रिज़ॉल्यूशन छवियों पर फ़ाइन-ट्यूनिंग विज़न मॉडल जहां सक्रियण मानचित्र अन्यथा जीपीयू मेमोरी को ओवरफ्लो कर देंगे।

फ़ाइन-ट्यूनिंग के दौरान बिलियन-पैरामीटर मॉडल को फिट करने के लिए ग्रेडिएंट_चेकपॉइंटिंग = ट्रू को सक्षम करने वाले हगिंग फेस ट्रांसफॉर्मर।

एफएसडीपी के साथ चेकपॉइंटिंग का संयोजन ताकि पैरामीटर और सक्रियण दोनों को छोटा रखा जा सके, जिससे बहुत बड़े भाषा मॉडल का प्रशिक्षण संभव हो सके।

जोखिम और रेलिंग

एक बेंचमार्क को अनुकूलित करने से व्यापक सिस्टम कमजोरियों को छुपाया जा सकता है।

बुनियादी ढांचे और रखरखाव की लागत को अक्सर कम करके आंका जाता है।

जैसे-जैसे सिस्टम अधिक जटिल होते जाएंगे सुरक्षा और अवलोकन संबंधी अंतराल बढ़ सकते हैं।

कार्यान्वयन रोडमैप

1

कार्यान्वयन से पहले विलंबता, गुणवत्ता और लागत लक्ष्य परिभाषित करें।

2

यथार्थवादी लोड और डेटा स्थितियों के तहत बेंचमार्क।

3

त्रुटियों, बहाव और उपयोगकर्ता प्रभाव के लिए उपकरण निगरानी।

4

स्केलिंग से पहले रोलबैक और घटना प्रतिक्रिया पथ तैयार करें।

अन्वेषण करते रहें

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Gradient Checkpointing quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

प्रश्नोत्तरी प्रारंभ करें

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

अक्सर पूछे जाने वाले प्रश्नों

What is Gradient Checkpointing?

ग्रेडिएंट चेकपॉइंटिंग (जिसे एक्टिवेशन चेकपॉइंटिंग भी कहा जाता है) एक मेमोरी-सेविंग ट्रिक है जो फॉरवर्ड पास के दौरान अधिकांश मध्यवर्ती सक्रियणों को हटा देती है और बैकप्रॉपैगेशन के दौरान उन्हें तुरंत पुन: गणना करती है। यह आपको बहुत कम मेमोरी उपयोग के लिए अतिरिक्त गणना करके गहरे, बड़े नेटवर्क को प्रशिक्षित करने की सुविधा देता है।

स्मृति को बचाने के लिए ग्रेडिएंट चेकपॉइंटिंग मुख्य रूप से क्या व्यापार करती है?

ग्रेडियंट चेकपॉइंटिंग बैकवर्ड पास के दौरान छोड़ी गई सक्रियणों की पुन: गणना करता है, काफी हद तक कम हुई मेमोरी के बदले में अतिरिक्त गणना खर्च करता है।

फ़ॉरवर्ड पास के दौरान सक्रियण सामान्यतः क्यों संग्रहीत किए जाते हैं?

बैकप्रॉप फ़ॉरवर्ड पास से मध्यवर्ती सक्रियणों का उपयोग करके ग्रेडिएंट की गणना करता है, इसलिए उन्हें तब तक उपलब्ध होना चाहिए जब तक कि उनकी पुन: गणना न की जाए।

यदि एन-लेयर नेटवर्क में प्रत्येक sqrt (एन) परतों पर चेकपॉइंट रखे जाते हैं तो मोटे तौर पर सक्रियण मेमोरी स्केल कैसे होता है?

प्रत्येक वर्ग-मूल-एन परतों के बारे में चौकियों को रखने से संग्रहित सक्रियण मेमोरी क्रम एन से क्रम एसक्यूआरटी (एन) तक कम हो जाती है।

अच्छी तरह से स्थापित ग्रेडिएंट चेकपॉइंटिंग आम तौर पर लगभग कितनी अतिरिक्त गणना जोड़ती है?

अच्छे चेकपॉइंट प्लेसमेंट के साथ, ओवरहेड मोटे तौर पर एक अतिरिक्त फॉरवर्ड पास होता है, जो अक्सर 20-30% की मंदी के आसपास होता है।

PyTorch में, मॉड्यूल में ग्रेडिएंट चेकपॉइंटिंग लागू करने के लिए आमतौर पर किस उपयोगिता का उपयोग किया जाता है?

टॉर्च.यूटिल्स.चेकपॉइंट एक मॉड्यूल को लपेटता है ताकि इसकी आंतरिक सक्रियता को संग्रहीत करने के बजाय बैकवर्ड के दौरान पुन: गणना की जा सके।