0Pricing
MLOps Academy · Урок

Однократная загрузка модели при запуске

Используйте события lifespan, чтобы загрузка выполнялась только один раз

«Однократная загрузка модели при запуске» — бесплатный урок MLOps Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MLOps Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MLOps Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

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. 🙌

Часто задаваемые вопросы

Урок «Однократная загрузка модели при запуске» бесплатный?

Да — полный текст урока «Однократная загрузка модели при запуске» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MLOps Academy, подпишись на CoddyKit PRO. Курс MLOps Academy содержит 4 уроков всего.

Чему я научусь в уроке «Однократная загрузка модели при запуске»?

Используйте события lifespan, чтобы загрузка выполнялась только один раз Ты практикуешь MLOps Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MLOps Academy?

Предыдущий опыт не требуется. MLOps Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Однократная загрузка модели при запуске»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MLOps Academy?

Да. Каждый урок MLOps Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Первая конечная точка /predict
  2. Проверка запросов с помощью Pydantic
  3. Однократная загрузка модели при запуске
  4. Добавление проверки готовности /health
← Назад к MLOps Academy