Развернули MLOps-среду для управления GPU-ресурсами для НИИ
К нам обратился научный центр с задачей оптимизировать использование GPU-ресурсов. Их оборудование простаивало из-за неравномерного использования мощностей и оборудования для вычислений. Мы построили инфраструктуру на базе Kubernetes и открытого ПО, которая позволяет делить ресурсы между задачами и управлять доступом централизованно. Теперь инженеры запускают вычисления параллельно, а компания использует парк оборудования эффективно.
Наш клиент — это научно-исследовательская лаборатория, которая занимается вычислениями, машинным обучением и нейросетями. У компании есть собственный парк оборудования с профессиональными видеокартами, каждая из которых стоит миллионы рублей и открывает возможности для запуска сложных моделей и экспериментов. Инженеры и учёные из RElab используют эти ресурсы для задач в области криптографии, анализа данных, искусственного интеллекта и машинного обучения.
При таком масштабе ресурсов и направлений оборудование должно использоваться максимально эффективно. Однако на практике большинство вычислений, которые запускались нашим клиентом, нагружали лишь часть мощности видеокарт. Но система резервировала карту целиком, из-за чего оставшаяся часть мощности простаивала. Получалось, что дорогостоящее железо значительную часть времени не приносило пользы.
К этому добавилась и другая проблема: организация доступа. В центре работают разные подразделения, и каждому нужны вычислительные мощности. Без единой системы планирования распределение ресурсов превращалось в ручной процесс. Менеджерам приходилось буквально раздавать карты вручную, и при этом невозможно было увидеть полную картину использования.
Именно с этими вызовами клиент пришёл к Evrone. Им требовалась инфраструктура, которая позволила бы распределять ресурсы GPU между задачами и пользователями, чтобы убрать простой и сделать процесс прозрачным. Но были ограничения: использовать только собственное оборудование, работать в условиях повышенных требований к безопасности и строить решение на базе открытого ПО.
Поиск подхода
Мы начали с исследования. Нужно было проверить, какие инструменты подойдут для нарезки видеокарт на части и для управления задачами. В распоряжении лаборатории находились карты разных типов, и не все они поддерживали одинаковые механизмы деления ресурсов. Мы тестировали два основных подхода.
Первый — разделение по ресурсам. Например, выделить два ядра и несколько гигабайт памяти для одной задачи, а оставшиеся мощности отдать другой. Второй — тайм-слоты: несколько задач поочередно используют всю карту, но только в рамках заданного интервала времени. Мы проверяли разные сценарии и искали оптимальное решение для конкретного парка оборудования клиента.
Решение
В основе архитектуры мы использовали Kubernetes. Мы развернули кластер и подключили к нему видеокарты. Затем настроили инструменты, которые позволяют инженерам запускать задачи, не задумываясь о ручном распределении ресурсов. Теперь можно делить карту на несколько частей и параллельно отдавать их разным пользователям или задачам. Это существенно повысило коэффициент использования дорогих GPU.
Чтобы MLOps платформа работала устойчиво и была удобна в эксплуатации, мы подключили целый набор инструментов. Ansible помог автоматизировать всю настройку инфраструктуры, инженерам достаточно ввести свои параметры и запустить процесс. DevPod стал ключевым инструментом для выдачи доступа к видеокартам, который позволяет запускать локальный код внутри Kubernetes. За наблюдаемость отвечает стек Prometheus, Vector, Loki и Grafana: с его помощью команда отслеживает нагрузку и оперативно разбирает ошибки. Для распределенных вычислений мы внедрили Ray.io, который позволяет легко масштабировать Python-приложения от одного компьютера до целого кластера.
Мы уделили особое внимание безопасности. Политики в кластере управляются через Kyverno, а для единой авторизации мы настроили Keycloak, что обеспечивает вход в Kubernetes, Grafana, Ray.io и другие сервисы. Весь процесс настроен и автоматизирован на базе FluxCD, по принципам GitOps.
Вся система построена на открытом ПО. Мы избегали закрытых решений и привязки к конкретным вендорам, чтобы клиент мог свободно развивать свою AI-платформу в будущем. Любой инструмент можно заменить, а для работы с инфраструктурой достаточно специалистов среднего уровня, которых легко найти на рынке. Мы применили GitOps-подход для автоматизации развертывания и сделали все процессы максимально прозрачными и управляемыми.
По мере развития наших проектов в сфере заказной разработки ПО мы всё активнее работаем с технологиями машинного обучения. Итоги данной инициативы позволят нам выработать системный подход к таким задачам и заметно расширить свои возможности.
Сроки и организация работы
На проект по настройке MLOps процессов у нас было всего два месяца. За это время нужно было провести исследование, выбрать инструменты, выстроить архитектуру, собрать тестовый стенд и перенести все в продуктив. Параллельно мы писали документацию и обучали специалистов Relab. В итоге команда клиента смогла самостоятельно развернуть инфраструктуру в своей защищенной среде и сейчас активно ее использует.
В этом проекте в роли serving‑слоя использовали Ray Serve (экосистема Ray) — он удобен для масштабируемого онлайнового инференса и управления несколькими моделями. При этом наша платформа не завязана на конкретный inference‑сервер: мы решали инфраструктурную часть, а именно шаринг/“нарезку” GPU в Kubernetes (через MIG и/или time‑slicing в зависимости от железа и требований), чтобы можно было безопасно и эффективно делить одну GPU‑ферму между разными командами и проектами.
Команда разработчиков Evrone была плотно интегрирована в клиентскую. Инженеры заказчика помогали тестировать решения на своем оборудовании, предоставляли обратную связь по нагрузке и особенностям работы с железом. Такой формат позволил быстро проверять гипотезы и корректировать подходы по мере необходимости. Мы фактически работали одной командой, наша экспертиза в инфраструктуре и инструментах дополнялась глубоким знанием клиентом своих задач и требований к безопасности. Благодаря этому проект шел без задержек, несмотря на ограниченные сроки и бюджет.
Итоги
Теперь исследовательский центр использует свои видеокарты гораздо эффективнее. Инженеры могут запускать задачи параллельно, а менеджеры распределяют ресурсы между подразделениями централизованно. Все это работает на базе открытых инструментов, не требует сложной поддержки и остается гибким для будущего развития.
Проект показал, что даже сложные инфраструктурные задачи можно решать быстро, если грамотно организовать процессы и использовать проверенные практики. Хотите наладить работу с GPU-ресурсами или построить масштабируемую инфраструктуру для машинного обучения? Обратитесь к Evrone, мы поможем спроектировать решение на базе открытого ПО и настроим его так, чтобы оно работало эффективно именно для ваших задач.

