- Andrej Karpathy द्वारा शुद्ध C/CUDA में लिखा गया सरल LLM training code
- PyTorch/cPython की आवश्यकता नहीं
- लगभग 1000 lines की एक ही file से GPT-2 (CPU, fp32) को train किया जा सकता है
- पहले working example के रूप में GPT-2 को चुनने का कारण यह है कि यह उस LLM का दादा है जिसमें modern stack पहली बार एक साथ जुड़ा था
- तुरंत compile और run होता है, और PyTorch reference implementation से बिल्कुल मेल खाता है
- फिलहाल जिन चीज़ों पर काम चल रहा है
- कहीं अधिक तेज़ और संभवतः PyTorch के क़रीब पहुँचने वाली direct CUDA implementation
- SIMD instructions, x86 के AVX2 / ARM के NEON (जैसे: Apple Silicon) के साथ CPU version की speed बढ़ाना
- अधिक आधुनिक architecture (जैसे: Llama2, Gemma आदि)
1 टिप्पणियां
Hacker News राय
प्रोजेक्ट की सराहना करते हुए यह इंगित किया गया कि फिलहाल CUDA वाला हिस्सा अभी लागू नहीं हुआ है। GPU कोड अभी तक repository में नहीं है।
> उम्मीद है कि जब प्रोजेक्ट थोड़ा और स्थिर हो जाएगा, तब इसे build करने के तरीके पर एक विस्तृत वीडियो बनाया जाएगा।
JAX में implement किया गया nano GPT देखने के बाद, अब C/CUDA में implement किया गया संस्करण देखना चाहते हैं। यह भी जिज्ञासा है कि क्या Mojo में nano GPT संभव है। यह स्वीकार किया गया कि Python में दूसरी भाषाओं की तुलना में काफी सुविधाजनक फीचर हैं।
यह उम्मीद जताई गई कि CUDA का direct implementation PyTorch से कहीं तेज होगा। GPU-RAM की कीमत को देखते हुए, यह भी सवाल है कि CPU स्पीड में कितना सुधार मिल सकता है। यह पूछा गया कि क्या RTX series में SO-DIMM slot जोड़कर ज़रूरत के अनुसार RAM बढ़ाना तकनीकी रूप से संभव है या नहीं।
यह पूछा गया कि क्या GPT-2 को time-series data पर लागू करने का कोई उदाहरण है, खासकर covariates को शामिल करने वाले मामलों में। यह विचार रखा गया कि LLM का पिछले token से अगला token predict करना और time-series forecasting एक-दूसरे से मिलते-जुलते हैं।
यह अनुमान लगाया गया कि नाम शायद उनके अपने llm.f90 प्रोजेक्ट से लिया गया होगा। वह Karpathy के llama2.c पर आधारित है और दूसरी architectures को support करने के लिए उसका नाम बदला गया था। संभवतः यह सिर्फ संयोग होगा।
कहा गया कि जब Lex ने Andre से बात की थी, तो Andre ने इस समस्या को लेकर सकारात्मक जुनून दिखाते हुए कहा था, "यह चीज़ ज़रूर मौजूद होनी चाहिए।" यह प्रोजेक्ट शायद ऐसे ही परिणामों में से एक है।
यह सवाल उठाया गया कि अगर कोई बिल्कुल शुरुआत से शुरू करे, तो इस कोड को समझने और इसे पढ़ने का तरीका सीखने के लिए किन सामग्रियों को देखना चाहिए। LLM के बारे में जानकारी बहुत सीमित है, और यह भी पूछा गया कि क्या LLM क्षेत्र में छोटे और संक्षिप्त variable names मानक हैं।
यह राय दी गई कि अच्छा होगा अगर कोई इस प्रोजेक्ट को समझाने और test training चलाने के तरीके पर एक tutorial बनाए। निजी hardware पर "वास्तविक" मॉडल train करना व्यावहारिक नहीं है, लेकिन सीखने के लिए hands-on अनुभव की ज़रूरत है।
यह जिज्ञासा व्यक्त की गई कि क्या AI workloads के लिए CUDA अब भी एकमात्र वास्तविक विकल्प बना हुआ है, या AMD/Intel/अन्य तरीकों के समर्थन में अब वृद्धि हो रही है।