Le composant Pusher dans TensorFlow Extended (TFX) est un élément fondamental du pipeline TFX qui gère le déploiement de modèles entraînés dans divers environnements cibles. Les cibles de déploiement du composant Pusher dans TFX sont diverses et flexibles, permettant aux utilisateurs de déployer leurs modèles sur différentes plates-formes en fonction de leurs besoins spécifiques. Dans cette réponse, nous allons explorer certaines des cibles de déploiement courantes pour le composant Pusher et fournir une explication complète de chacune.
1. Déploiement local :
Le composant Pusher prend en charge le déploiement local, ce qui permet aux utilisateurs de déployer leurs modèles formés sur la machine locale. Ceci est utile à des fins de test et de développement, où le modèle peut être déployé et évalué sans avoir besoin d'un système distribué ou d'une infrastructure externe. Le déploiement local est réalisé en spécifiant simplement le chemin local où les artefacts du modèle sont stockés.
Mise en situation :
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. Plate-forme d'IA Google Cloud :
Le composant Pusher prend également en charge le déploiement sur Google Cloud AI Platform, un service géré qui fournit un environnement sans serveur pour l'exécution de modèles d'apprentissage automatique. Cela permet aux utilisateurs de déployer facilement leurs modèles dans le cloud et de profiter de l'évolutivité et de la fiabilité offertes par Google Cloud. Pour déployer sur Google Cloud AI Platform, les utilisateurs doivent fournir l'ID du projet, le nom du modèle et le nom de la version.
Mise en situation :
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. Service TensorFlow :
TensorFlow Serving est un système de service open source pour le déploiement de modèles d'apprentissage automatique. Le composant Pusher de TFX prend en charge le déploiement sur TensorFlow Serving, permettant aux utilisateurs de déployer leurs modèles sur une infrastructure de service distribuée. Cela permet un service de modèle hautes performances et évolutif, ce qui le rend adapté aux déploiements de production. Pour déployer sur TensorFlow Serving, les utilisateurs doivent fournir l'adresse et le port du serveur modèle TensorFlow Serving.
Mise en situation :
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. Autres cibles de déploiement personnalisées :
Le composant Pusher de TFX est conçu pour être extensible, permettant aux utilisateurs de définir leurs propres cibles de déploiement personnalisées. Cela donne aux utilisateurs la possibilité de déployer leurs modèles dans n'importe quel environnement ou système pouvant consommer des modèles TensorFlow. Les utilisateurs peuvent implémenter leur propre sous-classe personnalisée "PushDestination" et l'enregistrer auprès du composant Pusher pour permettre le déploiement dans leur environnement cible.
Mise en situation :
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') )
Le composant Pusher de TFX prend en charge diverses cibles de déploiement, notamment le déploiement local, Google Cloud AI Platform, TensorFlow Serving et des cibles de déploiement personnalisées. Cette flexibilité permet aux utilisateurs de déployer leurs modèles formés dans différents environnements en fonction de leurs besoins spécifiques et de la configuration de l'infrastructure.
D'autres questions et réponses récentes concernant Traitement et composants distribués:
- À quoi sert le composant Evaluator dans TFX ?
- Quels sont les deux types de SavedModels générés par le composant Trainer ?
- Comment le composant Transform assure-t-il la cohérence entre les environnements de formation et de diffusion ?
- Quel est le rôle d'Apache Beam dans le framework TFX ?