1 of 22

Технологии ML

для обработки Big Data

Лекция 10

2 of 22

  1. Технические вызовы ML на больших данных

1) Масштабируемость обучения и применения моделей

2) Качество данных и согласованность источников

3) Управление версиями и обновлением моделей

4) Баланс между точностью и вычислительными затратами

5) Этические аспекты и смещения (bias)

3 of 22

1) Масштабируемость обучения и применения моделей

  1. Когда объем обучающих данных превышает возможности одного сервера, обучение приходится распределять между несколькими вычислительными узлами
  2. Каждый узел обрабатывает свою часть данных и вычисляет градиенты
  3. Затем эти значения синхронизируются между всеми узлами.
  4. Применение модели к новым данным (на этапе эксплуатации) называется инференсом.
  5. Фреймворки: TensorFlow Distributed, PyTorch DDP, Horovod или Spark MLlib

4 of 22

2) Качество данных и согласованность источников

  1. Качество данных напрямую определяет качество модели
  2. “Garbage in — garbage out”

Подготовка:

  • очистка (удаление или исправление некорректных записей);
  • нормализация (приведение значений к общим масштабам и единицам);
  • выравнивание схем (приведение столбцов и типов данных из разных источников к единому формату);
  • проверка полноты и актуальности.

Data-Centric AI

5 of 22

3) Управление версиями и обновлением моделей

Основные причины деградации моделей:

  • смена распределения данных (data drift) - изменяются сами входные данные, например, возраст покупателей или структура транзакций;
  • изменение зависимостей (concept drift) - то, как входные данные связаны с результатом, перестает быть прежним;
  • технические факторы - обновление систем, форматов данных или API.

Чтобы модели оставались актуальными:

  • мониторинг моделей - автоматическая проверка качества предсказаний на свежих данных;
  • инкрементальное обучение - постепенное обновление модели при поступлении новых данных, без переобучения “с нуля”;
  • управление версиями (Model Versioning) и каталоги моделей (Model Registry) — хранение, проверка и контроль разных версий модели.

6 of 22

4) Баланс между точностью и вычислительными затратами

Более простая, легкая модель:

  • быстрее обучается,
  • дешевле запускается в эксплуатации,
  • проще обновляется.

В промышленной практике часто выбирают “достаточно хорошую” модель - то есть такую, что удовлетворяет требованиям бизнеса, а не максимизирует метрики.

7 of 22

5) Этические аспекты и смещения (bias)

Ключевые понятия:

  • Справедливость (fairness) - модель должна одинаково работать для всех групп пользователей.
  • Прозрачность (transparency) - должно быть понятно, как и почему модель приняла то или иное решение.
  • Смещение (bias) - систематическая ошибка, приводящая к несправедливым результатам.

Методы коррекции смещений:

  • балансировка данных (равное представление групп),
  • исключение чувствительных признаков (например, пола или возраста),
  • использование алгоритмов, контролирующих метрики справедливости,
  • объяснимое ИИ (Explainable AI): методы LIME, SHAP, которые позволяют увидеть, какие признаки влияют на решение модели.

8 of 22

2. Архитектуры и шаблоны для ML в больших данных

1) Комбинация пакетной обработки и потоковой обработки

2) Разделение данных и разделение модели

3) Компиляция и оптимизация вычислений

4) Платформы и экосистемы

9 of 22

1) Комбинация пакетной обработки и потоковой обработки

batch (пакетная) обработка

данные накапливаются и обрабатываются периодически

когда задержка в получении результата допустима (например, отчет по продажам за день)

streaming (потоковая) обработка

данные обрабатываются по мере поступления, в реальном или почти реальном времени

Когда модель развернута и работает в реальной среде, новые данные поступают непрерывно, и система должна реагировать быстро

Этап обучения: формируется большой пакет данных → модель обучается → сохраняется.

Этап вывода (inference): новые данные поступают как поток → модель предсказывает почти в реальном времени → приложение/сервис реагирует.

10 of 22

2) Разделение данных и разделение модели

Разделение данных (data parallelism)

  • Данные разбиваются на части и распределяются между узлами
  • Каждая копия модели работает на своей части данных, вычисляет собственные градиенты, затем результаты синхронизируются.
  • Подходит, когда модель помещается в память одного узла, но данных очень много.

Разделение модели (model parallelism)

  • Модель делится на части (например, слои нейронной сети) и разные узлы обрабатывают разные части модели.
  • Применимо, когда сама модель слишком велика для одного устройства

11 of 22

3) Компиляция и оптимизация вычислений

Пример: проект Apache SystemML (и аналогичные) превращает ML-алгоритмы в распределенные задачи на основании данных и особенностей кластера.

