Google’ın Derin Öğrenme için Heyecanlandırdığı JAX Nedir?

Rümeysa Kara
2 min readSep 23, 2022

--

Muhtemelen TensorFlow ve PyTorch’u duymuşsunuzdur, makine öğrenimi framework leri arasında yeni sayılabilecek biri daha var : JAX.

Peki JAX hakkında bu kadar heyecan verici olan nedir?

JAX Nedir?

Derin sinir ağları için, her parametrede kayıp işlevini en aza indirmek ve gradyan inişi gerçekleştirmek, aşırı derecede kaynak tüketebilir. Geleneksel yaklaşımlar, manuel olarak türetmeyi ve kodlamayı veya TensorFlow gibi bir makine öğrenimi çerçevesinin sözdizimsel ve anlamsal kısıtlamalarını kullanarak nöral modeli uygulamayı içerir.

Peki ya bir NumPy kitaplığı kullanarak loss fonksiyonlarını basitçe yazmak ve işin otomatik olarak yapılmasını sağlamak mümkün olsaydı? İşte tam olarak Jax ın yaptığı iş budur.

JAX, NumPy’ye benzer, ancak birkaç harika özelliği daha olan bir kitaplıktır:

JAX, NumPy kodunuzu GPU'lar ve TPU'lar gibi hızlandırıcılarda derlemek ve çalıştırmak için XLA'yı kullanır. Derleme, kitaplık çağrılarının tam zamanında (JIT) derlenmesi ve yürütülmesi ile varsayılan olarak arka planda gerçekleşir.

JAX, tek işlevli bir API kullanarak kendi Python işlevlerinizi XLA için optimize edilmiş çekirdeklerde tam zamanında derlemenize izin verir. Derleme ve otomatik farklılaşma isteğe bağlı olarak oluşturulabilir, böylece karmaşık algoritmaları ifade edebilir ve Python’dan ayrılmak zorunda kalmadan maksimum performans elde edebilirsiniz.

Makine Öğrenimi için JAX ve TensorFlow

JAX ve TensorFlow, Google tarafından yazılmıştır. JAX’i geliştirmek biraz daha kolay görünüyor ve daha sezgisel olduğu söylenebilir.

Bununla birlikte, JAX, açık kaynak projeleri, önceden eğitilmiş modeller, öğreticiler, daha yüksek seviyeli soyutlamalar (Keras aracılığıyla) ve dağıtım hedeflerine taşınabilirlik olsun, TensorFlow’un yıllar içinde oluşturduğu kapsamlı altyapıdan yoksundur.

Makine Öğrenimi için JAX ve PyTorch

JAX’a yakın bir makine öğrenimi çerçevesi de PyTorch’tur.

JAX’ın daha düşük seviyeli fonksiyon tanımlarına sahip işlevselliği, belirli araştırma görevleri için tercih edilmesini sağlar.

Bununla birlikte, PyTorch çok daha fazla kitaplık ve yardımcı program, önceden eğitilmiş ve önceden yazılmış ağ tanımları, bir veri yükleyici ve dağıtım hedeflerine taşınabilirlik sunar.

Araştırma alanında faaliyet gösteriyorsanız, JAX projeniz için iyi bir seçenektir.

Aktif olarak bir uygulama geliştiriyorsanız, PyTorch veya TensorFlow frameworklerini kullanmak girişiminizi daha hızlı hareket ettirecektir.

--

--

Rümeysa Kara

Data Science and Deep Learning enthusiast. Computer Engineering Student.