Uso de otros marcos de ML en TFX

TFX como plataforma es neutral en el marco y se puede utilizar con otros marcos de ML, por ejemplo, JAX, scikit-learn.

Para los desarrolladores de modelos, esto significa que no necesitan reescribir el código de su modelo implementado en otro marco de aprendizaje automático, sino que pueden reutilizar la mayor parte del código de entrenamiento tal como está en TFX y beneficiarse de otras capacidades de 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 canalizaciones, no tienen ninguna dependencia directa de TensorFlow, pero hay algunos aspectos que están orientados hacia TensorFlow, como los formatos de datos. Teniendo en cuenta las necesidades de un marco de modelado particular, se puede utilizar una canalización TFX para entrenar modelos en cualquier otro marco de aprendizaje automático 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:

  • EjemploGen 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 puede convertir aún más a tf.dataset , Tensors u otros formatos. Se están considerando formatos de carga útil/archivo 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 características transformadas en lugar de 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 al realizar la publicación.
  • Trainer admite GenericTraining para que los usuarios puedan entrenar sus modelos utilizando cualquier marco de ML.
  • De forma predeterminada, el evaluador 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 del aprendizaje automático de alto rendimiento. Flax es una biblioteca y ecosistema de redes neuronales para JAX, diseñado para brindar flexibilidad.

Con jax2tf , podemos convertir modelos JAX/Flax entrenados al formato 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 .

aprendizaje-scikit

Scikit-learn es una biblioteca de aprendizaje automático para el lenguaje de programación Python. Disponemos de un ejemplo e2e con formación y evaluación personalizada en TFX-Addons.