Разработчик в группу разработки ML-инфраструктуры YT

Яндекс·Russia·Удалённо, Офис·вчера

Вам интересно создавать распределённые системы, которые сами обнаруживают ошибки и исправляют их? Работать с передовыми технологиями обучения 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

  • Уверенно владеете Python, Go или C++
  • Умеете и хотите разбираться в распределённых системах и нетривиальном коде
  • Способны быстро погружаться в новые задачи и находить оптимальные решения — даже в незнакомых областях и при меняющихся приоритетах
  • Готовы взаимодействовать с пользователями и помогать им диагностировать проблемы
  • Понимаете, как устроено ML-обучение

Похожие вакансии

Другие вакансии Яндекс