0Pricing
MLOps Academy · Lezione

Caricare il modello una sola volta all'avvio

Usi gli eventi del lifespan per eseguire il caricamento una sola volta.

Caricare il modello una sola volta all'avvio è una lezione MLOps Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento MLOps Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso MLOps Academy include 4 lezioni in totale.

Il problema dell'endpoint lento

Se chiama joblib.load all'interno di /predict, il modello viene ricaricato a ogni richiesta. Per i modelli grandi è lento e spreca risorse. 🐢

Caricarlo una sola volta

La soluzione è caricare il model una sola volta all'avvio del servizio, mantenerlo in memoria e riutilizzarlo per ogni previsione.

L'hook lifespan

FastAPI offre una funzione lifespan per eseguire la configurazione prima di servire le richieste e le operazioni di pulizia dopo. È il posto giusto per caricare il modello.

Scrivere un gestore di contesto asincrono

Decori una funzione asincrona con asynccontextmanager. Il codice prima di yield viene eseguito all'avvio; quello dopo, all'arresto.

from contextlib import asynccontextmanager

Conservare il modello nello state

Carichi il modello all'avvio e lo salvi in app.state, un'area condivisa a cui ogni gestore delle richieste potrà accedere in seguito.

@asynccontextmanager
async def lifespan(app):
    app.state.model = joblib.load("model.joblib")
    yield

Collegarlo all'app

Passi la Sua funzione lifespan quando crea l'app. Ora FastAPI eseguirà il codice di caricamento una sola volta all'avvio del server.

app = FastAPI(lifespan=lifespan)

Leggerlo nella route

All'interno di /predict recuperi il modello già caricato da app.state. Nessuna lettura dal disco: solo un rapido accesso in memoria.

@app.post("/predict")
def predict(req: Request):
    model = req.app.state.model

Pulire all'arresto

Qualsiasi istruzione dopo yield viene eseguita quando l'applicazione si arresta: è perfetta per chiudere file o liberare la memoria GPU occupata dal modello.

    yield
    app.state.model = None

Rendere più rapida la prima richiesta

Poiché il caricamento è terminato all'avvio, anche il primo utente riceve una risposta rapida, senza il costo del caricamento a freddo. ⚡

Controllare il numero di worker

Ogni worker di uvicorn è un processo separato con una propria copia del modello. Più worker significano più memoria, quindi scelga il numero con attenzione.

Perché è importante

Caricare una sola volta è un'ottimizzazione fondamentale per il serving: riduce la latenza, limita l'I/O su disco e mantiene prevedibile l'uso della memoria sotto il traffico reale. 📈

Verifica rapida

Vuole che il modello venga caricato esattamente una volta all'avvio del servizio. Dove dovrebbe avvenire?

Riepilogo

Ha spostato il caricamento in un hook lifespan, salvato il modello in app.state e letto il modello per ogni richiesta. Un solo caricamento, risposte rapide e arresto ordinato. 🙌

Domande Frequenti

La lezione «Caricare il modello una sola volta all'avvio» è gratuita?

Sì — il testo completo di «Caricare il modello una sola volta all'avvio» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso MLOps Academy, passa a CoddyKit PRO. Il corso MLOps Academy include 4 lezioni in totale.

Cosa imparerò in «Caricare il modello una sola volta all'avvio»?

Usi gli eventi del lifespan per eseguire il caricamento una sola volta. Eserciti MLOps Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare MLOps Academy?

Non è richiesta alcuna esperienza precedente. MLOps Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Caricare il modello una sola volta all'avvio»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione MLOps Academy?

Sì. Ogni lezione MLOps Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Il primo endpoint /predict
  2. Convalidare le richieste con Pydantic
  3. Caricare il modello una sola volta all'avvio
  4. Aggiungere un controllo di readiness /health
← Torna a MLOps Academy