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 .