Déployer un conteneur Hugging Face sur Azure Container Apps
Déployer un modèle Hugging Face via Azure Container Apps permet de créer un service de modèle léger et scalable sans la gestion d’infrastructure complexe. Voici un guide détaillé pour conteneuriser un modèle Hugging Face et le déployer sur Azure Container Apps.
Étapes pour déployer un conteneur Hugging Face sur Azure Container Apps
-
Préparer l’application avec FastAPI et Hugging Face
Créez une API pour servir le modèle Hugging Face à l’aide de FastAPI (ou d’une autre solution Web légère) pour interagir facilement avec le modèle.
app.py from fastapi import FastAPIfrom transformers import pipelineapp = FastAPI()# Charger un modèle Hugging Face (par ex., analyse de sentiment)sentiment_analysis = pipeline("sentiment-analysis")@app.get("/predict")async def predict(text: str):result = sentiment_analysis(text)return {"text": text, "label": result[0]["label"], "score": result[0]["score"]}Ce code crée une API qui reçoit des textes et renvoie une prédiction.
-
Créer un Dockerfile pour l’application
Pour conteneuriser l’application, créez un
Dockerfile
:# Utilisez une image de base légèreFROM python:3.9-slim# Définir le répertoire de travailWORKDIR /app# Copier les fichiers dans le conteneurCOPY app.py /appCOPY requirements.txt /app# Installer les dépendancesRUN pip install -r requirements.txt# Exposer le port 8000EXPOSE 8000# Commande pour lancer l'applicationCMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]Dans le fichier
requirements.txt
, listez les bibliothèques nécessaires :fastapiuvicorntransformerstorch -
Construire et tester l’image Docker en local
-
Construire l’image :
Terminal window docker build -t huggingface-fastapi . -
Tester en local :
Terminal window docker run -p 8000:8000 huggingface-fastapi -
Accédez à
http://localhost:8000/predict?text=Votre+texte+ici
pour vérifier si le modèle fonctionne correctement.
-
-
Publier l’image sur Azure Container Registry (ACR)
-
Connectez-vous à Azure et créez un registre ACR :
Terminal window az loginaz acr create --resource-group <nom_groupe_ressource> --name <nom_registre> --sku Basic -
Poussez l’image dans ACR :
Terminal window az acr login --name <nom_registre>docker tag huggingface-fastapi <nom_registre>.azurecr.io/huggingface-fastapi:v1docker push <nom_registre>.azurecr.io/huggingface-fastapi:v1
-
-
Déployer sur Azure Container Apps
-
Créer une application de conteneur Azure :
Terminal window az containerapp create \--resource-group <nom_groupe_ressource> \--name huggingface-container-app \--image <nom_registre>.azurecr.io/huggingface-fastapi:v1 \--environment <nom_environnement> \--cpu 0.5 \--memory 1.0Gi \--ingress external \--target-port 8000 -
Valider le déploiement : Accédez à l’URL générée par Azure Container Apps pour tester l’API.
-
Conseils pour le déploiement en production
- Auto-scaling : Configurez le scaling automatique pour s’adapter à la demande.
- Sécurité : Activez l’authentification si nécessaire pour contrôler l’accès.
- Surveillance : Utilisez Azure Monitor pour suivre les performances du conteneur et recevoir des alertes.
Conclusion
Déployer un conteneur Hugging Face sur Azure Container Apps rend l’inférence de modèle rapide, économique, et facilement scalable. Cette approche est idéale pour un déploiement léger et géré par Azure, évitant la maintenance d’infrastructures plus lourdes.