Pusher-komponenten i TensorFlow Extended (TFX) är en grundläggande del av TFX-pipelinen som hanterar utplaceringen av tränade modeller till olika målmiljöer. Implementeringsmålen för Pusher-komponenten i TFX är olika och flexibla, vilket gör att användare kan distribuera sina modeller till olika plattformar beroende på deras specifika krav. I det här svaret kommer vi att utforska några av de vanliga implementeringsmålen för Pusher-komponenten och ge en omfattande förklaring av var och en.
1. Lokal distribution:
Pusher-komponenten stöder lokal distribution, vilket tillåter användare att distribuera sina tränade modeller på den lokala maskinen. Detta är användbart för test- och utvecklingsändamål, där modellen kan distribueras och utvärderas utan behov av ett distribuerat system eller extern infrastruktur. Lokal distribution uppnås genom att helt enkelt specificera den lokala sökvägen där modellartefakterna lagras.
Exempelvis:
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:
Pusher-komponenten stöder även distribution till Google Cloud AI Platform, en hanterad tjänst som tillhandahåller en serverlös miljö för att köra maskininlärningsmodeller. Detta tillåter användare att enkelt distribuera sina modeller till molnet och dra fördel av skalbarheten och tillförlitligheten som erbjuds av Google Cloud. För att distribuera till Google Cloud AI Platform måste användarna ange projekt-ID, modellnamn och versionsnamn.
Exempelvis:
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-servering:
TensorFlow Serving är ett serversystem med öppen källkod för att distribuera maskininlärningsmodeller. Pusher-komponenten i TFX stöder distribution till TensorFlow Serving, vilket gör att användare kan distribuera sina modeller till en distribuerad serveringsinfrastruktur. Detta möjliggör högpresterande och skalbar modellservering, vilket gör den lämplig för produktionsinstallationer. För att distribuera till TensorFlow Serving måste användarna ange TensorFlow Serving-modellserverns adress och port.
Exempelvis:
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. Andra anpassade implementeringsmål:
Pusher-komponenten i TFX är designad för att vara utbyggbar, så att användare kan definiera sina egna anpassade distributionsmål. Detta ger användarna flexibiliteten att distribuera sina modeller till alla miljöer eller system som kan konsumera TensorFlow-modeller. Användare kan implementera sin egen anpassade "PushDestination"-underklass och registrera den med Pusher-komponenten för att möjliggöra distribution till sin målmiljö.
Exempelvis:
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') )
Pusher-komponenten i TFX stöder olika distributionsmål, inklusive lokal implementering, Google Cloud AI Platform, TensorFlow Serving och anpassade implementeringsmål. Denna flexibilitet tillåter användare att distribuera sina utbildade modeller till olika miljöer beroende på deras specifika behov och infrastrukturinställning.
Andra senaste frågor och svar ang Distribuerad bearbetning och komponenter:
- Vad är syftet med Evaluator-komponenten i TFX?
- Vilka är de två typerna av SavedModels som genereras av Trainer-komponenten?
- Hur säkerställer Transform-komponenten överensstämmelse mellan tränings- och serveringsmiljöer?
- Vilken roll har Apache Beam i TFX-ramverket?