Компонентът Pusher в TensorFlow Extended (TFX) е основна част от TFX тръбопровода, който управлява внедряването на обучени модели в различни целеви среди. Целите за внедряване на компонента Pusher в TFX са разнообразни и гъвкави, което позволява на потребителите да внедряват своите модели на различни платформи в зависимост от техните специфични изисквания. В този отговор ще проучим някои от общите цели за внедряване на компонента Pusher и ще предоставим изчерпателно обяснение на всеки.
1. Локално внедряване:
Компонентът Pusher поддържа локално внедряване, което позволява на потребителите да внедряват своите обучени модели на локалната машина. Това е полезно за целите на тестване и разработка, където моделът може да бъде разгърнат и оценен без необходимост от разпределена система или външна инфраструктура. Локалното внедряване се постига чрез просто указване на локалния път, където се съхраняват артефактите на модела.
Пример:
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 платформа:
Компонентът Pusher също поддържа внедряване в Google Cloud AI Platform, управлявана услуга, която предоставя среда без сървър за изпълнение на модели за машинно обучение. Това позволява на потребителите лесно да внедряват своите модели в облака и да се възползват от мащабируемостта и надеждността, предлагани от Google Cloud. За внедряване в Google Cloud AI Platform, потребителите трябва да предоставят ID на проекта, име на модел и име на версия.
Пример:
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:
TensorFlow Serving е обслужваща система с отворен код за внедряване на модели за машинно обучение. Компонентът Pusher в TFX поддържа внедряване в TensorFlow Serving, което позволява на потребителите да внедряват своите модели в разпределена инфраструктура за обслужване. Това позволява високоефективно и мащабируемо обслужване на модели, което го прави подходящ за производствени внедрявания. За да внедрят в TensorFlow Serving, потребителите трябва да предоставят адреса и порта на моделния сървър на TensorFlow Serving.
Пример:
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. Други персонализирани цели за разполагане:
Компонентът Pusher в TFX е проектиран да бъде разширяем, позволявайки на потребителите да дефинират свои собствени персонализирани цели за внедряване. Това дава на потребителите гъвкавостта да разгръщат своите модели във всяка среда или система, която може да използва модели на TensorFlow. Потребителите могат да внедрят свой собствен персонализиран подклас `PushDestination` и да го регистрират с компонента Pusher, за да позволят внедряването в тяхната целева среда.
Пример:
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 в TFX поддържа различни цели за внедряване, включително локално внедряване, Google Cloud AI Platform, TensorFlow Serving и персонализирани цели за внедряване. Тази гъвкавост позволява на потребителите да внедряват своите обучени модели в различни среди в зависимост от техните специфични нужди и настройка на инфраструктурата.
Други скорошни въпроси и отговори относно Разпределена обработка и компоненти:
- Каква е целта на компонента Evaluator в TFX?
- Кои са двата типа SavedModels, генерирани от компонента Trainer?
- Как компонентът Transform осигурява съгласуваност между средата за обучение и обслужване?
- Каква е ролята на Apache Beam в TFX рамката?