🧩 Как организовать MLOps, когда каждый GPU на вес золота 💎
Научно-исследовательская лаборатория столкнулась с тем, что дорогое GPU-оборудование простаивало. Задачи занимали лишь часть ресурсов, но система резервировала всю карту — оставшаяся мощность исчезала в пустоту. Это тормозило эксперименты и снижало эффективность всего центра.
Проблему усугубляла ручная выдача доступов. Подразделения боролись за видеокарты, а менеджеры не видели общей картины загрузки ⚙️.
1️⃣ Как искали решение 🤔
Команда протестировала два способа деления ресурсов:
- Распределение памяти и вычислительных блоков.
- Тайм-деление: несколько задач используют карту поочередно.
Парк видеокарт был разнотипным, и нужно было выбрать вариант, который подходит всем.
2️⃣ Как построили рабочую MLOps-среду 🚀
Инфраструктура опирается на Kubernetes. Она включает:
- DevPod для запуска задач инженерами.
- Автоматизацию Ansible.
- Стек наблюдаемости Grafana + Loki + Prometheus.
- Ray для распределённых вычислений.
- Kyverno для политик безопасности и Keycloak для авторизации.
- FluxCD как GitOps-движок.
Вся архитектура построена только на открытом ПО — это требование заказчика и важное преимущество 💡.
3️⃣ Как успели в срок ⏳
Проект занял два месяца: исследования, архитектура, тестовый стенд, обучение специалистов. Команды заказчика и разработчиков работали как единая группа.
4️⃣ Что получилось 🎯
Центр теперь использует GPU эффективно, запускает расчёты параллельно и управляет доступом централизованно.
⭐ Любопытно, что в процессе работы инженеры Evrone так увлеклись тестовыми сценариями, что случайно нашли оптимизацию, о которой никто не просил — но она ускорила часть процессов центра. Такое бывает только когда команда действительно любит то, что делает.