TFX como plataforma es independiente del marco y se puede usar con otros marcos de ML, por ejemplo, JAX, scikit-learn.
Para los desarrolladores de modelos, esto significa que no necesitan volver a escribir su código de modelo implementado en otro marco de ML, sino que pueden reutilizar la mayor parte del código de entrenamiento tal como está en TFX y beneficiarse de otras capacidades TFX y el resto del ecosistema TensorFlow. ofertas
El SDK de canalización de TFX y la mayoría de los módulos de TFX, por ejemplo, el orquestador de canalización, no tienen ninguna dependencia directa de TensorFlow, pero hay algunos aspectos que están orientados hacia TensorFlow, como los formatos de datos. Con cierta consideración de las necesidades de un marco de modelado en particular, se puede usar una canalización TFX para entrenar modelos en cualquier otro marco de ML basado en Python. Esto incluye Scikit-learn, XGBoost y PyTorch, entre otros. Algunas de las consideraciones para usar los componentes TFX estándar con otros marcos incluyen:
- ExampleGen genera tf.train.Example en archivos TFRecord. Es una representación genérica para datos de entrenamiento, y los componentes posteriores usan TFXIO para leerlos como Arrow/RecordBatch en la memoria, que se pueden convertir a
tf.dataset
,Tensors
u otros formatos. Se están considerando formatos de archivo/carga útil distintos de tf.train.Example/TFRecord, pero para los usuarios de TFXIO debería ser una caja negra. - Transform se puede usar para generar ejemplos de entrenamiento transformados sin importar qué marco se use para el entrenamiento, pero si el formato del modelo no es
saved_model
, los usuarios no podrán incrustar el gráfico de transformación en el modelo. En ese caso, la predicción del modelo debe tomar las características transformadas en lugar de las características sin procesar, y los usuarios pueden ejecutar la transformación como un paso de preprocesamiento antes de llamar a la predicción del modelo cuando se entrega. - Trainer es compatible con GenericTraining para que los usuarios puedan entrenar sus modelos utilizando cualquier marco ML.
- El evaluador de forma predeterminada solo admite
saved_model
, pero los usuarios pueden proporcionar una UDF que genere predicciones para la evaluación del modelo.
Entrenar un modelo en un marco no basado en Python requerirá aislar un componente de entrenamiento personalizado en un contenedor Docker, como parte de una canalización que se ejecuta en un entorno en contenedores como Kubernetes.
JAX
JAX es Autograd y XLA, unidos para la investigación de aprendizaje automático de alto rendimiento. Flax es una biblioteca de redes neuronales y un ecosistema para JAX, diseñado para brindar flexibilidad.
Con jax2tf , podemos convertir modelos JAX/Flax capacitados en formato de modelo saved_model
, que se puede usar sin problemas en TFX con capacitación genérica y evaluación de modelos. Para obtener más información, consulte este ejemplo .
scikit-aprender
Scikit-learn es una biblioteca de aprendizaje automático para el lenguaje de programación Python. Tenemos un ejemplo de e2e con capacitación y evaluación personalizadas en TFX-Addons.