0Pricing
MLOps Academy · Урок

Обслуживание рабочей модели

Загрузите подготовленную модель в сервис FastAPI

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

От реестра к API

Продвинутая модель находится в реестре. Теперь загрузите её в службу FastAPI, чтобы реальные запросы могли получать предсказания. 🌐

Ссылка по псевдониму

Создайте URI модели, указывающий на псевдоним champion. Код не содержит жёстко заданный номер версии, поэтому продвижение работает автоматически.

MODEL_URI = "models:/churn-classifier@champion"

Загрузка модели

Используйте mlflow.pyfunc.load_model, чтобы загрузить рабочую модель в память в виде вызываемого объекта Python.

import mlflow.pyfunc

model = mlflow.pyfunc.load_model(MODEL_URI)

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

Загрузка занимает время, поэтому выполните её один раз при запуске приложения, а не для каждого запроса. Используйте обработчик lifespan FastAPI, чтобы загрузить модель до поступления запросов.

from contextlib import asynccontextmanager

@asynccontextmanager
async def lifespan(app):
    app.state.model = mlflow.pyfunc.load_model(MODEL_URI)
    yield

Создание приложения

Подключите обработчик lifespan к экземпляру FastAPI. С этого момента загруженная модель хранится в app.state и используется всеми запросами.

from fastapi import FastAPI

app = FastAPI(lifespan=lifespan)

Проверка входных данных

Определите модель Pydantic для тела запроса, чтобы некорректные входные данные отклонялись ещё до обращения к модели.

from pydantic import BaseModel

class Features(BaseModel):
    tenure: int
    monthly_charges: float

Создание конечной точки предсказания

Преобразуйте проверенные входные данные в строку и вызовите модель. Метод predict возвращает предсказание, которое вы отправляете обратно в формате JSON.

@app.post("/predict")
def predict(f: Features):
    pred = app.state.model.predict([[f.tenure, f.monthly_charges]])
    return {"prediction": int(pred[0])}

Добавление проверки работоспособности

Небольшой маршрут /health сообщает средствам оркестрации, что служба работает и модель завершила загрузку, прежде чем они направят трафик.

@app.get("/health")
def health():
    return {"status": "ok"}

Запуск сервера

Запустите сервер с помощью uvicorn, и модель станет доступна по HTTP. Теперь любой клиент, способный отправлять JSON методом POST, сможет получать предсказания.

uvicorn serve:app --host 0.0.0.0 --port 8000

Быстрая проверка

Почему модель следует загружать в обработчике lifespan, а не внутри функции predict?

Обновление рабочей модели

Чтобы выпустить новую модель, переназначьте псевдоним champion и перезапустите службу. При запуске она автоматически загрузит новую версию.

Одна и та же модель везде

Поскольку служба загружает модель из реестра, разработка, тестовая и рабочая среды могут использовать один и тот же artifact по псевдониму. Копировать веса вручную не нужно.

Итоги: обслуживание рабочей модели

Вы загрузили champion при запуске, проверили входные данные, открыли /predict и /health и запустили службу с помощью uvicorn. Теперь ваша модель — работающая service. ✅

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

Урок «Обслуживание рабочей модели» бесплатный?

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

Чему я научусь в уроке «Обслуживание рабочей модели»?

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

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

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

Сколько времени занимает урок «Обслуживание рабочей модели»?

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

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

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

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

  1. Обучение и запись в реестр
  2. Перевод лучшей модели в рабочую среду
  3. Обслуживание рабочей модели
  4. Трассировка полного цикла предсказания
← Назад к MLOps Academy