Déployer une pipeline Transformers sans serveur sur Google Cloud
Explore la création d'une pipeline sentimentale Transformers sur Google Cloud en mode serverless, avec des insights techniques concrets.
Déployer des modèles de machine learning sans serveur est une pratique de plus en plus répandue grâce aux solutions cloud. Pourtant, tout n’est pas aussi simple qu’une installation en un clic. Maxence Dominici partage son expérience concrète avec l’implémentation d’une API de pipeline Transformers sur Google Cloud, un défi technique qui pourrait bien inspirer ta prochaine aventure cloud.
Comprendre et utiliser la bibliothèque Transformers
L’une des difficultés rencontrées par Maxence a été le format des fichiers téléchargés: un checkpoint plutôt qu’un modèle Keras habitable via tensorflow.keras.models.load_model. Heureusement, la bibliothèque Transformers de Hugging Face offre une API intuitive pour bâtir une infrastructure de traitement du langage naturel sans se casser la tête. L’exemple fourni par l’équipe est d’une simplicité désarmante: quelques lignes de code suffisent pour une première classification de sentiments.
« La simplicité de l’API de Hugging Face facilite l’implémentation d’une solution de classification, même pour les novices. »
Maxence Dominici, développeur
Les complexités du déploiement sur Google Cloud
Bien qu’ayant choisi Google Cloud pour son usage personnel, Maxence a fait face à plusieurs défis. Le service AI-Platform Prediction était encore en bêta, limitant la stabilité requise. Ensuite, le passage par App Engine a révélé des limites de performances, surtout avec TensorFlow. PyTorch est apparu comme une alternative plus souple, permettant plus de vCPU et une meilleure utilisation de la mémoire sur Cloud Run.
Démystifier l’implémentation pipeline serverless
Le projet final de Maxence comprenait plusieurs éléments clefs : un fichier main.py pour gérer les requêtes, un Dockerfile pour packager le modèle avec la bonne image, et un modèle de base DistilBERT adapté pour l’analyse de sentiments. Docker est incontournable dans cette méthodologie, permettant l’exécution de modèles via un service PyTorch plus performant que TensorFlow pour son cas spécifique.
Le déploiement sans serveur sur Google Cloud exige des choix judicieux en matière de frameworks et d’infrastructures cloud; PyTorch a surpassé TensorFlow dans cette configuration pour son efficacité et sa rapidité.
Naviguer les choix entre AI-Platform, App Engine et Cloud Run
AI-Platform étant instable, Maxence s’est tourné vers App Engine et, finalement, Cloud Run. Pourquoi ce dernier ? Plus flexible, il a permis d’augmenter les ressources allouées, cruciales pour une exécution rapide et fiable. En revanche, le serveur devait être lancé avec des arguments limités à un seul processus pour éviter des ressources redondantes et mal optimisées.
À terme, la réalisation technique s’étend bien au-delà du simple choix d’un service Google. Il s’agit d’orchestrer efficacement les divers composants logiciels pour une performance maximale.