CoreNet: गहन न्यूरल नेटवर्क ट्रेनिंग के लिए लाइब्रेरी
(github.com/apple)Apple द्वारा विकसित deep learning framework CoreNet का परिचय
- CoreNet, Apple द्वारा विकसित एक deep learning framework है, जो standard या नए large-scale models को विभिन्न tasks पर train कर सकता है
- Foundation Model (CLIP, LLM), object classification, object detection, Semantic Segmentation जैसे tasks को support करता है
- हाल ही में अपडेट किए गए v0.1.0 में OpenELM, CatLIP, MLX examples आदि शामिल हैं
CoreNet का उपयोग करते हुए Apple के शोध परिणाम
- OpenELM: एक efficient और open source Language Model, जिसे training/inference के लिए इस्तेमाल किया जा सकता है
- CatLIP: web-scale image-text data पर 2.7 गुना तेज pretraining के साथ CLIP-स्तर का performance हासिल किया गया
- FastVit: structural reparameterization का उपयोग करने वाला तेज hybrid Vision Transformer
- Bytes Are All You Need: ऐसा Transformer जो सीधे files के byte units पर काम करता है
- MobileOne: 1ms latency वाला mobile backbone network
- RangeAugment: Range Learning का उपयोग करने वाली efficient online augmentation technique
- MobileViT: mobile-friendly lightweight Vision Transformer
- इसके अलावा कई अन्य शोध उपलब्धियां भी प्रस्तुत की गई हैं
इंस्टॉलेशन और development environment सेटअप
- Git LFS install करना आवश्यक है (testing, Jupyter Notebook चलाने और contribution के लिए ज़रूरी)
- Linux पर Python 3.10+, PyTorch v2.1.0+ recommended है
- macOS पर Python 3.9+ पर्याप्त है
- optional dependency packages contribution या tests चलाने के समय आवश्यक होते हैं
- Linux, macOS installation methods और audio/video processing के लिए packages install करने के तरीके विस्तार से समझाए गए हैं
CoreNet की directory structure
tutorials: शुरुआती examples- नए dataset के साथ model को scratch से train करना
- SLURM और multi-node training guide
- CLIP, Semantic Segmentation, Object Detection examples
projects: हर task के लिए training recipes, pretrained weights और checkpoints उपलब्धREADME.mdमें documentation, pretrained weight links और citation information शामिल है<task_name>/<model_name>.yamlfiles के जरिए reproducible training/evaluation settings दी गई हैं
mlx_example: Apple Silicon पर CoreNet models को efficiently चलाने के examplescorenet/modeling/models: task-wise organized model implementations- decorator के जरिए task name और model name निर्दिष्ट करना
- YAML config file में इस्तेमाल होने वाले model class को निर्दिष्ट करने का तरीका समझाया गया है
corenet/data/datasets: task-wise organized datasets- अन्य class implementation directories का भी विवरण, जिन्हें YAML configs में refer किया जाता है
loss_fn,metrics,optims,dataआदि
CoreNet प्रोजेक्ट जानकारी
- Sachin ने development शुरू किया था, और फिलहाल Sachin, Maxwell Horton, Mohammad Sekhavat, Yanzi Jin इसे maintain कर रहे हैं
- community से Pull Request contributions का स्वागत है. contribution docs देखें.
- CoreNet, CVNets से विकसित हुआ प्रोजेक्ट है, और Vision के अलावा LLM जैसे Foundation Model training को support करने के लिए इसे विस्तार दिया गया है
GN⁺ की राय
-
CoreNet एक comprehensive deep learning framework लगता है, जो नवीनतम SOTA models को समेटता है. SOTA model implementations के साथ training pipeline भी उपलब्ध होने से मौजूदा research results को reproduce करना आसान हो सकता है.
-
चूंकि यह Apple द्वारा विकसित framework है, इसलिए Apple Silicon devices पर optimized execution की उम्मीद की जा सकती है. खासकर MLX examples के जरिए Apple Silicon optimization के तरीके की झलक मिलती है.
-
Vision tasks के साथ-साथ LLM जैसे Foundation Model training को support करना इसकी खास विशेषता है. हालांकि मौजूदा public version 0.1.0 है, इसलिए यह अभी शुरुआती चरण में लगता है. आगे के update plans और roadmap जानना रोचक होगा.
-
PyTorch-based framework होने के कारण PyTorch ecosystem की कई सुविधाओं का उपयोग किया जा सकता है. हालांकि मौजूदा project structure को देखते हुए दूसरे frameworks के साथ interoperability मुश्किल लगती है.
-
अगर ONNX या TorchScript के जरिए model export feature मिले तो अच्छा होगा. साथ ही iOS, macOS app development के दौरान CoreML conversion जैसे Apple ecosystem integration विकल्पों पर भी विचार किया जा सकता है.
1 टिप्पणियां
Hacker News राय
default_trainer.pyको देखने पर पता चलता है कि यह PyTorch के Tensor का उपयोग करता है, लेकिन अपनी खुद की training method implement करता है। यह अपना LR scheduler और optimizer implement करता है, और caller चाहे तो वैकल्पिक रूप से PyTorch का Adam इस्तेमाल कर सकता है।