Menggunakan Kerangka ML Lainnya di TFX

TFX sebagai platform bersifat netral terhadap kerangka kerja, dan dapat digunakan dengan kerangka kerja ML lainnya, misalnya JAX, scikit-learn.

Bagi developer model, ini berarti mereka tidak perlu menulis ulang kode model yang diimplementasikan dalam framework ML lain, namun dapat menggunakan kembali sebagian besar kode pelatihan apa adanya di TFX, dan memanfaatkan kemampuan lain TFX dan Ekosistem TensorFlow lainnya. penawaran.

SDK pipeline TFX dan sebagian besar modul di TFX, misalnya orkestrator pipeline, tidak memiliki ketergantungan langsung pada TensorFlow, namun ada beberapa aspek yang berorientasi pada TensorFlow, seperti format data. Dengan mempertimbangkan kebutuhan kerangka pemodelan tertentu, pipeline TFX dapat digunakan untuk melatih model dalam kerangka ML berbasis Python lainnya. Ini termasuk Scikit-learn, XGBoost, dan PyTorch, antara lain. Beberapa pertimbangan untuk menggunakan komponen TFX standar dengan framework lain antara lain:

  • ExampleGen mengeluarkan tf.train.Example dalam file TFRecord. Ini adalah representasi umum untuk data pelatihan, dan komponen hilir menggunakan TFXIO untuk membacanya sebagai Arrow/RecordBatch di memori, yang selanjutnya dapat dikonversi ke tf.dataset , Tensors , atau format lainnya. Format Payload/File selain tf.train.Example/TFRecord sedang dipertimbangkan, tetapi bagi pengguna TFXIO ini harus menjadi kotak hitam.
  • Transform dapat digunakan untuk menghasilkan contoh pelatihan yang ditransformasikan, apa pun kerangka kerja yang digunakan untuk pelatihan, namun jika format modelnya bukan saved_model , pengguna tidak akan dapat menyematkan grafik transformasi ke dalam model. Dalam hal ini, prediksi model perlu menggunakan fitur yang diubah, bukan fitur mentah, dan pengguna dapat menjalankan transformasi sebagai langkah prapemrosesan sebelum memanggil prediksi model saat ditayangkan.
  • Trainer mendukung GenericTraining sehingga pengguna dapat melatih model mereka menggunakan framework ML apa pun.
  • Evaluator secara default hanya mendukung saved_model , namun pengguna dapat menyediakan UDF yang menghasilkan prediksi untuk evaluasi model.

Melatih model dalam kerangka kerja non-Python memerlukan isolasi komponen pelatihan khusus dalam container Docker, sebagai bagian dari pipeline yang berjalan di lingkungan container seperti Kubernetes.

JAX

JAX adalah Autograd dan XLA, yang disatukan untuk penelitian pembelajaran mesin berkinerja tinggi. Flax adalah perpustakaan dan ekosistem jaringan saraf untuk JAX, yang dirancang untuk fleksibilitas.

Dengan jax2tf , kami dapat mengonversi model JAX/Flax yang dilatih menjadi format saved_model , yang dapat digunakan secara lancar di TFX dengan pelatihan umum dan evaluasi model. Untuk detailnya, lihat contoh ini.

scikit-belajar

Scikit-learn adalah perpustakaan pembelajaran mesin untuk bahasa pemrograman Python. Kami memiliki contoh e2e dengan pelatihan dan evaluasi yang disesuaikan di TFX-Addons.