Вам интересно создавать распределённые системы, которые сами обнаруживают ошибки и исправляют их? Работать с передовыми технологиями обучения ML-моделей? Яндекс запускает большую часть обучений в опенсорсной платформе YTsaurus (github), и в отделе YTsaurus (около 70 разработчиков) мы создали команду ML-инфраструктуры, чтобы повышать надёжность и эффективность обучений.
YTsaurus — ключевая часть инфраструктуры Яндекса, платформа для хранения данных и запуска распределённых вычислений. YTsaurus позволяет работать с табличными данными и запускать вычисления — как с помощью парадигмы MapReduce, так и с использованием интерфейсов Spark, ClickHouse, YQL. Кроме того, ML-разработчики всего Яндекса используют нашу платформу для запуска распределённых обучений, и в этих сценариях работа с YTsaurus сильно отличается от привычных сценариев распределённых вычислений. Вместо тысяч коротких джобов на CPU в ML-сценариях запускаются вычисления, выполняющиеся на GPU, которые могут длиться несколько дней или даже недель.
ML-инфраструктура — одно из приоритетных направлений в Яндексе. Мы продолжаем развивать YTsaurus, чтобы работа с ML-сценариями становилась всё удобнее и эффективнее для разработчиков. Для решения этих задач мы ищем сильного инженера, готового разбираться в сложной предметной области и строить удобную инфраструктуру для широкого круга пользователей. Нам нужны те, кто принесёт свежие идеи из смежных областей и реализует их. Мы ценим изобретательность, энтузиазм и умение работать в команде. Наши разработчики сразу видят результат своей работы, потому что большая часть Яндекса пользуется разработанными технологиями.
У нас есть разные направления работы, и вы можете как сфокусироваться на одном из них, так и принести пользу сразу в нескольких. Эксперты в команде помогут разобраться с тонкостями системы. Вы будете работать в основном с Python, но встречаются и задачи, связанные с C++ или Go.
Повышение надёжности и удобства обучений
Мы разрабатываем единую библиотеку распределённых обучений, которая будет интегрирована со всем спектром систем запуска обучений, анализа логов, профилирования, мониторинга и др. Мы хотим сократить количество ручных действий и нестабильностей, чтобы быстрее двигаться вперёд.
Автоматизация обнаружения и устранения ошибок распределённых обучений
Одна из важных проблем состоит в том, что в случае ошибки обучения бывает сложно определить точную причину: выход из строя одного из серверов, сбой сети при передаче данных или ошибка в пользовательском коде. Мы работаем над тем, чтобы автоматически обнаруживать ошибку и принимать решение о необходимости перезапуска обучения на другом оборудовании, а также рекомендовать пользователю способы исправления ошибки.
Мониторинг, профилирование и оптимизация использования GPU
Различные сбои и неэффективности могут приводить к тому, что GPU простаивают. Мы разрабатываем инструменты, позволяющие обнаруживать и анализировать неэффективное использование GPU.
Больше о бэкенде в Яндексе — в канале Yandex for Backend