За последние десять лет в мире машинного обучения произошёл взрывной рост. Если в 2012 году мощную модель можно было обучить на нескольких GPU, то сегодня бигтехам нужны тысячи. Вместе с железом выросла и головная боль: как дать всем ML-инженерам доступ к дефицитному ресурсу так, чтобы это не превращалось в постоянные просьбы из разряда «пожалуйста, почистите диск!!!».

Расскажу про Dev Cluster — инструмент, который создали в команде ML Platform (Yandex Infrastructure) для гибкого распределения GPU между ML-разработчиками. 

GPU сложно шерить 

Виртуалка с GPU стоит примерно в 100 раз дороже обычной CPU-машины. Раздавать каждому инженеру по собственной — экономически нерационально. Можно сделать shared-кластер, но для нас такой подход не работает.

Сначала в Яндексе стали использовать коммунальные виртуалки. Команды выделяли себе несколько общих виртуалок и «жили» в них, как в коммунальных квартирах, со всеми вытекающими последствиями. Приходилось делить свободные GPU и все другие ресурсы внутри виртуальных машин. 

Зачем нужен новый инструмент?

Основная проблема в том, что такая модель плохо масштабируется. Именно поэтому был создан Dev Cluster — Managed GPU Cluster для локальной ML-разработки. Он предоставляет контейнеры, обеспечивает шеринг GPU и позволяет бесшовно переключаться между разными конфигурациями железа или между разработкой и YTsaurus.

В Dev Cluster проще делать отладку в обычных контейнерах, но потом на больших объёмах экономически выгоднее запускать операции обучения в YTsaurus. 

Итог: удовлетворённость выросла почти в два раза

Разработку инструмента начали для решения вполне конкретной задачи. ML-инженеры жаловались на то, как им сложно и неэффективно работать с коммунальными GPU-виртуалками. 

Внутри команд провели опросы об удовлетворённости инфраструктурой до внедрения Dev Cluster и после. Ребята отметили, что разрабатывать код обучения и дебажить его стало гораздо удобнее. 

Прочитать подробнее о том, как команда ML Platform из Yandex Infrastructure создала Dev Cluster, а также как он устроен и выглядит для ML-инженера, можно по ссылке в блоге Yandex Infrastructure.