pytorch-accelerated
pytorch-accelerated एक हल्का लाइब्रेरी है जिसे PyTorch मॉडल्स के प्रशिक्षण की प्रक्रिया को तेज़ करने के लिए डिज़ाइन किया गया है
जो एक न्यूनतम, लेकिन विस्तार योग्य प्रशिक्षण लूप प्रदान करता है - जो एकल Trainer
ऑब्जेक्ट में समाहित है - जो अधिकांश उपयोग के मामलों को संभालने के लिए पर्याप्त लचीला है, और विभिन्न हार्डवेयर
विकल्पों का उपयोग बिना कोड बदले करने में सक्षम है।
pytorch-accelerated एक सुव्यवस्थित फीचर सेट प्रदान करता है, और सरलता और पारदर्शिता पर बहुत ज़ोर देता है,
उपयोगकर्ताओं को यह समझने में सक्षम बनाने के लिए कि अंदर क्या चल रहा है, लेकिन उन्हें खुद बोयलरप्लेट लिखने और बनाए रखने की आवश्यकता नहीं है! मुख्य विशेषताएं हैं:
- एक सरल और संपूर्ण, लेकिन आसानी से अनुकूलन योग्य, प्रशिक्षण लूप, जो सीधे मामलों में तुरंत काम करता है;
- डिवाइस प्लेसमेंट, मिश्रित-प्रिसिजन, DeepSpeed एकीकरण, मल्टी-GPU और वितरित प्रशिक्षण को बिना कोड परिवर्तनों के संभालता है।
- केवल PyTorch घटकों का उपयोग करता है, बिना अतिरिक्त संशोधन या रैपर के, और आसानी से अन्य लोकप्रिय लाइब्रेरियों जैसे timm,
- एक छोटा, सुव्यवस्थित API यह सुनिश्चित करता है कि मौजूदा PyTorch उपयोगकर्ताओं के लिए सीखने की न्यूनतम बाधा हो।
pytorch-accelerated गर्वपूर्वक और पारदर्शी रूप से
Hugging Face Accelerate के ऊपर निर्मित है, जो
डिवाइसों के बीच डेटा के मूवमेंट और प्रशिक्षण कॉन्फ़िगरेशन लॉन्च करने के लिए जिम्मेदार है। जब ट्रेनर को कस्टमाइज करने या प्रशिक्षण लॉन्च करने की बात आती है,
उपयोगकर्ताओं को Accelerate documentation
देखने के लिए प्रोत्साहित किया जाता है ताकि वे सभी उपलब्ध विकल्पों को समझ सकें; Accelerate टेंसर को इकट्ठा करने और ग्रेडिएंट क्लिपिंग जैसी सुविधाजनक फंक्शन प्रदान करता है,
जिसका उपयोग pytorch-accelerated
examples फोल्डर में देखा जा सकता है!
इस लाइब्रेरी के पीछे की प्रेरणाओं और विस्तृत प्रारंभिक मार्गदर्शिका के बारे में अधिक जानने के लिए, यह ब्लॉग पोस्ट देखें।
स्थापना
pytorch-accelerated को निम्नलिखित कमांड का उपयोग करके pip से इंस्टॉल किया जा सकता है:
pip install pytorch-accelerated
पैकेज को यथासंभव पतला रखने के लिए, उदाहरणों को चलाने के लिए आवश्यक पैकेज डिफ़ॉल्ट रूप से शामिल नहीं किए गए हैं। इन पैकेजों को शामिल करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:pip install pytorch-accelerated[examples]त्वरित प्रारंभ
शुरू करने के लिए, बस pytorch-accelerated Trainer को इम्पोर्ट करें और उपयोग करें, जैसा कि निम्न उदाहरण में दिखाया गया है,
और फिर प्रशिक्षण आरंभ करें
accelerate CLI
का उपयोग करते हुए, जैसा कि नीचे वर्णित है।
# examples/core/train_mnist.py
import osfrom torch import nn, optim
from torch.utils.data import random_split
from torchvision import transforms
from torchvision.datasets import MNIST
from pytorch_accelerated import Trainer
class MNISTModel(nn.Module):
def __init__(self):
super().__init__()
self.main = nn.Sequential(
nn.Linear(in_features=784, out_features=128),
nn.ReLU(),
nn.Linear(in_features=128, out_features=64),
nn.ReLU(),
nn.Linear(in_features=64, out_features=10),
)
def forward(self, input):
return self.main(input.view(input.shape[0], -1))
def main():
dataset = MNIST(os.getcwd(), download=True, transform=transforms.ToTensor())
train_dataset, validation_dataset, test_dataset = random_split(dataset, [50000, 5000, 5000])
model = MNISTModel()
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
loss_func = nn.CrossEntropyLoss()
trainer = Trainer(
model,
loss_func=loss_func,
optimizer=optimizer,
)
trainer.train(
train_dataset=train_dataset,
eval_dataset=validation_dataset,
num_epochs=8,
per_device_batch_size=32,
)
trainer.evaluate(
dataset=test_dataset,
per_device_batch_size=64,
)
if __name__ == "__main__":
main()
accelerate CLI का उपयोग करके प्रशिक्षण शुरू करने के लिए,
अपने मशीन(मशीनों) पर निम्न कमांड चलाएँ: accelerate config --config_file accelerate_config.yaml
और पूछे गए प्रश्नों के उत्तर दें। यह एक config फ़ाइल तैयार करेगा जिसका उपयोग डिफ़ॉल्ट विकल्पों को सही ढंग से सेट करने के लिए किया जाएगा जब
accelerate launch --config_file accelerate_config.yaml train.py [--training-args]
नोट: accelerate CLI का उपयोग पूरी तरह से वैकल्पिक है, प्रशिक्षण सामान्य तरीके से भी शुरू किया जा सकता है:
python train.py / python -m torch.distributed ...
यह आपकी इंफ्रास्ट्रक्चर सेटिंग पर निर्भर करता है, उन उपयोगकर्ताओं के लिए जो लॉन्च कमांड पर अधिक सूक्ष्म नियंत्रण रखना चाहते हैं।
अधिक जटिल प्रशिक्षण उदाहरण उदाहरण फ़ोल्डर में देखे जा सकते हैं यहाँ।
वैकल्पिक रूप से, यदि आप पहले मुख्य अवधारणाओं को समझना चाहें, तो यह डॉक्युमेंटेशन में पाया जा सकता है।
उपयोग
pytorch-accelerated किसके लिए है?
- वे उपयोगकर्ता जो PyTorch से परिचित हैं लेकिन प्रशिक्षण लूप की सामान्य boilerplate लिखने से बचना चाहते हैं,
- वे उपयोगकर्ता जो अपने मॉडल, लॉस फंक्शन, ऑप्टिमाइज़र और डेटासेट को चुनना और बनाना पसंद करते हैं और इसमें सहज हैं।
- वे उपयोगकर्ता जो एक साधारण और सुव्यवस्थित फीचर सेट को महत्व देते हैं, जहाँ व्यवहार को डिबग करना, समझना और तर्क करना आसान है!
कब मुझे pytorch-accelerated का उपयोग नहीं करना चाहिए?
- यदि आप एक एंड-टू-एंड समाधान चाहते हैं, जिसमें डेटा लोडिंग से लेकर इंफेरेंस तक सब कुछ शामिल हो,
pytorch-accelerated केवल प्रशिक्षण प्रक्रिया पर केंद्रित है, अन्य सभी
पहलुओं की जिम्मेदारी उपयोगकर्ता पर छोड़ दी जाती है।
- यदि आप पूरी प्रशिक्षण लूप स्वयं लिखना चाहते हैं, केवल डिवाइस मैनेजमेंट की परेशानियों के बिना,
Trainer के हर हिस्से को कस्टमाइज़ करना संभव है, प्रशिक्षण लूप मूल रूप से कई हिस्सों में विभाजित है
वे विभिन्न विधियाँ हैं जिन्हें आपको ओवरराइड करना होगा। लेकिन, जाने से पहले, क्या उन for लूप्स को लिखना वास्तव में इतना महत्वपूर्ण है कि फिर से शून्य से शुरू किया जाए फिर से 😉।
- यदि आप किसी कस्टम, अत्यंत जटिल, उपयोग के मामले पर काम कर रहे हैं जो सामान्य प्रशिक्षण लूप्स के पैटर्न में फिट नहीं होता और अपने चुने हुए हार्डवेयर पर हर अंतिम प्रदर्शन को निचोड़ना चाहते हैं, तो शायद आपके लिए वैनिला PyTorch के साथ ही काम करना सबसे अच्छा होगा; किसी भी उच्च-स्तरीय API अत्यंत विशेष मामलों में एक ओवरहेड बन जाता है!
आभार
pytorch-accelerated के डिज़ाइन और विशेषताओं के पीछे कई पहलू अनेक उत्कृष्ट लाइब्रेरीज़ और फ्रेमवर्क्स से प्रेरित हैं जैसे fastai, timm, PyTorch-lightning और Hugging Face Accelerate। इन सभी टूल्स ने इस लाइब्रेरी और मशीन लर्निंग समुदाय दोनों पर भारी प्रभाव डाला है, और उनका प्रभाव पर्याप्त रूप से बताया नहीं जा सकता!
pytorch-accelerated ने इन टूल्स से केवल प्रेरणा ली है, और इसमें मौजूद सभी कार्यक्षमताएँ शून्य से इस लाइब्रेरी के लाभ के अनुसार लागू की गई हैं। इसका अपवाद केवल कुछ स्क्रिप्ट्स हैं जो
examples
फोल्डर में हैं, जिनमें मौजूदा संसाधनों को लिया गया और संशोधित किया गया ताकि pytorch-accelerated की विशेषताओं को दिखाया जा सके;
इन मामलों को स्पष्ट रूप से चिन्हित किया गया है, और मूल लेखकों को श्रेय दिया गया है।
--- Tranlated By Open Ai Tx | Last indexed: 2026-02-28 ---