24 puan yazan xguru 2023-12-07 | 2 yorum | WhatsApp'ta paylaş
  • Apple makine öğrenimi araştırma ekibi tarafından geliştirilen, Apple Silicon üzerinde verimli ve esnek makine öğrenimi çalıştırmak için tasarlanmış bir dizi çerçevesi
  • NumPy ile neredeyse aynı Python API'sini sunuyor; ayrıca tüm işlevleri kapsayan bir C++ API'si de bulunuyor
  • NumPy ile farkları
    • Birleştirilebilir işlev dönüşümleri: MLX'te otomatik türev alma, otomatik vektörleştirme ve hesaplama grafiği optimizasyonu için birleştirilebilir işlev dönüşümleri bulunuyor
    • Tembel hesaplama: MLX'in hesaplamaları tembel şekilde yürütülür. Diziler yalnızca gerektiğinde somutlaştırılır (materialize)
    • Çoklu cihaz: Desteklenen tüm cihazlarda (CPU, GPU, ...) işlemler çalıştırılabilir
  • Dinamik grafik oluşturma: MLX'in hesaplama grafiği dinamik olarak kurulur. İşlev argümanlarının şekli değişse bile derleme hızı yavaşlamaz; hata ayıklama basit ve sezgiseldir
  • PyTorch, Jax, ArrayFire gibi çerçevelerden ilham alıyor
    • Bu çerçeveler ile MLX arasındaki dikkat çekici farklardan biri Unified Memory Model
    • MLX dizileri paylaşımlı bellekte saklanır. MLX dizileri üzerindeki işlemler, veri kopyalama yapmadan desteklenen tüm cihaz türlerinde gerçekleştirilebilir
    • Şu anda desteklenen cihaz türleri CPU ve GPU
  • Çeşitli örnekler içeriyor
    • Transformer dil modeli eğitimi
    • LLaMA ile büyük ölçekli metin üretimi ve LoRA ile ince ayar
    • Stable Diffusion ile görüntü üretme
    • OpenAI's Whisper ile konuşma tanıma

2 yorum

 
mjhong0708 2023-12-07

Dinamik grafik oluşturma: MLX’in hesaplama grafiği dinamik olarak oluşturuluyor. Fonksiyon argümanlarının şeklini değiştirmek derleme hızını yavaşlatmıyor ve hata ayıklama basit, sezgisel.

Bu gerçekten çok iyi görünüyor. Çok fazla dinamik veriyle çalıştığım için JAX kullanırken hep zorlanıyordum...

 
haebom 2023-12-07

Oh, bu güzelmiş. Bir deneyelim.