Разработка GPU-инфраструктуры
Язык буткемпа: C++, Go, Python
Внутреннее облако Яндекса состоит из более чем десяти тысяч GPU-устройств, которые используются в задачах инференса (показ рекламы, машинный перевод, прогнозирование погоды), а также для обучения моделей (например, GPT-модели Яндекса). Мы подготавливаем GPU-устройства для выдачи контейнерам, предоставляем метрики утилизации, виртуализируем CUDA-окружение для контейнеров инференса. Помимо этого, сервисы GPU-инфраструктуры настраивают, мониторят и предоставляют RDMA-сеть в кластерах распределенного обучения. У нас три суперкомпьютера в мировом топ-500.
Стек
C++, Go, Python 3 | Основные языки. Необязательно все, хотя бы один, остальные можно освоить на месте |
---|
Ожидаем, что кандидат хорошо понимает архитектуру ядра Linux, знаком с базовыми принципами контейнеризации, знаком с основными аспектами работы TCP/IP стека, знаком или хочет разобраться с распределенными технологиями в HPC- и ML-сферах (CUDA, RDMA, фреймворки коммуникаций в параллельных вычислениях — MPI/NCCL/UCC/др.).
Команда
Распределенная (Москва, Нижний Новгород) команда из системных разработчиков, разбирающихся в параллельных вычислениях.
Особенности
- Уникальные масштабы: мы настраиваем и мониторим передовой аппаратный стек, состоящий из высокоскоростной InfiniBand-сети и тысяч GPU-устройств.
- Уникальный опыт: мало где представится возможность погрузиться в то, как учатся модели с миллиардами параметров на самых больших кластерах в СНГ.
- У нас можно предлагать идеи по профилировке и улучшению производительности текущего аппаратного и программного стека, разбираться и улучшать реализации фреймворков распределенного машинного обучения с открытым исходным кодом.
- Спектр задач на любой уровень подготовки, возможность роста, возможность принимать решения, влияющие на работу всех сервисов и инженеров Яндекса, которые обучают или используют модели на GPU.
Что нужно принять во внимание
- Мы ценим умение самостоятельно решать задачи сложнее твоего уровня, но не оставляем с ними один на один.
- Как и у многих других инфраструктурных команд, у нас есть дежурства. Инженеры дежурят примерно неделю в месяц. В дневное время дежурство предполагает разбор накопившихся жалоб, помощь пользователям в настройке их окружения, в ночное — разбор серьёзных проблем, которые требуют незамедлительной реакции, чтобы дорогое аппаратное обеспечение не простаивало, а сервисы могли продолжать работу. Однако, проблемы у нас случаются редко, мы часто и аккуратно деплоим наш код в продакшен.
Вызовы
- Исследование и внедрение новых методов поиска проблем в high-bandwidth RDMA-сети и GPU-устройствах, которые время от времени отказывают.
- Исследование оптимального набора программных компонентов, который может быть предоставлен пользователям в виде инфраструктуры для просты деплоя моделей и запуска больших и не очень обучений.
- Внедрение новых типов RDMA-сетей (к примеру, RoCE) и построение новых кластеров с большим количеством GPU-устройств, чем мы имеем сейчас, что найдём новые челленджи на нашем пути.