Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Déploiement de Modèles avec FastAPI | Section
Fondamentaux du MLOps

bookDé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.

Note
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]}

question mark

Quelles affirmations concernant la mise à disposition de modèles d’apprentissage automatique avec FastAPI sont exactes ?

Select all correct answers

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookDé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.

Note
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]}

question mark

Quelles affirmations concernant la mise à disposition de modèles d’apprentissage automatique avec FastAPI sont exactes ?

Select all correct answers

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 7
some-alt