MLOps для промавтоматики
Практика управления жизненным циклом моделей машинного обучения в промышленности — от обучения до развёртывания на edge-устройствах и обновления. Включает CI/CD для моделей, мониторинг дрейфа, A/B-тестирование. Специфика: гарантированный отклик, работа без облака, промышленная безопасность.
MLOps (Machine Learning Operations) для промышленной автоматизации — инженерная дисциплина, обеспечивающая надёжную работу ML-моделей в условиях производства. Отличается от обычного MLOps жёсткими требованиями к задержкам, доступности, безопасности.
Специфика промышленности
Жёсткое реальное время
Модель должна выдавать ответ за 10-100 мс (не 1-10 сек как в веб-приложениях). Иначе ПЛК не успеет среагировать.
Edge-развёртывание
Модели работают локально на edge-устройствах (Jetson Nano, Siemens IPC, промышленных ПК). Облако — для обучения, Edge — для исполнения.
Долгий жизненный цикл
Промышленная модель может работать 5-10 лет без переобучения. В веб-разработке — переобучение раз в месяц. Нужны стратегии: когда переобучать, когда оставить как есть.
Безопасность
Модель не должна отдавать опасные команды. Нужны ограждения (guardrails) — ПЛК проверяет выходы модели на диапазон, физическую возможность.
Основные компоненты MLOps-пайплайна
1. Data Collection
- Сбор данных с ПЛК через OPC UA / Modbus
- Хранение в time-series БД (InfluxDB, TimescaleDB)
- Маркировка (labelling) событий инженерами
2. Training
- Jupyter / Databricks на облачном кластере
- Воспроизводимость — Git + DVC (Data Version Control)
- Эксперименты — MLflow, Weights & Biases
3. Deployment
- Экспорт модели в ONNX / TensorFlow Lite / PyTorch Mobile
- Деплой на edge-устройство (SCP + systemd unit, или Docker, или специализированный runtime)
- Проверка latency до запуска в прод
4. Monitoring
- Данные inference (вход, предсказание, время) пишутся обратно в БД
- Grafana-дашборды: точность, latency, uptime
- Детекция дрейфа данных (data drift) — изменение распределения входов → модель устаревает
5. Retraining
- Планово (раз в год)
- По триггеру (при обнаружении дрейфа)
- A/B-тест новой модели параллельно со старой перед переключением
Типовой стек
- Обучение: Python + PyTorch/TensorFlow + MLflow
- Хранение: Git (код) + DVC (данные) + MLflow (модели)
- Деплой: Docker + Kubernetes (для серверов) или systemd (для edge)
- Runtime: ONNX Runtime, TensorFlow Lite, OpenVINO (Intel), TensorRT (NVIDIA)
- Мониторинг: Grafana + InfluxDB + Alertmanager
Инструменты для промышленности
- AWS Panorama — edge-инференс для камер
- Azure Percept — edge AI для IoT
- NVIDIA Fleet Command — управление парком Jetson-устройств
- Siemens Industrial Edge — платформа для AI-приложений на фабрике
РУБИКОН строит MLOps-инфраструктуру для заказчиков, развёртывающих AI-модели на своих объектах.
Частые вопросы
Нужен ли MLOps для одной модели?
Для одной модели на одном объекте — можно обойтись без полноценного MLOps (но нужны хотя бы Git + мониторинг). Для парка в 10+ моделей на разных объектах — MLOps обязателен, иначе управление моделями становится неуправляемым (разные версии, непонятно что где работает, нет возможности откатить).Чем MLOps отличается от DevOps?
DevOps управляет кодом (детерминированный, тесты проходят либо нет). MLOps управляет кодом + данными + моделями (стохастические, качество измеряется метриками, не бинарно). MLOps = DevOps + Data Engineering + ML Engineering. Больше внимания воспроизводимости, версионированию данных, A/B-тестам.
Источники
- Google Cloud — MLOps: Continuous delivery and automation pipelines in ML — Google