TFX'te Diğer ML Çerçevelerini Kullanma

Bir platform olarak TFX, çerçeveden bağımsızdır ve JAX, scikit-learn gibi diğer makine öğrenimi çerçeveleriyle birlikte kullanılabilir.

Model geliştiriciler için bu, başka bir makine öğrenimi çerçevesinde uygulanmış model kodlarını yeniden yazmalarına gerek olmadığı, bunun yerine eğitim kodunun büyük kısmını TFX'te olduğu gibi yeniden kullanabilecekleri ve TFX'in diğer yeteneklerinden ve TensorFlow Ekosistemi'nin geri kalanından yararlanabilecekleri anlamına gelir. teklifler.

TFX boru hattı SDK'sı ve TFX'teki çoğu modül, örneğin boru hattı orkestratörü, TensorFlow'a doğrudan bağımlı değildir, ancak veri formatları gibi TensorFlow'a yönelik bazı yönler vardır. Belirli bir modelleme çerçevesinin ihtiyaçları dikkate alınarak, herhangi bir Python tabanlı makine öğrenimi çerçevesindeki modelleri eğitmek için bir TFX işlem hattı kullanılabilir. Buna diğerlerinin yanı sıra Scikit-learn, XGBoost ve PyTorch dahildir. Standart TFX bileşenlerini diğer çerçevelerle kullanmaya ilişkin dikkate alınması gereken hususlardan bazıları şunlardır:

  • SampleGen, TFRecord dosyalarında tf.train.Example dosyasının çıktısını alır. Bu, eğitim verilerinin genel bir temsilidir ve aşağı akış bileşenleri, bunu bellekte Arrow/RecordBatch olarak okumak için TFXIO'yu kullanır; bu, daha sonra tf.dataset , Tensors veya diğer formatlara dönüştürülebilir. tf.train.Example/TFRecord dışındaki Yük/Dosya formatları değerlendirilmektedir, ancak TFXIO kullanıcıları için bunun bir kara kutu olması gerekir.
  • Eğitim için hangi çerçeve kullanılırsa kullanılsın, dönüştürülmüş eğitim örnekleri oluşturmak için dönüşüm kullanılabilir, ancak model formatı saved_model değilse kullanıcılar dönüşüm grafiğini modele yerleştiremez. Bu durumda, model tahmininin ham özellikler yerine dönüştürülmüş özellikleri alması gerekir ve kullanıcılar, sunum sırasında model tahminini çağırmadan önce bir ön işleme adımı olarak dönüşümü çalıştırabilir.
  • Trainer, GenericTraining'i destekler, böylece kullanıcılar modellerini herhangi bir ML çerçevesini kullanarak eğitebilirler.
  • Değerlendirici varsayılan olarak yalnızca saved_model destekler, ancak kullanıcılar model değerlendirmesi için tahminler üreten bir UDF sağlayabilir.

Python tabanlı olmayan bir çerçevede bir modelin eğitilmesi, Kubernetes gibi kapsayıcılı bir ortamda çalışan bir işlem hattının parçası olarak Docker kapsayıcısında özel bir eğitim bileşeninin yalıtılmasını gerektirecektir.

JAX

JAX , yüksek performanslı makine öğrenimi araştırması için bir araya getirilen Autograd ve XLA'dır. Flax , JAX için esneklik amacıyla tasarlanmış bir sinir ağı kütüphanesi ve ekosistemidir.

jax2tf ile eğitilmiş JAX/Flax modellerini, jenerik eğitim ve model değerlendirme ile TFX'te sorunsuz bir şekilde kullanılabilecek saved_model formatına dönüştürebiliyoruz. Ayrıntılar için bu örneği inceleyin.

scikit-öğren

Scikit-learn, Python programlama dili için bir makine öğrenimi kütüphanesidir. TFX-Addons'ta özelleştirilmiş eğitim ve değerlendirme içeren bir e2e örneğimiz var.