Если модель уже обучена, следующий шаг — сделать так, чтобы ей могли пользоваться другие сервисы, фронтенд или команда аналитики. Один из самых удобных способов — завернуть 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 и продакшен-деплою.