El componente de empuje se utiliza para empujar un modelo validado para un destino de implementación durante el entrenamiento de modelo o re-entrenamiento. Antes de la implementación, Pusher se basa en una o más bendiciones de otros componentes de validación para decidir si impulsar el modelo o no.
- Evaluador bendice el modelo si el nuevo modelo entrenado es "suficientemente bueno" para ser empujado a la producción.
- (Opcional pero recomendado) InfraValidator bendice el modelo si el modelo es mecánicamente servable en un entorno de producción.
Componente de un empujador consume un modelo entrenado en SavedModel formato, y produce el mismo SavedModel, junto con versiones de metadatos.
Uso del componente de empuje
Un componente de canalización 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)
)
)
Empujando un modelo producido desde InfraValidator.
(A partir de la versión 0.30.0)
InfraValidator también puede producir InfraBlessing
artefacto que contiene un modelo con calentamiento , y el empujador puede empujarlo al igual que un Model
de artefacto.
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 la API de empuje .