Деплой ML-модели: REST API с FastAPI — туториал

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

fastapimlдеплой

Если модель уже обучена, следующий шаг — сделать так, чтобы ей могли пользоваться другие сервисы, фронтенд или команда аналитики. Один из самых удобных способов — завернуть ML-модель в REST API на FastAPI.

Почему FastAPI подходит для ML-деплоя

  • высокая скорость работы
  • простая валидация данных через Pydantic
  • автоматическая документация Swagger
  • удобный запуск как микросервиса
  • хорошо подходит для Docker и Kubernetes ⚙️

Что нужно для деплоя модели

Обычно достаточно:

  • сохранённой модели model.pkl или joblib
  • Python-приложения на FastAPI
  • схем входных и выходных данных
  • HTTP-эндпоинта для предсказаний

Базовая структура проекта

from fastapi import FastAPI
from pydantic import BaseModel
import joblib

app = FastAPI()
model = joblib.load("model.pkl")

class Features(BaseModel):
    feature1: float
    feature2: float
    feature3: float

@app.post("/predict")
def predict(data: Features):
    X = [[data.feature1, data.feature2, data.feature3]]
    prediction = model.predict(X)
    return {"prediction": prediction[0]}

Как это работает

  • FastAPI поднимает веб-сервер
  • клиент отправляет POST-запрос на /predict
  • данные автоматически валидируются
  • модель получает признаки
  • API возвращает результат в JSON 📦

Как запустить

uvicorn main:app --reload

После запуска открой: http://127.0.0.1:8000/docs
Там будет интерактивная документация, где можно протестировать API без Postman.

Пример запроса

{
  "feature1": 5.1,
  "feature2": 3.5,
  "feature3": 1.4
}

Что важно учесть в продакшене

  • загружайте модель один раз при старте приложения, а не на каждый запрос
  • проверяйте порядок и типы признаков
  • добавляйте логирование ошибок
  • используйте версионирование API
  • защищайте сервис через auth, если API не публичный 🔐
  • контейнеризируйте приложение через Docker

Частые ошибки при деплое ML-модели

  • модель обучалась на одном наборе фич, а в API приходит другой
  • не учтён препроцессинг: scaler, encoder, feature engineering
  • возвращаются типы NumPy, которые плохо сериализуются в JSON
  • нет health-check эндпоинта для мониторинга 🩺

Что добавить кроме `/predict`

Полезные эндпоинты:

  • /health — проверка доступности сервиса
  • /version — версия модели и API
  • /metrics — метрики для мониторинга

Итог

FastAPI — практичный выбор для деплоя ML-модели как REST API. Он быстро запускается, даёт удобную документацию и помогает превратить ноутбук с моделью в полноценный сервис для интеграции в продукт 💡

Подборку полезных каналов про IT стоит посмотреть — там регулярно публикуют практику по ML, backend и продакшен-деплою.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же