The Pusher TFX Pipeline Component
Stay organized with collections
Save and categorize content based on your preferences.
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.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-09-06 UTC.
[null,null,["Last updated 2024-09-06 UTC."],[],[],null,["# The Pusher TFX Pipeline Component\n\n\u003cbr /\u003e\n\nThe Pusher component is used to push a validated model to a\n[deployment target](/tfx/guide#deployment_targets) during model training or\nre-training. Before the deployment, Pusher relies on one or more blessings from\nother validation components to decide whether to push the model or not.\n\n- [Evaluator](/tfx/guide/evaluator) blesses the model if the new trained model is \"good enough\" to be pushed to production.\n- (Optional but recommended) [InfraValidator](/tfx/guide/infra_validator) blesses the model if the model is mechanically servable in a production environment.\n\nA Pusher component consumes a trained model in [SavedModel](/guide/saved_model)\nformat, and produces the same SavedModel, along with versioning metadata.\n\nUsing the Pusher Component\n--------------------------\n\nA Pusher pipeline component is typically very easy to deploy and requires little\ncustomization, since all of the work is done by the Pusher TFX component.\nTypical code looks like this: \n\n pusher = Pusher(\n model=trainer.outputs['model'],\n model_blessing=evaluator.outputs['blessing'],\n infra_blessing=infra_validator.outputs['blessing'],\n push_destination=tfx.proto.PushDestination(\n filesystem=tfx.proto.PushDestination.Filesystem(\n base_directory=serving_model_dir)\n )\n )\n\n### Pushing a model produced from InfraValidator.\n\n(From version 0.30.0)\n\nInfraValidator can also produce `InfraBlessing` artifact containing a\n[model with warmup](/tfx/guide/infra_validator#producing_a_savedmodel_with_warmup), and\nPusher can push it just like a `Model` artifact. \n\n infra_validator = InfraValidator(\n ...,\n # make_warmup=True will produce a model with warmup requests in its\n # 'blessing' output.\n request_spec=tfx.proto.RequestSpec(..., make_warmup=True)\n )\n\n pusher = Pusher(\n # Push model from 'infra_blessing' input.\n infra_blessing=infra_validator.outputs['blessing'],\n push_destination=tfx.proto.PushDestination(...)\n )\n\nMore details are available in the\n[Pusher API reference](https://www.tensorflow.org/tfx/api_docs/python/tfx/v1/components/Pusher)."]]