Pusher TFX 管道组件

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 参考