Python programming
November 26

🧩 Как организовать MLOps, когда каждый GPU на вес золота 💎

🏗️ Инфраструктура для ML, которая работает без простоев 🔥

Научно-исследовательская лаборатория столкнулась с тем, что дорогое GPU-оборудование простаивало. Задачи занимали лишь часть ресурсов, но система резервировала всю карту — оставшаяся мощность исчезала в пустоту. Это тормозило эксперименты и снижало эффективность всего центра.

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

1️⃣ Как искали решение 🤔

Команда протестировала два способа деления ресурсов:

  • Распределение памяти и вычислительных блоков.
  • Тайм-деление: несколько задач используют карту поочередно.

Парк видеокарт был разнотипным, и нужно было выбрать вариант, который подходит всем.

2️⃣ Как построили рабочую MLOps-среду 🚀

Инфраструктура опирается на Kubernetes. Она включает:

  1. DevPod для запуска задач инженерами.
  2. Автоматизацию Ansible.
  3. Стек наблюдаемости Grafana + Loki + Prometheus.
  4. Ray для распределённых вычислений.
  5. Kyverno для политик безопасности и Keycloak для авторизации.
  6. FluxCD как GitOps-движок.

Вся архитектура построена только на открытом ПО — это требование заказчика и важное преимущество 💡.

3️⃣ Как успели в срок ⏳

Проект занял два месяца: исследования, архитектура, тестовый стенд, обучение специалистов. Команды заказчика и разработчиков работали как единая группа.

4️⃣ Что получилось 🎯

Центр теперь использует GPU эффективно, запускает расчёты параллельно и управляет доступом централизованно.

⭐ Любопытно, что в процессе работы инженеры Evrone так увлеклись тестовыми сценариями, что случайно нашли оптимизацию, о которой никто не просил — но она ускорила часть процессов центра. Такое бывает только когда команда действительно любит то, что делает.