Обслуживание рабочей модели
Загрузите подготовленную модель в сервис 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 — локальная установка не требуется.
Все уроки этого курса
- Обучение и запись в реестр
- Перевод лучшей модели в рабочую среду
- Обслуживание рабочей модели
- Трассировка полного цикла предсказания