Komponenta Pusher u TensorFlow Extended (TFX) temeljni je dio TFX cjevovoda koji upravlja implementacijom obučenih modela u različitim ciljnim okruženjima. Ciljevi implementacije za komponentu Pusher u TFX-u su raznoliki i fleksibilni, omogućujući korisnicima da implementiraju svoje modele na različite platforme ovisno o njihovim specifičnim zahtjevima. U ovom ćemo odgovoru istražiti neke od uobičajenih ciljeva postavljanja za komponentu Pusher i dati sveobuhvatno objašnjenje svakog od njih.
1. Lokalna implementacija:
Komponenta Pusher podržava lokalnu implementaciju, što korisnicima omogućuje da implementiraju svoje obučene modele na lokalnom računalu. Ovo je korisno za potrebe testiranja i razvoja, gdje se model može implementirati i evaluirati bez potrebe za distribuiranim sustavom ili vanjskom infrastrukturom. Lokalna implementacija postiže se jednostavnim određivanjem lokalnog puta gdje su pohranjeni artefakti modela.
Primjer:
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 platforma:
Komponenta Pusher također podržava implementaciju na Google Cloud AI Platformu, upravljanu uslugu koja pruža okruženje bez poslužitelja za pokretanje modela strojnog učenja. Ovo korisnicima omogućuje jednostavno postavljanje svojih modela u oblak i iskorištavanje prednosti skalabilnosti i pouzdanosti koje nudi Google Cloud. Za implementaciju na Google Cloud AI Platformu korisnici trebaju dati ID projekta, naziv modela i naziv verzije.
Primjer:
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 posluživanje:
TensorFlow Serving je sustav posluživanja otvorenog koda za implementaciju modela strojnog učenja. Komponenta Pusher u TFX-u podržava implementaciju na TensorFlow Serving, omogućujući korisnicima da implementiraju svoje modele na distribuiranu infrastrukturu za posluživanje. To omogućuje visokoučinkovito i skalabilno posluživanje modela, što ga čini prikladnim za produkcijske implementacije. Za implementaciju na TensorFlow Serving, korisnici trebaju dati adresu i port modela poslužitelja TensorFlow Serving.
Primjer:
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. Ostali prilagođeni ciljevi implementacije:
Komponenta Pusher u TFX-u dizajnirana je da bude proširiva, omogućujući korisnicima da definiraju vlastite prilagođene ciljeve implementacije. To korisnicima daje fleksibilnost da implementiraju svoje modele u bilo koje okruženje ili sustav koji može koristiti modele TensorFlow. Korisnici mogu implementirati vlastitu prilagođenu potklasu `PushDestination` i registrirati je s komponentom Pusher kako bi omogućili implementaciju u svoje ciljno okruženje.
Primjer:
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') )
Komponenta Pusher u TFX-u podržava različite ciljeve implementacije, uključujući lokalnu implementaciju, Google Cloud AI Platformu, TensorFlow Serving i prilagođene ciljeve implementacije. Ova fleksibilnost omogućuje korisnicima da implementiraju svoje obučene modele u različita okruženja ovisno o njihovim specifičnim potrebama i postavkama infrastrukture.
Ostala nedavna pitanja i odgovori u vezi Distribuirana obrada i komponente:
- Koja je svrha komponente Evaluator u TFX-u?
- Koje su dvije vrste spremljenih modela koje generira komponenta Trainer?
- Kako komponenta Transform osigurava dosljednost između okruženja za obuku i posluživanja?
- Koja je uloga Apache Beama u TFX okviru?