Conteneuriser une application FastAPI avec des modèles Hugging Face
La conteneurisation de FastAPI et des modèles Hugging Face via Docker rend le déploiement rapide, portable et reproductible. Voici un guide étape par étape pour créer un conteneur Docker pour une application FastAPI utilisant des modèles Hugging Face.
1. Créer l’application FastAPI
Commencez par créer une application FastAPI pour servir le modèle Hugging Face :
Ce fichier app.py
définit une API avec un point de terminaison /predict
, qui prend un texte, exécute le modèle Hugging Face pour le sentiment, et renvoie une prédiction.
2. Créer un Dockerfile
Le Dockerfile décrit comment construire l’image Docker pour l’application.
- Base d’image :
python:3.9-slim
est léger et rapide pour des applications Python. - Installation des dépendances :
pip install
installe les bibliothèques nécessaires. - Exposer le port : L’API sera accessible via le port
8000
. - Commande de démarrage : Lance Uvicorn pour exécuter FastAPI.
3. Construire et tester le conteneur
-
Construire l’image Docker :
-
Lancer le conteneur :
Cette commande exécute le conteneur et mappe le port
8000
de la machine hôte au port8000
du conteneur. -
Tester l’API : Accédez à
http://localhost:8000/predict?text="Votre texte ici"
pour tester l’API. Vous pouvez également utiliser l’interface Swagger générée automatiquement àhttp://localhost:8000/docs
.
4. Optimisation pour le déploiement
Pour un déploiement en production, considérez les éléments suivants :
- Multi-stage builds : Pour minimiser la taille de l’image, utilisez une construction multi-stage.
- Gestion des versions : Spécifiez les versions exactes des bibliothèques dans le Dockerfile pour garantir la stabilité.
- Variable d’environnement : Configurez les tokens API ou autres paramètres via des variables d’environnement.
- Déploiement cloud : Déployez l’image sur des services comme AWS Elastic Container Service, Azure Kubernetes Service, ou GCP Kubernetes Engine.
Exemple de déploiement cloud rapide
Pour Azure Container Registry (ACR) :
- Push de l’image vers ACR :
- Déployer sur Azure Kubernetes Service (AKS) ou un service similaire pour une mise à l’échelle automatique et une gestion avancée.
Conclusion
Conteneuriser une application FastAPI utilisant des modèles Hugging Face permet une intégration rapide et un déploiement agile dans des environnements de production. En empaquetant l’application dans Docker, on garantit la portabilité et facilite l’intégration avec des pipelines MLOps dans le cloud.