2 पॉइंट द्वारा GN⁺ 2025-08-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Gemma 3 270M के लिए ऐसा उदाहरण कोड दिया गया है जिसे सिर्फ PyTorch का उपयोग करके सीधे लागू किया जा सकता है
  • यह रिपॉजिटरी LLM की संरचना और प्रशिक्षण प्रक्रिया को समझने और खुद अभ्यास करने के लिए शैक्षिक उद्देश्य से बनाई गई है
  • अतिरिक्त बाहरी LLM फ्रेमवर्क के बिना भी कोड चल सकता है, और इसे सामान्य notebook वातावरण में भी चलाया जा सकता है
  • इसमें कई तरह के बोनस उदाहरण और अभ्यास सामग्री शामिल हैं, जो डेवलपर्स और शोधकर्ताओं की सीखने की प्रक्रिया में व्यावहारिक मदद देती हैं
  • केवल Python का बुनियादी ज्ञान होने पर भी कोई भी LLM के सिद्धांत और विस्तृत implementation को चरण-दर-चरण समझ सकता है

ओपन सोर्स प्रोजेक्ट का महत्व और अलग पहचान

यह रिपॉजिटरी GPT-श्रेणी के बड़े language model को सीधे implement करने, pretraining करने और fine-tuning करने के लिए आवश्यक पूरा कोड प्रदान करती है। अधिकांश बड़े language model उदाहरणों से अलग, इसमें अतिरिक्त बाहरी LLM-विशेष लाइब्रेरी के बिना सिर्फ PyTorch का उपयोग करके स्थानीय वातावरण में सीधे प्रयोग और प्रशिक्षण किया जा सकता है। खास तौर पर, Gemma 3 270M जैसे हल्के मॉडल भी विस्तृत कोड के साथ दिए गए हैं, जिससे शुरुआती शोधकर्ता या डेवलपर वास्तविक implementation संरचना का अनुसरण करते हुए सिद्धांतों को गहराई से और व्यावहारिक रूप से सीख सकते हैं।

मुख्य सामग्री और रिपॉजिटरी संरचना

  • पुस्तक "Build a Large Language Model (From Scratch)" का आधिकारिक कोड रिपॉजिटरी उपलब्ध है
  • GPT-style LLM का सीधा implementation, pretraining और fine-tuning के पूरे चरणों को कवर करने वाले step-by-step example code शामिल हैं
  • बड़े language model implementation logic को विस्तार से समझाया गया है, और हर चरण में स्पष्ट व्याख्या, आरेख, sample code के जरिए शुरुआती लोगों के लिए भी आसान तरीका प्रस्तुत किया गया है
  • बड़े मॉडलों की training methodology और वास्तविक implementation प्रक्रिया को विस्तार से समझाकर, ChatGPT जैसी वास्तविक सेवाओं में इस्तेमाल हुई पद्धतियों को महसूस करते हुए सीखने का अवसर मिलता है
  • pretrained model weights लोड करने / fine-tuning से जुड़े उदाहरण भी शामिल हैं

रिपॉजिटरी की संरचना संबंधी मार्गदर्शिका

  • आधिकारिक source code repository, पुस्तक जानकारी, ISBN आदि के साथ अभ्यास और संदर्भ के लिए लिंक दिए गए हैं
  • हर अध्याय में Jupyter notebook और Python script शामिल हैं, जिससे step-by-step अभ्यास, exercise, supplementary material तक पहुँचा जा सकता है
  • supplementary material और bonus examples के रूप में Attention mechanism, Tokenizer, performance optimization, FLOPS analysis, hyperparameter tuning, Llama model conversion जैसी व्यावहारिक रूप से उपयोगी कई तरह की अभ्यास सामग्री शामिल है

पूर्व-ज्ञान और हार्डवेयर आवश्यकताएँ

  • केवल Python programming की बुनियादी समझ होने पर भी LLM के सिद्धांत और अभ्यास को समझा जा सकता है
  • PyTorch की गहरी जानकारी जरूरी नहीं है; बुनियादी syntax भर जानना पर्याप्त है
  • अलग से high-end hardware के बिना भी सामान्य laptop पर उदाहरण चलाए जा सकते हैं
  • GPU होने पर उसे अपने-आप पहचान लिया जाता है, जिससे training speed बेहतर होती है

