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 .