El componente de canalización Pusher TFX

El componente Pusher se utiliza para enviar un modelo validado a un objetivo de implementación durante el entrenamiento o reentrenamiento del modelo. Antes de la implementación, Pusher depende de una o más bendiciones de otros componentes de validación para decidir si impulsar el modelo o no.

  • El evaluador bendice el modelo si el nuevo modelo entrenado es "lo suficientemente bueno" como para llevarlo a producción.
  • (Opcional pero recomendado) InfraValidator bendice el modelo si el modelo se puede utilizar mecánicamente en un entorno de producción.

Un componente Pusher consume un modelo entrenado en formato SavedModel y produce el mismo SavedModel, junto con los metadatos de control de versiones.

Uso del componente empujador

Un componente de canalización de Pusher suele ser muy fácil de implementar y requiere poca personalización, ya que todo el trabajo lo realiza el componente Pusher TFX. El código típico se ve así:

pusher = Pusher(
  model
=trainer.outputs['model'],
  model_blessing
=evaluator.outputs['blessing'],
  infra_blessing
=infra_validator.outputs['blessing'],
  push_destination
=tfx.proto.PushDestination(
    filesystem
=tfx.proto.PushDestination.Filesystem(
        base_directory
=serving_model_dir)
 
)
)

Impulsando un modelo producido a partir de InfraValidator.

(Desde la versión 0.30.0)

InfraValidator también puede producir un artefacto InfraBlessing que contiene un modelo con calentamiento , y Pusher puede impulsarlo como un artefacto Model .

infra_validator = InfraValidator(
   
...,
   
# make_warmup=True will produce a model with warmup requests in its
   
# 'blessing' output.
    request_spec
=tfx.proto.RequestSpec(..., make_warmup=True)
)

pusher
= Pusher(
   
# Push model from 'infra_blessing' input.
    infra_blessing
=infra_validator.outputs['blessing'],
    push_destination
=tfx.proto.PushDestination(...)
)

Más detalles están disponibles en la referencia de Pusher API .