अतिरिक्त सामग्री और अभ्यास को मजबूत करने वाला कंटेंट

  • हर अध्याय में अभ्यास कोड और exercise notebook उपलब्ध हैं
  • मुफ्त 170-पेज का PDF quiz book (हर अध्याय में लगभग 30 प्रश्न) के जरिए self-paced learning को समर्थन मिलता है
  • वीडियो कोर्स (17 घंटे 15 मिनट, Manning publishing platform) में लेखक स्वयं पूरे भागों की मुख्य सामग्री को कोड के साथ implement करते हुए समझाते हैं

शोध और समुदाय में भागीदारी

  • प्रश्न, राय और चर्चा Manning forum और GitHub Discussions में सक्रिय रूप से साझा की जा रही हैं
  • पुस्तक और कोड की एकरूपता बनाए रखने के लिए रिपॉजिटरी के मुख्य कोड में बाहरी योगदान सीमित हैं; सुधार या संशोधन के सुझाव अलग चर्चा में देने की सलाह है

संदर्भ और उद्धरण मार्गदर्शन

  • यह प्रोजेक्ट और कोड LLM development और experimental research में सीधे इस्तेमाल किए जा सकते हैं
  • शोधपत्र, तकनीकी ब्लॉग आदि में उद्धृत करने के लिए Chicago style और BibTeX उदाहरणों का मार्गदर्शन दिया गया है

सारांश

यह रिपॉजिटरी Gemma 3 270M जैसे बड़े language model को सिर्फ PyTorch के साथ सीधे implement और अभ्यास करने का अवसर देती है। मौजूदा LLM open source प्रोजेक्ट्स से अलग, सबसे सरल वातावरण में core principles और पूरे workflow को सीखने और प्रयोग करने की इसकी क्षमता इसका सबसे बड़ा लाभ है। शुरुआती डेवलपर्स और शोधकर्ताओं के लिए LLM को समझने और उस पर अभ्यास करने हेतु अनुकूलित संरचना, उदाहरण, supplementary material और exercises सब इसमें शामिल हैं।

