MLX - Apple Silicon için NumPy benzeri bir dizi çerçevesi
(github.com/ml-explore)- 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
Bu gerçekten çok iyi görünüyor. Çok fazla dinamik veriyle çalıştığım için JAX kullanırken hep zorlanıyordum...
Oh, bu güzelmiş. Bir deneyelim.