Caricare un modello pre-addestrato

Deployment di AI in produzione con FastAPI

Matt Eckerle

Software and Data Engineering Leader

Struttura attuale

Diagramma di flusso che mostra una previsione ML con FastAPI

Deployment di AI in produzione con FastAPI

Problema nel caricamento dei modelli

Diagramma che spiega il ciclo di vita richiesta/risposta

Uomo frustrato in attesa della risposta dell'API

Deployment di AI in produzione con FastAPI

Carica i modelli prima della richiesta

Diagramma di flusso che mostra una previsione ML con FastAPI

Deployment di AI in produzione con FastAPI

Caricamento del modello

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
Deployment di AI in produzione con FastAPI

Evento di lifespan in FastAPI

Diagramma di flusso che spiega il lifespan di FastAPI

Deployment di AI in produzione con FastAPI

Evento di lifespan in FastAPI

from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(app: FastAPI):
    # Startup: Load the ML model
    load_model()
    yield
app = FastAPI(lifespan=lifespan)
Deployment di AI in produzione con FastAPI

Health check

 

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

Comando curl:

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

Output:

{
  "status": "healthy",
  "model_loaded": true
}
Deployment di AI in produzione con FastAPI

Esercitiamoci!

Deployment di AI in produzione con FastAPI

Preparing Video For Download...