Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/source/hi/_toctree.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
- sections:
- local: pipeline_tutorial
title: पाइपलाइनों के साथ अनुमान चलाएँ
title: पाइपलाइनों के साथ अनुमान चलाएँ
- local: accelerate
title: 🤗 Accelerate के साथ वितरित प्रशिक्षण सेट करें
132 changes: 132 additions & 0 deletions docs/source/hi/accelerate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<!--कॉपीराइट 2022 द हगिंगफेस टीम। सभी अधिकार सुरक्षित हैं।

एपाचे लाइसेंस, संस्करण 2.0 ( "लाइसेंस") के तहत लाइसेंस प्राप्त; आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में कर सकते हैं। आप लाइसेंस की एक प्रति प्राप्त कर सकते हैं

http://www.apache.org/licenses/LICENSE-2.0

जब तक लागू कानून द्वारा आवश्यक न हो या लिखित में सहमति न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर "जैसा है" आधार पर वितरित किया जाता है, बिना किसी प्रकार की वारंटी या शर्तों के, चाहे वह स्पष्ट हो या निहित। लाइसेंस में विशिष्ट भाषा के लिए अनुमति और सीमाओं को देखें।

⚠️ ध्यान दें कि यह फ़ाइल मार्कडाउन में है लेकिन इसमें हमारे डॉक-बिल्डर (MDX के समान) के लिए विशिष्ट सिंटैक्स है जो आपके मार्कडाउन व्यूअर में सही ढंग से प्रदर्शित नहीं हो सकता है।

-->
Comment thread
karthik-script marked this conversation as resolved.
Outdated

# वितरित प्रशिक्षण के साथ 🤗 एक्सेलेरेट

जैसे-जैसे मॉडल बड़े होते हैं, समानांतरता सीमित हार्डवेयर पर बड़े मॉडल को प्रशिक्षित करने और प्रशिक्षण की गति को कई आदेशों के आकार में तेज करने के लिए एक रणनीति के रूप में उभरी है। हगिंग फेस में, हमने उपयोगकर्ताओं को किसी भी प्रकार के वितरित सेटअप पर 🤗 ट्रांसफार्मर्स मॉडल को आसानी से प्रशिक्षित करने में मदद करने के लिए [🤗 एक्सेलेरेट](https://huggingface.co/docs/accelerate) पुस्तकालय बनाया है, चाहे वह एक मशीन पर कई GPU हों या कई मशीनों में कई GPU। इस ट्यूटोरियल में, जानें कि अपने मूल PyTorch प्रशिक्षण लूप को कैसे अनुकूलित किया जाए ताकि वितरित वातावरण में प्रशिक्षण सक्षम हो सके।

## सेटअप

🤗 एक्सेलेरेट स्थापित करके शुरू करें:
Comment thread
karthik-script marked this conversation as resolved.
Outdated

```bash
pip install accelerate
```

फिर एक [`~accelerate.Accelerator`] ऑब्जेक्ट आयात करें और बनाएं। [`~accelerate.Accelerator`] स्वचालित रूप से आपके वितरित सेटअप के प्रकार का पता लगाएगा और प्रशिक्षण के लिए सभी आवश्यक घटकों को प्रारंभ करेगा। आपको अपने मॉडल को किसी डिवाइस पर स्पष्ट रूप से रखने की आवश्यकता नहीं है।

```py
>>> from accelerate import Accelerator

>>> accelerator = Accelerator()
```

## तेजी लाने की तैयारी

अगला कदम सभी प्रासंगिक प्रशिक्षण वस्तुओं को [`~accelerate.Accelerator.prepare`] विधि में पास करना है। इसमें आपके प्रशिक्षण और मूल्यांकन DataLoaders, एक मॉडल और एक ऑप्टिमाइज़र शामिल हैं:

```py
>>> train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(
... train_dataloader, eval_dataloader, model, optimizer
... )
```

## बैकवर्ड

अंतिम जोड़ यह है कि आपके प्रशिक्षण लूप में सामान्य `loss.backward()` को 🤗 एक्सेलेरेट के [`~accelerate.Accelerator.backward`] विधि से बदलें:
Comment thread
karthik-script marked this conversation as resolved.
Outdated

```py
>>> for epoch in range(num_epochs):
... for batch in train_dataloader:
... outputs = model(**batch)
... loss = outputs.loss
... accelerator.backward(loss)

... optimizer.step()
... lr_scheduler.step()
... optimizer.zero_grad()
... progress_bar.update(1)
```

जैसा कि आप निम्नलिखित कोड में देख सकते हैं, आपको वितरित प्रशिक्षण सक्षम करने के लिए अपने प्रशिक्षण लूप में केवल चार अतिरिक्त कोड की पंक्तियाँ जोड़ने की आवश्यकता है!

```diff
+ from accelerate import Accelerator
from transformers import AdamW, AutoModelForSequenceClassification, get_scheduler

+ accelerator = Accelerator()

model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)
optimizer = AdamW(model.parameters(), lr=3e-5)

- device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
- model.to(device)

+ train_dataloader, eval_dataloader, model, optimizer = accelerator.prepare(
+ train_dataloader, eval_dataloader, model, optimizer
+ )

num_epochs = 3
num_training_steps = num_epochs * len(train_dataloader)
lr_scheduler = get_scheduler(
"linear",
optimizer=optimizer,
num_warmup_steps=0,
num_training_steps=num_training_steps
)

progress_bar = tqdm(range(num_training_steps))

model.train()
for epoch in range(num_epochs):
for batch in train_dataloader:
- batch = {k: v.to(device) for k, v in batch.items()}
outputs = model(**batch)
loss = outputs.loss
- loss.backward()
+ accelerator.backward(loss)

optimizer.step()
lr_scheduler.step()
optimizer.zero_grad()
progress_bar.update(1)
```

## प्रशिक्षण

एक बार जब आपने प्रासंगिक कोड की पंक्तियाँ जोड़ दी हैं, तो अपने प्रशिक्षण को स्क्रिप्ट या कोलैबोरेटरी जैसे नोटबुक में लॉन्च करें।

### स्क्रिप्ट के साथ प्रशिक्षण

यदि आप स्क्रिप्ट से अपना प्रशिक्षण चला रहे हैं, तो एक कॉन्फ़िगरेशन फ़ाइल बनाने और सहेजने के लिए निम्नलिखित कमांड चलाएँ:

```bash
accelerate config
```

फिर अपने प्रशिक्षण को इस तरह लॉन्च करें:

```bash
accelerate launch train.py
```

### नोटबुक के साथ प्रशिक्षण

🤗 एक्सेलेरेट एक नोटबुक में भी चल सकता है यदि आप कोलैबोरेटरी के TPU का उपयोग करने की योजना बना रहे हैं। प्रशिक्षण के लिए जिम्मेदार सभी कोड को एक फ़ंक्शन में लपेटें, और इसे [`~accelerate.notebook_launcher`] में पास करें:

```py
>>> from accelerate import notebook_launcher

>>> notebook_launcher(training_function)
```

🤗 एक्सेलेरेट और इसकी समृद्ध सुविधाओं के बारे में अधिक जानकारी के लिए, [दस्तावेज़ीकरण](https://huggingface.co/docs/accelerate) देखें।
Comment thread
karthik-script marked this conversation as resolved.
Outdated