# Model Serving

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Понять назначение, устройство и практику использования компонента **Model Serving** в MLflow.

## Предварительно

- [Model Registry](model-registry.md)

## Время

**2–3 ч**

---

## Назначение

**Model Serving** — отдача предсказаний через REST API или batch job из упакованной MLflow модели.

## Встроенный сервер

```bash
mlflow models serve -m models:/MyModel/Production -h 0.0.0.0 -p 8080 --env-manager local
```

Запрос (учебный):

```bash
curl -X POST http://127.0.0.1:8080/invocations \
  -H "Content-Type: application/json" \
  -d '{"dataframe_split": {"columns": ["a","b"], "data": [[1,2]]}}'
```

## Docker

```bash
mlflow models build-docker -m models:/MyModel/1 -n my-model
docker run -p 8080:8080 my-model
```

## Production alternatives

| Решение | Когда |
|---------|-------|
| MLflow serve | Dev, MVP, низкий трафик |
| KServe / Seldon | K8s, autoscaling, canary |
| Triton | GPU, multi-framework |
| Cloud managed | SageMaker, Vertex endpoints |

## Производительность

- Batch inference через Spark `mlflow.pyfunc.spark_udf`
- Оптимизация: ONNX, quantization (отдельный pipeline)
- Warmup instances при cold start на serverless

## Контракт API

Документируйте input schema (JSON columns, types). Версионируйте при breaking changes.

## Безопасность

- Auth на endpoint (API key через gateway)
- Rate limiting
- Не возвращайте сырые внутренние features клиенту

---

## Самопроверка

1. Кратко опишите роль «Model Serving» в MLflow.
2. Назовите типичную ошибку при работе с этим компонентом.
3. Как этот компонент связан с соседними?

---

## Дальше

→ [Tracking Client SDK](tracking-client.md)
