За последние десять лет в мире машинного обучения произошёл взрывной рост. Если в 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.
