Charger un modèle préentraîné

Déployer l'IA en production avec FastAPI

Matt Eckerle

Software and Data Engineering Leader

Structure actuelle

Organigramme : prédiction ML avec FastAPI

Déployer l'IA en production avec FastAPI

Défi : chargement des modèles

Schéma du cycle de vie requête/réponse

Homme frustré en attente de la réponse de l'API

Déployer l'IA en production avec FastAPI

Charger les modèles avant la requête

Organigramme : prédiction ML avec FastAPI

Déployer l'IA en production avec FastAPI

Chargement du modèle

from fastapi import FastAPI
sentiment_model = None
def load_model():
    global sentiment_model
    sentiment_model = SentimentAnalyzer("trained_model.joblib")
    print("Model loaded successfully")
load_model()
Model loaded successfully
Déployer l'IA en production avec FastAPI

Événement de cycle de vie FastAPI

Schéma du cycle de vie FastAPI

Déployer l'IA en production avec FastAPI

Événement de cycle de vie FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Déployer l'IA en production avec FastAPI

Vérifications d'état

 

@app.get("/health")
def health_check():
    if sentiment_model is not None:
        return {"status": "healthy", 
                "model_loaded": True}
    return {"status": "unhealthy", 
            "model_loaded": False}

Commande curl :

curl -X GET \
  "http://localhost:8080/health" \
  -H "accept: application/json"

Résultat :

{
  "status": "healthy",
  "model_loaded": true
}
Déployer l'IA en production avec FastAPI

Passons à la pratique !

Déployer l'IA en production avec FastAPI

Preparing Video For Download...