Это позволяет автоматически подбирать стратегию распределения, параллелизма и использования ресурсов.

Инженеры не пишут вручную все детали распределенной обработки - система сама адаптирует модель под инфраструктуру.

12 of 22

4) Платформы и экосистемы

  • Spark MLlib, интегрированная с экосистемой Apache Spark.
  • Подход co-located (совместное размещение) (обучение и инференс моделей происходит там, где находятся данные)
  • AutoML и мета-обучение - инструменты, которые автоматически подбирают модели и гиперпараметры.
  • Инструменты для MLOps (операционализация ML) - например, MLflow, Kubeflow, TensorFlow Extended (TFX) - помогают управлять версиями моделей, их развертыванием и мониторингом.

13 of 22

3. Как выбирают технологии под задачи?

  • какие данные используются
  • насколько быстро нужно получать результаты,
  • какие ресурсы есть,
  • как часто обновляются данные

14 of 22

1) Объем и частота обновления

Малые наборы данных (до нескольких гигабайт)

scikit-learn (базовые алгоритмы (линейная/ логистическая регрессия, деревья решений, SVM и др.);

XGBoost, LightGBM (оптимизированные бустинговые модели);

pandas, numpy (для обработки и анализа).

Средние наборы данных (десятки-сотни гигабайт)

Apache Spark MLlib (библиотека Spark, обрабатывает данные в распределённой памяти (RDD, DataFrame).

Dask, Ray, Polars (современные альтернативы для распределенной обработки на Python).

Databricks ML (промышленная среда, сочетающая Spark и MLOps).

Огромные наборы данных (терабайты и выше)

TensorFlow Distributed, PyTorch Distributed (обучают модели на кластере узлов).

Horovod (Uber) (фреймворк для параллельного обучения).

Kubernetes + MLflow/Kubeflow (для оркестрации и мониторинга).

15 of 22

2) Требования к скорости отклика (latency)

Онлайн-предсказания (real-time inference)

Пример: рекомендации Netflix, детекция мошенничества, персонализированные объявления.

Требуются модели с малым временем отклика, часто в формате distilled models (облегчённые версии крупных нейросетей) или quantized models (модели с пониженной точностью весов, но быстрой работой).

Используются TensorRT (NVIDIA), ONNX Runtime, FastAPI/Flask-сервисы для развертывания.

Batch-предсказания (offline inference)

Пример: прогноз спроса на неделю или сегментация клиентов.

Можно использовать более тяжёлые модели, так как задержка не критична.

16 of 22

3) Интерпретируемость и объяснимость моделей

В некоторых областях объяснимость важнее точности:

  • простые и прозрачные модели: линейная/логистическая регрессия, деревья решений;
  • интерпретаторы сложных моделей: SHAP, LIME, ELI5 - инструменты, объясняющие, почему модель приняла то или иное решение.

17 of 22

4. Пример: Netflix

  • Обрабатывает более триллиона событий в день: просмотры, оценки, поведение пользователей.
  • Архитектура: Spark + Flink (batch и streaming), MLflow, Kubernetes.
  • Модели формируют персональные рекомендации, оптимизируют обложки фильмов и сетку контента.
  • Команды data engineers обеспечивают поток данных, а ML engineers разворачивают модели на платформе, где их можно мониторить и обновлять.

18 of 22

4. Пример: Spotify

  • Использует гибридную архитектуру Spark + TensorFlow Extended (TFX).
  • Рекомендации строятся на комбинации batch-данных (история прослушиваний) и потоковых событий (что слушается прямо сейчас).

19 of 22

4. Пример: Uber

  • Использует собственную платформу Michelangelo, объединяющую хранение данных, обучение моделей и real-time-предсказания.
  • Ее модель применяется для динамического ценообразования, ETA-прогнозов и предотвращения отмен заказов.

20 of 22

5. Лучшие практики

  1. Начинайте с простых решений.
  2. Выбирайте инструменты под задачу.
    1. scikit-learn - для прототипов,
    2. Spark - для больших данных,
    3. TensorFlow/PyTorch - для глубоких моделей.
  3. Учитывайте требования по масштабу, скорости и бюджету.

21 of 22

5. Лучшие практики

  1. Смотрите на ML как на цикл, а не одноразовую задачу:
    1. обучить (train)
    2. развернуть (deploy)
    3. отслеживать (monitor)
    4. переобучать (retrain).
  2. Контролируйте качество данных и автоматизацию (MLOps-инструментов (MLflow, DVC, TFX)).
  3. Не забывайте об этике и устойчивости (Fairlearn или AI Fairness 360 (IBM)).

22 of 22

Технологии ML

для обработки Big Data

Лекция 10