इस प्रोजेक्ट के बारे में
nanoGPT मध्यम आकार के GPT (जनरेटिव प्री-ट्रेंड ट्रांसफॉर्मर) मॉडलों को प्रशिक्षित और फाइन-ट्यून करने के लिए एक हल्का, उच्च-प्रदर्शन वाला रिपॉजिटरी है। यह minGPT का फिर से लिखा हुआ संस्करण है, जिसे कोड को न्यूनतम और पढ़ने योग्य रखते हुए व्यावहारिक प्रदर्शन को प्राथमिकता देने के लिए फिर से डिज़ाइन किया गया है।
मुख्य क्षमताएँ:
- **प्रशिक्षण**: मुख्य `train.py` स्क्रिप्ट (~300 पंक्तियां) एक पूर्ण प्रशिक्षण लूप लागू करती है। यह PyTorch DDP का उपयोग करते हुए एक ही 8x A100 40GB नोड पर OpenWebText पर GPT-2 (124M) को लगभग 4 दिन में फिर से उत्पन्न करती है।
- **फाइन-ट्यूनिंग**: यह पूर्व-प्रशिक्षित OpenAI GPT-2 चेकपॉइंट्स (gpt2, gpt2-medium, gpt2-large, gpt2-xl) से इनिशियलाइज़ करने और शेक्सपियर टेक्स्ट जैसे कस्टम डेटासेट पर फाइन-ट्यून करने का समर्थन करती है।
- **सैंपलिंग/इन्फरेंस**: `sample.py` स्क्रिप्ट प्रशिक्षित या पूर्व-प्रशिक्षित मॉडलों से कॉन्फ़िगर करने योग्य प्रॉम्प्ट, सैंपल की संख्या और टोकन सीमा के साथ टेक्स्ट जेनरेट करती है।
- **दक्षता**: यह उच्च गति वृद्धि के लिए डिफॉल्ट रूप से PyTorch 2.0 के `torch.compile()` का उपयोग करती है (उदाहरण के लिए, A100 पर इटरेशन समय को ~250ms से ~135ms तक कटा है)।
- **मल्टी-GPU/मल्टी-नोड**: `torchrun` के माध्यम से डिस्ट्रिब्यूटेड प्रशिक्षण, जिसमें मल्टी-नोड सेटअप का समर्थन है।
- **लचीला कॉन्फ़िगरेशन**: हाइपरपैरामीटर को `config/` डिरेक्ट्री में कॉन्फ़िग फाइलों या कमांड-लाइन आर्ग्यूमेंट्स के माध्यम से ट्यून किया जा सकता है।
- **CPU/MPS समर्थन**: एक्सपेरिमेंट के लिए CPU पर काम करती है, और Apple Silicon पर मेटल परफॉर्मेंस शेडर्स (MPS) से 2-3 गुना त्वरण प्रदान करती है।
उदाहरण कार्यप्रवाहों में एक ही GPU पर शेक्सपियर डेटा पर कैरेक्टर-लेवल GPT को मिनटों में प्रशिक्षित करना, या बड़े हार्डवेयर के साथ OpenWebText पर GPT-2 बेंचमार्क को फिर से उत्पन्न करना शामिल है।
निर्भरताएँ: PyTorch, NumPy, Hugging Face transformers, datasets, tiktoken, wandb और tqdm।
नोट: नवंबर 2025 तक, nanoGPT को nanochat द्वारा प्रतिस्थापित कर दिया गया है और इसे अप्रचलित माना जाता है, हालांकि यह संदर्भ के लिए बनाए रखा गया है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.