Il componente Pusher TFX Pipeline

Il componente Pusher viene utilizzato per inviare un modello convalidato a una destinazione di distribuzione durante l'addestramento o il riaddestramento del modello. Prima della distribuzione, Pusher fa affidamento su una o più benedizioni da altri componenti di convalida per decidere se spingere il modello o meno.

  • Il valutatore benedice il modello se il nuovo modello addestrato è "abbastanza buono" per essere messo in produzione.
  • (Facoltativo ma consigliato) InfraValidator migliora il modello se è utilizzabile meccanicamente in un ambiente di produzione.

Un componente Pusher utilizza un modello addestrato in formato SavedModel e produce lo stesso SavedModel, insieme ai metadati di controllo delle versioni.

Utilizzo del componente spintore

Un componente della pipeline Pusher è in genere molto semplice da implementare e richiede poca personalizzazione, poiché tutto il lavoro viene svolto dal componente Pusher TFX. Il codice tipico è simile al seguente:

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

Spingendo un modello prodotto da InfraValidator.

(Dalla versione 0.30.0)

InfraValidator può anche produrre un artefatto InfraBlessing contenente un modello con riscaldamento e Pusher può spingerlo proprio come un artefatto 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(...)
)

Maggiori dettagli sono disponibili nel riferimento API Pusher .