Pusher 组件用于在模型训练或重新训练期间将经过验证的模型推送到 部署目标。在部署之前,Pusher 依赖于来自其他验证组件的一个或多个祝福来决定是否推送模型。
- Evaluator 如果新训练的模型“足够好”可以推送到生产环境,则会祝福该模型。
- (可选但推荐) InfraValidator 如果模型在生产环境中可以机械地服务,则会祝福该模型。
Pusher 组件使用 SavedModel 格式消耗训练后的模型,并生成相同的 SavedModel 以及版本控制元数据。
使用 Pusher 组件
Pusher 管道组件通常非常易于部署,并且需要很少的自定义,因为所有工作都由 Pusher TFX 组件完成。典型的代码如下所示
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)
)
)
推送从 InfraValidator 生成的模型。
(从版本 0.30.0 开始)
InfraValidator 还可以生成包含 带有预热模型 的 InfraBlessing
工件,Pusher 可以像 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(...)
)
有关更多详细信息,请参阅 Pusher API 参考。