CoreNet: Derin sinir ağı eğitimi için bir kütüphane
(github.com/apple)Apple tarafından geliştirilen derin öğrenme çerçevesi CoreNet'e giriş
- CoreNet, Apple tarafından geliştirilen bir derin öğrenme çerçevesidir ve standart ya da yeni büyük ölçekli modelleri çeşitli görevlerde eğitebilir
- Foundation Model (CLIP, LLM), nesne sınıflandırma, nesne tespiti, Semantic Segmentation gibi görevleri destekler
- Yakın zamanda güncellenen v0.1.0 sürümüne OpenELM, CatLIP, MLX örnekleri vb. dahil edildi
CoreNet ile Apple'ın araştırma çıktıları
- OpenELM: verimli, açık kaynaklı olarak eğitilebilen/çıkarım yapılabilen bir Language Model
- CatLIP: web ölçeğindeki görüntü-metin verisiyle 2.7 kat daha hızlı ön eğitim yaparak CLIP düzeyinde performans elde ediyor
- FastVit: yapısal yeniden parametrelendirmeden yararlanan hızlı bir hibrit Vision Transformer
- Bytes Are All You Need: dosyaların bayt düzeyinde doğrudan çalışan bir Transformer
- MobileOne: 1 ms gecikmeye sahip mobil omurga ağı
- RangeAugment: Range Learning kullanan verimli bir online augmentation tekniği
- MobileViT: mobil dostu hafif bir Vision Transformer
- Bunun dışında çok sayıda başka araştırma çıktısı da tanıtılıyor
Kurulum ve geliştirme ortamı yapılandırması
- Git LFS kurulumu gerekli (testler, Jupyter Notebook çalıştırma ve katkı için gerekli)
- Linux'ta Python 3.10+, PyTorch v2.1.0+ önerilir
- macOS'ta Python 3.9+ yeterlidir
- İsteğe bağlı bağımlılık paketleri, katkı veya test çalıştırma sırasında gereklidir
- Ayrıntılı Linux, macOS kurulum yöntemleri ve ses/video işleme için paket kurulum yöntemleri açıklanıyor
CoreNet'in dizin yapısı
tutorials: başlangıç örnekleri- yeni bir veri kümesiyle sıfırdan model eğitme
- SLURM ve çok düğümlü eğitim rehberi
- CLIP, Semantic Segmentation, Object Detection örnekleri
projects: her görev için eğitim reçeteleri ile önceden eğitilmiş ağırlıklar ve checkpoint'ler sunarREADME.mdiçinde dokümantasyon, ön eğitimli ağırlık bağlantıları ve atıf bilgileri bulunur<task_name>/<model_name>.yamldosyalarıyla yeniden üretilebilir eğitim/değerlendirme ayarları sunar
mlx_example: Apple Silicon üzerinde CoreNet modellerini verimli çalıştırma örneklericorenet/modeling/models: görevlere göre düzenlenmiş model implementasyonları- dekoratör ile görev adı ve model adı belirtilir
- YAML yapılandırma dosyasında kullanılacak model sınıfını belirtme yöntemi açıklanır
corenet/data/datasets: görevlere göre düzenlenmiş veri kümeleri- YAML yapılandırmalarında referans verilen diğer sınıf implementasyon dizinleri de açıklanır
loss_fn,metrics,optims,datavb.
CoreNet proje bilgileri
- Geliştirmeye Sachin başladı; şu anda Sachin, Maxwell Horton, Mohammad Sekhavat ve Yanzi Jin tarafından sürdürülüyor
- Topluluktan Pull Request katkıları memnuniyetle karşılanıyor. Katkı belgelerine bakın.
- CoreNet, CVNets'ten evrilen bir projedir ve Vision'ın ötesinde LLM gibi Foundation Model eğitimini desteklemek için genişletilmiştir
GN⁺ görüşü
-
CoreNet, güncel SOTA modelleri kapsayan bütüncül bir derin öğrenme çerçevesi gibi görünüyor. SOTA model implementasyonlarıyla birlikte eğitim pipeline'ı da sunduğu için mevcut araştırma sonuçlarını yeniden üretmeyi kolaylaştırabilir.
-
Apple tarafından geliştirilen bir çerçeve olması nedeniyle Apple Silicon cihazlarda optimize çalışması beklenebilir. Özellikle MLX örnekleri, Apple Silicon üzerindeki optimizasyon yaklaşımına dair fikir verebilir.
-
Yalnızca vision görevlerini değil, LLM gibi Foundation Model eğitimini de desteklemesi ayırt edici bir özellik. Ancak mevcut açık sürüm 0.1.0 olduğundan hâlâ erken aşamada görünüyor. Gelecekteki güncelleme planı ve yol haritası merak uyandırıyor.
-
PyTorch tabanlı bir çerçeve olması sayesinde PyTorch ekosisteminin çeşitli yeteneklerinden yararlanabilir gibi görünüyor. Ancak mevcut proje yapısı itibarıyla diğer çerçevelerle birlikte çalışabilirlik zor olabilir.
-
ONNX veya TorchScript üzerinden model export özelliği sunulması faydalı olabilir. Ayrıca iOS, macOS uygulama geliştirmede CoreML'e dönüştürme gibi Apple ekosistemiyle entegrasyon yolları da değerlendirilebilir.
1 yorum
Hacker News görüşleri
default_trainer.pydosyasına bakınca, PyTorch Tensor'larını kullandığı ama kendi eğitim yöntemini uyguladığı görülüyor. Kendi LR scheduler'ını ve optimizer'ını uyguluyor; çağıran taraf ise isteğe bağlı olarak PyTorch'un Adam'ını kullanabiliyor.axlearnkütüphanesini de aktif olarak geliştiriyor. Apple'ın ML ekiplerinin yarısı PyTorch, diğer yarısı ise Jax kullanıyor gibi görünüyor.