Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

The Pusher TFX Pipeline Component

The Pusher component is used to push a validated model to a deployment target during model training or re-training. Before the deployment, Pusher relies on one or more blessings from other validation components to decide whether to push the model or not.

  • Evaluator blesses the model if the new trained model is "good enough" to be pushed to production.
  • (Optional but recommended) InfraValidator blesses the model if the model is mechanically servable in a production environment.

A Pusher component consumes a trained model in SavedModel format, and produces the same SavedModel, along with versioning metadata.

Using the Pusher Component

A Pusher pipeline component is typically very easy to deploy and requires little customization, since all of the work is done by the Pusher TFX component. Typical code looks like this:

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)
  )
)

Pushing a model produced from InfraValidator.

(From version 0.30.0)

InfraValidator can also produce InfraBlessing artifact containing a model with warmup, and Pusher can push it just like a Model artifact.

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(...)
)

More details are available in the Pusher API reference.