1 टिप्पणियां

 
GN⁺ 2025-08-21
Hacker News राय
  • नमस्ते, मैंने यह मॉडल बेहतरीन टीम के साथ मिलकर बनाया है। पिछले हफ्ते जब यह मॉडल मुख्य पेज पर आया था, तब मैंने कई सवालों के जवाब दिए थे। यहाँ भी अगर अतिरिक्त सवाल हों तो मैं खुशी से जवाब दूँगा। व्यक्तिगत रूप से मैं इस बात को लेकर बहुत उत्साहित हूँ कि अब आप सबके पास इस मॉडल की पहुँच है। उम्मीद है आप इसका अच्छा उपयोग करेंगे। पिछले Q&A का लिंक देखें
    • मैं जानना चाहता हूँ कि इतने छोटे मॉडल में embeddings पर कुल parameters का 2/3 खर्च करने के बारे में आपका क्या विचार है। अगर byte-level vocabulary का उपयोग करके parameters को transformer में allocate किया जाए, तो token processing की गति कम हो सकती है, लेकिन क्या accuracy बढ़ सकती है?
    • यह बहुत बुनियादी सवाल है, लेकिन मैं जानना चाहता हूँ कि AI edge gallery ऐप में tflite मॉडल को GPU पर चलाने पर सिर्फ '[multimodal][multimodal]' ही क्यों निकलता है, जबकि CPU पर वह सामान्य रूप से काम करता है।
    • मैं MLE(User Machine Learning Engineer) नहीं हूँ, इसलिए जानना चाहता हूँ कि OP के PyTorch reimplementation के फायदे और नुकसान क्या हैं।
    • यह हैरान कर देने वाला शानदार छोटा LM है। क्या आप साझा कर सकते हैं कि इसे किस hardware पर train किया गया था, और training में कितना समय लगा?
    • इसे बनाने के लिए धन्यवाद। मैंने पहले कभी BERT के साथ Discord chatbot बनाया था, इसलिए 270M parameters का यह upgrade वाकई रोमांचक है।
  • मैं जानना चाहता हूँ कि क्या कोई (या OP) इस मॉडल को fine-tuning करके high-dimensional NER जैसे natural language tasks पर लागू करने की कोई recipe बता सकता है। पिछले हफ्ते Gemma3 270M जारी होने के बाद मैंने कुछ tutorials आज़माए, लेकिन वे ठीक से काम नहीं कर पाए। ज़्यादातर tutorials chat या roleplaying पर केंद्रित हैं, जबकि मेरा मुख्य काम PDFs से entities निकालना और उन्हें refine करना है, इसलिए ऐसे उपयोग के लिए विशेष hints मिलना मुश्किल है। मुझे लगता है कि यह मॉडल ऐसे काम के लिए उपयुक्त हो सकता है।
    • अगर यह पारंपरिक NER (यानी overlapping न होने वाले token spans से entities निकालना) का काम है, तो encoder-only model (उदाहरण के लिए bert-large-NER) या encoder-decoder model (जैसे t5-base-conll03-english) का उपयोग बेहतर हो सकता है। ऐसे encoding models आजकल कम चर्चा में रहते हैं, लेकिन जिन स्थापित NLP tasks में generation की ज़रूरत नहीं होती, वहाँ इनकी अभी भी ताकत है, और समान parameters पर NER accuracy decoder-only models की तुलना में काफी बेहतर होने की उम्मीद की जा सकती है।
    • gemma-llm Python library (JAX आधारित) का उपयोग करने का एक तरीका है। संबंधित tutorial देखें।
    • क्या आपने इस NER मॉडल को भी टेस्ट किया है? यह किन उपयोगों के लिए विशेष रूप से उपयुक्त हो सकता है, इस पर आपकी राय जानना चाहूँगा।
  • क्या यह उसी तरह की चीज़ है जो पहले लोग '<model> inference written in vanilla Go, Python, Java, etc' के रूप में करते थे?
  • मेरे अनुभव में मैं सिर्फ बड़े commercial models (sonnet, ChatGPT आदि) इस्तेमाल करने वाला dev हूँ। मैं जानना चाहता हूँ कि ऐसे छोटे local models कहाँ उपयोगी हो सकते हैं। क्या इनके सीधे उपयोग के मामले हैं, या अंत में हमेशा किसी न किसी post-processing / अतिरिक्त training की ज़रूरत पड़ती है? commercial tool users और model experts के बीच का gap काफी बड़ा लगता है, और समझ नहीं आता कि इस बीच के चरण को कैसे भरा जाए।
    • सबसे आम उपयोग (शैक्षिक उपयोग को छोड़कर) ये हैं:
      • private on-device models (web API की तुलना में कम latency, और edge processing संभव)
      • algorithm research (तेज़ और सस्ते में prototyping संभव)
      • सस्ते classification / categorization tasks (जहाँ decoder LLM की ज़रूरत नहीं, लेकिन कभी-कभी free-form response उपयोगी होता है), grammar sanity check, router (जैसे GPT-5 शैली) आदि
    • बहुत अच्छा सवाल है। मैंने इसका एक लंबा जवाब लिखा है, कृपया देखें विस्तृत उत्तर लिंक
    • summaries और बहुत simple tool use में यह खास तौर पर उपयोगी है। यह internet round-trip के बिना edge पर चलता है, इसलिए लागत 0 होती है।
    • confidentiality और privacy जैसे उपयोगों में भी इसकी संभावना है।
  • यह देखकर हैरानी हुई कि Mac CPU पर KV cache + compiler लागू करने के बाद गति A100 GPU से भी तेज़ है।
    • यह छोटे model size की वजह से GPU performance का पूरा उपयोग न हो पाने का परिणाम हो सकता है। उदाहरण के लिए Qwen3 0.6B model में A100 GPU तेज़ है, और संदर्भ लिंक में देखा जा सकता है।
    • compiled version का A100 पर eager से भी धीमा होना दिखाता है कि निश्चित रूप से कुछ हिस्सा optimize नहीं हुआ है।
    • शायद इसलिए कि Mac का CPU और GPU memory share करते हैं, जबकि A100 में अगर कुछ operations GPU पर supported न हों, तो data को RAM/CPU में भेजना पड़ता है।
    • क्या ऐसा इसलिए हो सकता है कि GPU waveform को भर नहीं पा रहा, इसलिए memory latency छिप नहीं रही?
  • मैं जानना चाहता हूँ कि 270M embeddings किस तरह के उपयोगों के लिए काम आ सकते हैं, और क्या token-level embeddings उपयुक्त हैं या sentence/document embeddings भी अच्छे आते हैं। क्या sentence/document embeddings को सार्थक रूप से उपयोग करने के लिए अलग से fine-tuning करनी पड़ेगी?
  • अगर पूरे मॉडल को शुरुआत से train किया जाए, तो एक reasonable GPU setup पर इसमें लगभग कितना समय लगेगा?
    • संदर्भ के लिए, 124M model को 3090 GPU पर train करने पर प्रति batch लगभग 5 लाख tokens, और forward+backward में लगभग 10 सेकंड लगते हैं। 6 ट्रिलियन tokens (इस model की training मात्रा) सभी train करने में लगभग 4 साल लगेंगे। संक्षेप में, "बहुत ज़्यादा समय लगेगा"।
    • "reasonable" से आपका क्या मतलब है, उस पर निर्भर करता है, लेकिन आम तौर पर घरेलू वातावरण में pure scratch से training करने पर बहुत लंबा समय लगेगा। यही इस मॉडल को रिलीज़ करने के मुख्य कारणों में से एक है। अब scratch training के बिना भी अलग-अलग hardware पर सिर्फ fine-tuning से व्यावहारिक परिणाम हासिल किए जा सकते हैं।
  • क्या इतने छोटे models का वास्तव में real world में कोई उपयोग है (learning या academics को छोड़कर)?
    • हाँ! बल्कि यह सिर्फ साधारण teaching aid या toy नहीं है, बल्कि repetitive tasks या enterprise/local fast developer model के रूप में इसका वास्तविक उपयोग-मूल्य है। यह उदाहरण मेरे उस पुराने अनुभव से प्रेरित है जहाँ real-time text processing की ज़रूरत थी। पुराने Gemma version से बने streaming ML tutorial और demo video देखें। सिद्धांततः अब इसे Gemma 270M से दोहराया जा सकता है।
    • LoRa से fine-tuning करने पर बहुत specific domains में बहुत उत्कृष्ट प्रदर्शन भी मिल सकता है। उदाहरण के लिए:
      • केवल किसी specific JSON schema में जवाब देना, या किसी specific character voice में respond करना
      • text classification (जैसे email, spam आदि)
      • बड़े text का summarization (email → title/slug)
      • predefined rules के अनुसार tag classification, content marketing आदि
      • spam / duplicate / flag detection
      • ऐसे छोटे "बेवकूफ" models में दुनिया का ज्ञान कम होता है, इसलिए बेतुकी बातें गढ़ने की संभावना भी कम होती है, जो संकीर्ण domains में उल्टा फायदा हो सकता है।
    • source text आधारित multilingual translation tasks में यह अक्सर सही परिणाम देता है (उदाहरण: यात्रियों के लिए बातचीत में उपयोग)। उदाहरण:
      (Ukrainian source text) Rochechouartneun फ्रांस का एक शहर है, जो Nouvelle-Aquitaine क्षेत्र के Haute-Vienne विभाग में स्थित है… जनसंख्या 3637 (2022), पेरिस से लगभग 360 किमी दक्षिण में, Limoges से 34 किमी पश्चिम में स्थित।
      (मॉडल अनुवाद परिणाम) Rochechouartneun फ्रांस का एक शहर है, जो Nouvelle-Aquitaine क्षेत्र के Haute-Vienne विभाग में स्थित है। जनसंख्या 3637 (2022)। पेरिस से लगभग 360 किमी, Lyon से 34 किमी दूरी पर।
      (वियतनामी आवासीय सौर ऊर्जा सहायता नीति का भी कुल मिलाकर सटीक अनुवाद)
      
      wiki स्रोत: यूक्रेनी Wikipedia, वियतनामी समाचार
    • यह उन कार्यों में उपयोगी है जहाँ natural language के साथ interaction होता है, लेकिन आप यह अपेक्षा नहीं करते कि मॉडल के पास अंदरूनी रूप से बहुत सारा ज्ञान हो। Tool use, embeddings आदि जैसे क्षेत्रों में, जहाँ जानकारी बाहर से verify या retrieve की जाती है, यह उपयोगी है।
  • मैंने सोचा था यह 3270 interface का कोई नया प्रोडक्ट है, इसलिए क्लिक किया, लेकिन उम्मीद कुछ और थी।
  • वाकई कमाल के इंसान हैं।