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 .