# MLflow Models

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

## Цель

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

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

- [MLflow Projects](mlflow-projects.md)

## Время

**2–3 ч**

---

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

**MLflow Models** — стандарт **упаковки** модели для деплоя: один интерфейс `predict()` независимо от фреймворка.

## MLmodel файл

```yaml
artifact_path: model
flavors:
  sklearn:
    sklearn_version: 1.3.0
    pickled_model: model.pkl
  python_function:
    loader_module: mlflow.sklearn
```

## Сохранение

```python
mlflow.sklearn.log_model(model, "model", registered_model_name="FraudClassifier")
mlflow.pytorch.log_model(model, "model")
```

## Flavors

| Flavor | Назначение |
|--------|------------|
| `sklearn`, `pytorch`, `tensorflow` | Native serialization |
| `python_function` | Универсальный pyfunc для serving |
| `transformers` | Hugging Face |

## Загрузка и predict

```python
loaded = mlflow.pyfunc.load_model("runs:/<run_id>/model")
preds = loaded.predict(df)
```

## Custom pyfunc

Для собственного препроцессинга оберните модель в класс `PythonModel` — единый pipeline train/serve.

## Deployment targets

```bash
mlflow models serve -m runs:/abc/model -p 8080
mlflow models build-docker -m models:/Fraud/1 -n fraud-serving
```

## Версионирование зависимостей

`conda.yaml` или `requirements.txt` внутри model artifact — критично для совпадения версий библиотек.

---

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

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

---

## Дальше

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