2 puan yazan GN⁺ 2024-04-25 | 1 yorum | WhatsApp'ta paylaş

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 sunar
    • README.md içinde dokümantasyon, ön eğitimli ağırlık bağlantıları ve atıf bilgileri bulunur
    • <task_name>/<model_name>.yaml dosyalarıyla yeniden üretilebilir eğitim/değerlendirme ayarları sunar
  • mlx_example: Apple Silicon üzerinde CoreNet modellerini verimli çalıştırma örnekleri
  • corenet/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, data vb.

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

 
GN⁺ 2024-04-25
Hacker News görüşleri
  • CoreNet, CVNets'ten evrilmiş ve bilgisayarlı görmenin ötesine geçerek daha geniş uygulamaları kapsar hâle gelmiş. Bu da LLM'ler dahil temel model eğitimini kolaylaştırıyor.
  • CoreNet'in default_trainer.py dosyası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.
  • Mevcut framework'lerle işbirliği yapmak yerine her şeyi sıfırdan inşa etmek ilginç; muhtemelen oldukça Apple'a özgü bir tercih.
  • MLX örnekleri şu anda yalnızca inference destekliyor gibi görünüyor. MLX'e özel bir implementasyon için iniş pisti olabilir.
  • Son dönemdeki Datakalab ve DarwinAI satın alımları düşünüldüğünde, bunun önümüzdeki 1 yılda nasıl ilerleyeceği merak uyandırıyor.
  • Apple, Jax üzerine kurulu axlearn kü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.
  • README'de CatLIP adlı yeni bir modelden de bahsediliyor ama bağlantı bozuk.
  • CoreNet, PyTorch tabanlı olarak geliştirilmiş.
  • MLX'i, Apple Silicon için optimize edilmiş ve PyTorch'a denk bir yapı olarak anlıyorum. CoreNet'in MLX modellerini dağıtık eğitmek için mi olduğu, yoksa amacının tam olarak ne olduğu merak ediliyor.
  • Bu depoda, farklı modeller ve kullanım şekilleri için küçük API örnekleri üretebilen bir LLM ajanı olsa güzel olurdu.
  • Apple M1 üzerinde sinir ağı eğitimi ve inference için hangi kütüphaneyi önerirsiniz? Bunu C++ veya Rust'tan kullanmak istiyorum ve sinir ağının en fazla 5M parametresi olacak.
  • MPS backend kullanan Huggingface Transformers yerine bunu kullanmanın avantajı nedir?
  • README'de gözden kaçırmadıysam, Apple Silicon üzerinde eğitimi destekleyip desteklemediği net değil.
  • Apple'ın LLM eğitimiyle ilgili açık bilgiyi ileri taşıyor olması ilginç. Dünya değişiyor.