MLOps Path

7.1.1 · блок 7

Паттерны inference

Паттерны inference

Зачем это нужно

«Задеплоить модель» — не одна операция. Inference может быть синхронным REST, асинхронной очередью, batch job, edge on-device, streaming. Паттерн inference определяет latency, стоимость, сложность ops и выбор runtime (MLServer, Triton, vLLM — модули 7.2–7.6).

Начинающий MLE должен уметь сопоставить продуктовое требование («ответ за 100 ms») с архитектурой — до выбора Helm chart.

Основные идеи

Online (real-time) inference.

Batch inference.

Async inference.

Streaming inference.

Edge / on-device.

Multi-model и routing.

Preprocessing placement.

| Вариант | Плюсы | Минусы |

|---------|-------|--------|

| In runtime (MLServer code) | Один контейнер | Coupling DS code |

| Sidecar transformer | Separation | Extra latency hop |

| Upstream feature service | Reuse | Network call |

| Embedded in client | Lowest latency | Version drift |

Cold start vs warm pool.

Sync pattern diagram (типичный MDP):


Client → Ingress/Istio → KServe InferenceService → MLServer/Triton Pod
                              ↑
                    Feature lookup (Feast/Redis) optional in same Pod or sidecar

Как это выглядит на практике

Churn scoring (online). REST POST /v1/models/churn:predict, JSON features or entity_id only. p95 200 ms → MLServer + preloaded LightGBM, 2 replicas, HPA on CPU/RPS.

Recommendation refresh (batch). Nightly Spark: 10M users × 500 candidates → top-20 list to Redis. Mobile app reads cache — не ML inference per request.

LLM chatbot (online). OpenAI-compatible API, vLLM, GPU node pool, p95 2s acceptable, streaming tokens to client (SSE).

Выбор паттерна — checklist:

1. User waits for response? → online vs batch.

2. Peak RPS и burst factor?

3. Model size / GPU need?

4. Input size (text length, image MB)?

5. Regulatory logging of each prediction?

Что сделать после занятия

Официальные материалы

Открыть интерактивную версию