Обязанности:
Задачи оптимизации пайплайна чтения и записиПрежде чем попасть в GPU, данные проделывают большой путь. Они читаются с HDD и SSD на машинах YT, кодируются в стабильный формат (например, JSON или Arrow) для передачи клиенту. На стороне клиента они декодируются кодом C++ и заворачиваются в Python-объекты для использования в библиотеках машинного обучения. Предстоит разобраться во всём этом пути, убрать лишние конвертации, перейти на более эффективные форматы, а потом, вооружившись профайлером, найти узкие места и оптимизировать их. Новые алгоритмы параллельных чтений
Чтобы полностью утилизировать дорогостоящие видеокарты, процесс обучения обычно читает данные с разных машин YT несколькими потоками. Такие чтения сейчас создают повышенную нагрузку на мастер-сервера YT. Предстоит разработать новый протокол параллельных чтений, избавленный от этой проблемы, и реализовать его во всех компонентах: на мастере, на нодах, где хранятся сами данные, на прокси, которые являются входной точкой для пользователя, а также в самих пользовательских библиотеках. Написание удобной библиотеки для работы с YT из кода ML-обучений
ML-инженеры пишут свой код, пользуясь популярными фреймворками, такими как PyTorch или Jax. Наша задача — предоставить инструменты, которые бы позволяли максимально просто и нативно с точки зрения данных библиотек работать с YT. Больше о бэкенде в Яндексе — в канале Yandex for Backend
Ключевые навыки:
- Разрабатывали сложные системы или библиотеки на C++
- Любите заниматься задачами оптимизации
- Знаете Python и готовы развивать Python-часть нашего стека технологий
- Готовы погружаться в специфику задач, которые возникают у ML-инженеров, и создавать удобные инструменты для пользователей