Инфраструктура и управление для ML

Под всеми пайплайнами и сервисами лежит инфраструктура, а над ними — правила управления и контроля.

Инфраструктура для ML — облачные/кластерные ресурсы (CPU/GPU, хранилища, k8s) под обучение и сервинг; governance — правила доступа, аудита и воспроизводимости моделей и данных.

Почему ML-инфраструктура особенная

ML нагружает инфраструктуру нетипично: обучение требует мощных, но временных ресурсов (GPU на часы), а сервинг — стабильных и масштабируемых. Хранилища велики (датасеты, артефакты). Поэтому ML почти всегда живёт в облаке и/или Kubernetes, где ресурсы выделяются эластично и оплачиваются по факту.

Kubernetes как фундамент

K8s даёт единый слой: контейнеры для обучения и сервинга, автоскейлинг (HPA из урока о масштабировании), управление GPU, изоляцию, перезапуск упавших подов. Поверх него ложатся Kubeflow (пайплайны), KServe/Seldon (сервинг). Если вы знаете k8s из соответствующего курса — это та же платформа, на которую MLOps опирается как на ОС для ML.

+-----------------------------------------------+
|              Kubernetes (кластер)             |
|  +-----------+  +-----------+  +-----------+   |
|  | обучение  |  |  сервинг  |  | пайплайны |   |
|  | (GPU-под) |  | (реплики) |  | (Kubeflow)|   |
|  +-----------+  +-----------+  +-----------+   |
+-----------------------------------------------+
        облако: вычисления + хранилища + сеть

GPU и эластичность

GPU дороги, поэтому их выделяют под задачу и освобождают. Облако позволяет брать spot/preemptible-инстансы для обучения (дёшево, но могут отобрать) и держать стабильные ноды под сервинг. Запросы ресурсов описывают декларативно — сколько CPU/память/GPU нужно поду.

Infrastructure as Code

Инфраструктуру описывают кодом (Terraform, манифесты k8s), а не кликами в консоли. Это даёт воспроизводимость окружения (часть lineage), ревью изменений и быстрый разворот «с нуля». Без IaC «как настроен прод» живёт в чьей-то голове.

resources:
  requests:
    cpu: "2"
    memory: "4Gi"
    nvidia.com/gpu: "1"
  limits:
    nvidia.com/gpu: "1"

Governance: управление и контроль

Когда моделей много и они принимают важные решения, нужны правила:

  • Доступ. Кто может обучать, регистрировать, выкатывать модель (роли, RBAC).
  • Аудит. Кто и когда повысил версию в Production — журнал переходов в реестре.
  • Воспроизводимость и lineage. Для любой прод-модели восстановим путь до данных и кода.
  • Соответствие. Приватность данных (152-ФЗ, GDPR), документирование моделей (model cards), право на объяснение.

152-ФЗ и расположение данных

Для российских пользователей персональные данные должны храниться и обрабатываться на серверах в РФ. Это прямое требование к инфраструктуре MLOps: обучение и хранение персональных данных размещают в российском облаке/ЦОД, а логи инференса с PII маскируют. Governance — это не бюрократия, а защита от штрафов и инцидентов.

Как работает под капотом

Облачный провайдер даёт API на ресурсы; Kubernetes абстрагирует их в поды, сервисы и тома. Контроллеры k8s держат заявленное состояние (нужно 3 реплики — поддерживает 3), а планировщик распределяет поды по нодам с учётом запросов на GPU/память. Governance реализуется как слой политик: RBAC ограничивает действия, реестр ведёт аудит переходов, IaC и трекинг обеспечивают lineage. Вместе это превращает «кучу скриптов на GPU» в управляемую платформу.

Частые ошибки

  • Настраивать прод руками (без IaC). Невоспроизводимо и не ревьюится.
  • Держать GPU занятым простаивая. Не освобождать ускорители после обучения — прямые потери денег.
  • Отсутствие RBAC. Любой может выкатить модель в прод — путь к инцидентам.
  • Игнорировать локализацию данных. Нарушение 152-ФЗ/GDPR грозит штрафами.

Итог

  • ML живёт в облаке и Kubernetes: эластичные GPU под обучение, масштабируемые реплики под сервинг.
  • Инфраструктуру описывают кодом (IaC) ради воспроизводимости, ревью и быстрого разворота.
  • Governance (доступ, аудит, lineage, локализация данных) превращает набор скриптов в управляемую, соответствующую закону платформу.
Проверьте себя
1. Почему ML-инфраструктура почти всегда облачная/кластерная?
AТак модно
BОбучение требует мощных временных GPU, а сервинг — масштабируемых ресурсов; облако/k8s дают эластичность
CЛокально ML не работает совсем
DЭто требование Python
2. Что даёт описание инфраструктуры как кода (IaC)?
AУскоряет инференс
BВоспроизводимость окружения, ревью изменений и быстрый разворот с нуля
CУменьшает размер модели
DЗаменяет мониторинг
3. Что из перечисленного относится к governance в MLOps?
AРазмер батча
BУправление доступом (RBAC), аудит переходов версий и локализация персональных данных
CСкорость GPU
DВыбор языка программирования