Die Pusher-Komponente in TensorFlow Extended (TFX) ist ein grundlegender Bestandteil der TFX-Pipeline, die die Bereitstellung trainierter Modelle in verschiedenen Zielumgebungen übernimmt. Die Bereitstellungsziele für die Pusher-Komponente in TFX sind vielfältig und flexibel, sodass Benutzer ihre Modelle je nach ihren spezifischen Anforderungen auf verschiedenen Plattformen bereitstellen können. In dieser Antwort werden wir einige der häufigsten Bereitstellungsziele für die Pusher-Komponente untersuchen und jeweils eine umfassende Erläuterung geben.
1. Lokale Bereitstellung:
Die Pusher-Komponente unterstützt die lokale Bereitstellung, sodass Benutzer ihre trainierten Modelle auf dem lokalen Computer bereitstellen können. Dies ist für Test- und Entwicklungszwecke nützlich, bei denen das Modell bereitgestellt und bewertet werden kann, ohne dass ein verteiltes System oder eine externe Infrastruktur erforderlich ist. Die lokale Bereitstellung erfolgt durch einfache Angabe des lokalen Pfads, in dem die Modellartefakte gespeichert sind.
Beispiel:
python pusher = Pusher( model=trainer.outputs['model'], model_blessing=evaluator.outputs['blessing'], push_destination=pusher_pb2.PushDestination( filesystem=pusher_pb2.PushDestination.Filesystem( base_directory='/path/to/local/deployment' ) ) )
2. Google Cloud AI-Plattform:
Die Pusher-Komponente unterstützt auch die Bereitstellung auf der Google Cloud AI Platform, einem verwalteten Dienst, der eine serverlose Umgebung zum Ausführen von Modellen für maschinelles Lernen bereitstellt. Dadurch können Benutzer ihre Modelle einfach in der Cloud bereitstellen und die Skalierbarkeit und Zuverlässigkeit von Google Cloud nutzen. Für die Bereitstellung auf der Google Cloud AI Platform müssen Benutzer die Projekt-ID, den Modellnamen und den Versionsnamen angeben.
Beispiel:
python pusher = Pusher( model=trainer.outputs['model'], model_blessing=evaluator.outputs['blessing'], push_destination=pusher_pb2.PushDestination( ai_platform_push=pusher_pb2.PushDestination.AIPlatformPush( project_id='my-project', model_id='my-model', version_id='v1' ) ) )
3. TensorFlow-Bereitstellung:
TensorFlow Serving ist ein Open-Source-Servingsystem für die Bereitstellung von Modellen für maschinelles Lernen. Die Pusher-Komponente in TFX unterstützt die Bereitstellung für TensorFlow Serving, sodass Benutzer ihre Modelle in einer verteilten Bereitstellungsinfrastruktur bereitstellen können. Dies ermöglicht eine leistungsstarke und skalierbare Modellbereitstellung und eignet sich daher für Produktionsbereitstellungen. Für die Bereitstellung auf TensorFlow Serving müssen Benutzer die Adresse und den Port des TensorFlow Serving-Modellservers angeben.
Beispiel:
python pusher = Pusher( model=trainer.outputs['model'], model_blessing=evaluator.outputs['blessing'], push_destination=pusher_pb2.PushDestination( tensorflow_serving=pusher_pb2.PushDestination.TensorFlowServing( tags=['serve'], server='localhost:8500' ) ) )
4. Andere benutzerdefinierte Bereitstellungsziele:
Die Pusher-Komponente in TFX ist erweiterbar, sodass Benutzer ihre eigenen benutzerdefinierten Bereitstellungsziele definieren können. Dies gibt Benutzern die Flexibilität, ihre Modelle in jeder Umgebung oder jedem System bereitzustellen, das TensorFlow-Modelle nutzen kann. Benutzer können ihre eigene benutzerdefinierte „PushDestination“-Unterklasse implementieren und diese bei der Pusher-Komponente registrieren, um die Bereitstellung in ihrer Zielumgebung zu ermöglichen.
Beispiel:
python class MyCustomPushDestination(pusher_pb2.PushDestination): def __init__(self, my_custom_arg): self.my_custom_arg = my_custom_arg pusher = Pusher( model=trainer.outputs['model'], model_blessing=evaluator.outputs['blessing'], push_destination=MyCustomPushDestination(my_custom_arg='custom_value') )
Die Pusher-Komponente in TFX unterstützt verschiedene Bereitstellungsziele, darunter lokale Bereitstellung, Google Cloud AI Platform, TensorFlow Serving und benutzerdefinierte Bereitstellungsziele. Diese Flexibilität ermöglicht es Benutzern, ihre trainierten Modelle je nach ihren spezifischen Anforderungen und Infrastruktureinstellungen in verschiedenen Umgebungen bereitzustellen.
Weitere aktuelle Fragen und Antworten zu Verteilte Verarbeitung und Komponenten:
- Was ist der Zweck der Evaluator-Komponente in TFX?
- Welche zwei Arten von SavedModels werden von der Trainer-Komponente generiert?
- Wie stellt die Transform-Komponente die Konsistenz zwischen Schulungs- und Serviceumgebungen sicher?
- Welche Rolle spielt Apache Beam im TFX-Framework?