Déploiement de Modèles avec FastAPI
Lorsque vous souhaitez rendre votre modèle d'apprentissage automatique accessible à d'autres applications ou utilisateurs, le déployer sous forme de service web constitue une solution courante et pratique. FastAPI est un framework web Python moderne qui permet de créer rapidement des API REST, ce qui en fait un excellent choix pour le déploiement de modèles de machine learning. Avec FastAPI, il est possible d'exposer un modèle entraîné via des points de terminaison HTTP, permettant ainsi de solliciter des prédictions depuis n'importe quel endroit, à l'aide de n'importe quel langage ou outil capable d'effectuer des requêtes web.
Le flux de travail typique pour servir un modèle ML avec FastAPI comprend plusieurs étapes :
- Entraîner et sérialiser le modèle à l'aide d'une bibliothèque telle que scikit-learn ;
- Créer une application FastAPI qui charge le modèle sauvegardé au démarrage ;
- Définir un point de terminaison (par exemple
/predict) qui accepte les données en entrée, exécute l'inférence et retourne la prédiction ; - Exécuter l'application FastAPI en tant que serveur web afin qu'elle puisse répondre aux requêtes HTTP.
Cette approche présente de nombreux avantages :
- Découplage du modèle de l'environnement d'entraînement et accessibilité pour d'autres systèmes ;
- Génération automatique par FastAPI d'une documentation interactive pour l'API, facilitant ainsi les tests et le partage ;
- Framework asynchrone et très performant, ce qui est essentiel pour les usages en temps réel ou en production.
Avant de voir comment mettre cela en œuvre, clarifions ce qu'est FastAPI.
FastAPI est un framework web moderne et rapide pour la création d'API avec Python.
Pour illustrer ce fonctionnement en pratique, voici une application FastAPI simple qui charge un modèle scikit-learn et expose un point de terminaison /predict. Cet exemple suppose qu'un modèle a déjà été entraîné et sauvegardé à l'aide du module joblib ou pickle de scikit-learn. L'API acceptera une entrée JSON pour la prédiction et retournera la sortie du modèle.
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
import numpy as np
# Define the request body schema
class InputData(BaseModel):
feature1: float
feature2: float
# Load the trained model (assumes model.pkl exists)
model = joblib.load("model.pkl")
app = FastAPI()
@app.post("/predict")
def predict(input_data: InputData):
# Prepare input for the model
data = np.array([[input_data.feature1, input_data.feature2]])
# Make prediction
prediction = model.predict(data)
# Return the result as JSON
return {"prediction": prediction[0]}
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 6.67
Déploiement de Modèles avec FastAPI
Glissez pour afficher le menu
Lorsque vous souhaitez rendre votre modèle d'apprentissage automatique accessible à d'autres applications ou utilisateurs, le déployer sous forme de service web constitue une solution courante et pratique. FastAPI est un framework web Python moderne qui permet de créer rapidement des API REST, ce qui en fait un excellent choix pour le déploiement de modèles de machine learning. Avec FastAPI, il est possible d'exposer un modèle entraîné via des points de terminaison HTTP, permettant ainsi de solliciter des prédictions depuis n'importe quel endroit, à l'aide de n'importe quel langage ou outil capable d'effectuer des requêtes web.
Le flux de travail typique pour servir un modèle ML avec FastAPI comprend plusieurs étapes :
- Entraîner et sérialiser le modèle à l'aide d'une bibliothèque telle que scikit-learn ;
- Créer une application FastAPI qui charge le modèle sauvegardé au démarrage ;
- Définir un point de terminaison (par exemple
/predict) qui accepte les données en entrée, exécute l'inférence et retourne la prédiction ; - Exécuter l'application FastAPI en tant que serveur web afin qu'elle puisse répondre aux requêtes HTTP.
Cette approche présente de nombreux avantages :
- Découplage du modèle de l'environnement d'entraînement et accessibilité pour d'autres systèmes ;
- Génération automatique par FastAPI d'une documentation interactive pour l'API, facilitant ainsi les tests et le partage ;
- Framework asynchrone et très performant, ce qui est essentiel pour les usages en temps réel ou en production.
Avant de voir comment mettre cela en œuvre, clarifions ce qu'est FastAPI.
FastAPI est un framework web moderne et rapide pour la création d'API avec Python.
Pour illustrer ce fonctionnement en pratique, voici une application FastAPI simple qui charge un modèle scikit-learn et expose un point de terminaison /predict. Cet exemple suppose qu'un modèle a déjà été entraîné et sauvegardé à l'aide du module joblib ou pickle de scikit-learn. L'API acceptera une entrée JSON pour la prédiction et retournera la sortie du modèle.
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
import numpy as np
# Define the request body schema
class InputData(BaseModel):
feature1: float
feature2: float
# Load the trained model (assumes model.pkl exists)
model = joblib.load("model.pkl")
app = FastAPI()
@app.post("/predict")
def predict(input_data: InputData):
# Prepare input for the model
data = np.array([[input_data.feature1, input_data.feature2]])
# Make prediction
prediction = model.predict(data)
# Return the result as JSON
return {"prediction": prediction[0]}
Merci pour vos commentaires !