AI Deploy - Tutoriel - Déployer une app pour de l'analyse de sentiment avec Hugging Face et Flask
Comment déployer une app pour analyser les sentiments d'un texte en utilisant Hugging Face et Flask
AI Deploy is covered by OVHcloud Public Cloud Special Conditions.
Objectif
L’objectif de ce tutoriel est de vous montrer comment déployer un service web d’analyse de sentiment sur du texte à l’aide de modèles pré-entraînés Hugging Face.
Pour cela, vous utiliserez Flask, un micro framework open source pour le développement web en Python. Vous apprendrez également à construire et utiliser une image Docker personnalisée pour une application Flask.
Aperçu de l’app :
Pour plus d’informations sur Hugging Face, rendez-vous sur https://huggingface.co/.
Prérequis
- Accès à l’ ;
- un projet AI Deploy créé au sein d’un projet Public Cloud dans votre compte OVHcloud ;
- un utilisateur pour AI Deploy ;
- Docker installé sur votre ordinateur local ;
- des connaissances sur la construction d’images et sur le Dockerfile ;
Nous vous suggérons également de faire des tests pour déterminer quel modèle Hugging Face convient à votre cas d’usage. Retrouvez des exemples sur notre dépôt GitHub.
En pratique
Tout d’abord, l’arborescence de votre dossier doit être la suivante :
Retrouvez plus d’informations sur l’application Flask ici pour vous préparer à l’utiliser.
Écrire l’application Flask
Créez un fichier Python nommé app.py.
Dans ce fichier, importez les modules nécessaires :
Créez l’app Flask :
Chargez les modèles Hugging Face :
Écrivez la fonction d’inférence :
Définissez la méthode GET :
Définissez la méthode POST :
Démarrez votre app :
Écrire le fichier requirements.txt de l’application
Le fichier requirements.txt nous permettra d’indiquer tous les modules nécessaires au fonctionnement de notre application. Ce fichier sera utile lors de l’écriture du Dockerfile.
Nous verrons ici principalement comment écrire le code app.py, le fichier requirements.txt et le Dockerfile. Si vous souhaitez voir le code complet, reportez-vous au dépôt GitHub.
Écrire le Dockerfile de l’application
Votre Dockerfile doit commencer par l’instruction FROM indiquant l’image parente à utiliser. Dans notre cas, nous choisissons de partir d’une image Python :
Créez le répertoire personnel et ajoutez-y vos fichiers :
Installez le fichier requirements.txt qui contient les modules Python nécessaires à l’aide d’une commande pip install ... :
Définissez votre commande de lancement par défaut pour démarrer l’application :
Donnez les droits d’accès nécessaires à l’utilisateur ovhcloud (42420:42420) :
Construire l’image Docker depuis le Dockerfile
Depuis le répertoire contenant votre Dockerfile, exécutez l’une des commandes suivantes pour construire l’image de votre application :
- La première commande construit l’image en utilisant l’architecture par défaut de votre système. Cela peut fonctionner si votre machine utilise déjà l’architecture
linux/amd64, requise pour exécuter des containers avec nos produits AI. Cependant, sur des systèmes avec une architecture différente (par exempleARM64surApple Silicon), l’image résultante ne sera pas compatible et ne pourra pas être déployée. - La seconde commande cible explicitement l’architecture
linux/amd64afin de garantir la compatibilité avec nos services AI. Elle nécessitebuildx, qui n’est pas installé par défaut. Si vous n’avez jamais utilisébuildx, vous pouvez l’installer en exécutant :docker buildx install
L’argument point . indique que votre contexte de build (emplacement du Dockerfile et des autres fichiers nécessaires) est le répertoire courant.
L’argument -t vous permet de choisir l’identifiant à donner à votre image. En général, les identifiants d’image sont composés d’un nom et d’un tag de version <name>:<version>. Pour cet exemple, nous avons choisi sentiment_analysis_app:latest.
Tester en local (optionnel)
Lancez la commande Docker suivante pour lancer votre application localement sur votre ordinateur :
L’argument -p 5000:5000 indique que vous souhaitez rediriger le port 5000 de votre machine locale vers le port 5000 du container Docker. Le port 5000 est le port par défaut utilisé par les applications Flask.
N’oubliez pas l’argument --user=42420:42420 si vous souhaitez simuler exactement le même comportement que celui qui se produira sur les apps AI Deploy. Il exécute le container Docker en tant qu’utilisateur OVHcloud spécifique (utilisateur 42420:42420).
Une fois démarrée, votre application devrait être disponible à l’adresse http://localhost:5000.
Envoyer l’image vers le registre partagé
Le registre partagé ne doit être utilisé qu’à des fins de test. Nous vous recommandons de créer et d’attacher votre propre registre. Plus d’informations à ce sujet sont disponibles ici. Les images envoyées sur ce registre sont destinées uniquement aux workloads AI Tools et ne seront pas accessibles pour des usages externes.
Trouvez l’adresse de votre registre partagé en lançant cette commande :
Connectez-vous au registre partagé avec vos identifiants habituels d’utilisateur AI Platform :
Envoyez l’image compilée vers le registre partagé :
Lancer l’app AI Deploy
La commande suivante démarre une nouvelle app exécutant votre application Flask :
--default-http-port 5000 indique que le port à atteindre sur l’URL de l’app est le 5000.
--cpu 4 indique que nous demandons 4 CPU pour cette app.
Pensez à ajouter l’attribut --unsecure-http si vous souhaitez que votre application soit accessible sans authentification.
Aller plus loin
- Vous pouvez également imaginer déployer un modèle de détection d’objets avec Flask dans ce tutoriel.
- Découvrez un autre outil pour déployer facilement des modèles d’IA : Gradio. Reportez-vous à cette documentation.
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Votre avis nous intéresse !
N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :
- Sur le serveur Discord OVHcloud