0Pricing
MLOps Academy · Leçon

Charger le modèle une seule fois au démarrage

Utilisez les événements de durée de vie pour que le chargement n’ait lieu qu’une fois.

Charger le modèle une seule fois au démarrage est une leçon MLOps Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage MLOps Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours MLOps Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

The Slow-Endpoint Trap

If you call joblib.load inside /predict, the model reloads on every request. That is slow and wasteful for large models. 🐢

Load It Just Once

The fix: load the model a single time when the service starts, keep it in memory, and reuse it for every prediction.

The Lifespan Hook

FastAPI gives you a lifespan function to run setup before serving and cleanup after. It is the right home for model loading.

Write an Async Context Manager

You decorate an async function with asynccontextmanager. Code before yield runs at startup; code after runs at shutdown.

from contextlib import asynccontextmanager

Stash the Model in State

Load the model at startup and save it on app.state, a shared place every request handler can reach later.

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

Wire It to the App

Pass your lifespan function when you create the app. Now FastAPI runs your loading code once as the server boots.

app = FastAPI(lifespan=lifespan)

Read It in the Route

Inside /predict you grab the already-loaded model from app.state. No disk read, just a fast in-memory lookup.

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

Clean Up at Shutdown

Anything after the yield runs when the app stops, perfect for closing files or freeing GPU memory the model held.

    yield
    app.state.model = None

Faster First Request

Because loading finished at startup, even the very first user gets a fast response, not a cold-load penalty. ⚡

Watch the Worker Count

Each uvicorn worker is its own process with its own copy of the model. More workers means more memory, so size them deliberately.

Why It Matters

Loading once is a core serving optimization: it cuts latency, lowers disk I/O, and keeps memory predictable under real traffic. 📈

Quick Check

You want your model loaded exactly once when the service boots. Where should that happen?

Recap

You moved loading into a lifespan hook, stored the model on app.state, and read it per request. One load, fast responses, clean shutdown. 🙌

Questions Fréquemment Posées

La leçon « Charger le modèle une seule fois au démarrage » est-elle gratuite ?

Oui — le texte complet de « Charger le modèle une seule fois au démarrage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours MLOps Academy, passe à CoddyKit PRO. Le cours MLOps Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Charger le modèle une seule fois au démarrage » ?

Utilisez les événements de durée de vie pour que le chargement n’ait lieu qu’une fois. Tu pratiques MLOps Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer MLOps Academy ?

Aucune expérience préalable n'est requise. MLOps Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Charger le modèle une seule fois au démarrage » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon MLOps Academy ?

Oui. Chaque leçon MLOps Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Votre premier point de terminaison /predict
  2. Valider les requêtes avec Pydantic
  3. Charger le modèle une seule fois au démarrage
  4. Ajouter une vérification de disponibilité /health
← Retour à MLOps Academy