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 asynccontextmanagerStash 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")
yieldWire 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.modelClean 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 = NoneFaster 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
- Votre premier point de terminaison /predict
- Valider les requêtes avec Pydantic
- Charger le modèle une seule fois au démarrage
- Ajouter une vérification de disponibilité /health