Команда Research Technology Virtu ищет опытного инженера по машинному обучению, который присоединится к небольшой группе технологов, основная задача которых — создание инфраструктуры, обеспечивающей работу наших количественных исследователей. Это уникальная возможность работать на стыке машинного обучения и систематической торговли — создавать инструменты, которые напрямую определяют скорость наших исследователей и эффективность преобразования нашего GPU-кластера в результаты исследований.
В этой роли вы будете отвечать за разработку нашей исследовательской платформы машинного обучения: систем, которые управляют данными и вычислениями, отслеживают эксперименты и позволяют исследователям максимально эффективно переходить от идеи к результату. Вы будете тесно сотрудничать как с квонтами, так и с инженерами и будете играть центральную роль в формировании подходов к машинному обучению в компании по мере масштабирования наших возможностей. Мы в основном используем Python, C++ и Java с различными инструментами с открытым исходным кодом, а также проприетарными решениями.
РОЛЬ
- Разработка и создание инфраструктуры для отслеживания экспериментов, оркестрации заданий и воспроизводимости, чтобы исследователи могли быстро итерировать, надежно сравнивать запуски и восстанавливаться после сбоев, не теряя работу
- Создание инструментов для всех этапов жизненного цикла симуляции, включая исторические бэк-тесты и мониторинг в производственной среде. Добавление новых функций в наши симуляторы
- Обеспечение прозрачности использования GPU-кластера — отслеживание распределения ресурсов, выявление узких мест и обеспечение эффективного использования наших вычислительных инвестиций
- Диагностика и устранение проблем с производительностью в конвейерах обучения: пропускная способность загрузки данных, ввод-вывод хранилища, использование GPU и межузловая связь в распределенных обучающих запусках
- Создание и поддержка конвейеров данных, которые эффективно перемещают финансовые данные из хранилища в рабочие процессы обучения с гарантией корректности и версионирования
- Разработка шаблонов хранения и извлечения признаков, обеспечивающих быстрый и воспроизводимый доступ к обучающим данным в масштабе
- Работа напрямую с исследователями для понимания проблем в их рабочих процессах и создание решений для их устранения — от улучшения инструментов до изменений инфраструктуры
- Сотрудничество с существующими инженерами инфраструктуры по вопросам планирования мощностей, компромиссов между облачными и локальными решениями, а также выбора инструментов — это среда для совместной работы, а не изолированная.
- Быть в курсе разработок в области инструментов инфраструктуры машинного обучения и внедрять релевантные идеи и инструменты в наш стек там, где они создают реальную ценность.
КАНДИДАТ
- Опыт работы в области ML-инженерии, исследовательской инфраструктуры или HPC-сред более 5 лет
- Сильные навыки инженерии на Python — вы пишете чистый, поддерживаемый, хорошо протестированный код, на основе которого другие инженеры хотят строить. Опыт работы с C++ в контексте, чувствительном к производительности, является плюсом
- Опыт создания или эксплуатации распределенной обучающей инфраструктуры с практическим знанием того, как коллективные библиотеки связи (NCCL, Horovod или аналогичные) ведут себя в масштабе
- Практический опыт работы с системами отслеживания экспериментов и четкое понимание того, как должна выглядеть хорошая исследовательская инфраструктура
- Уверенность в работе с различными компонентами стека систем Linux — хранилища, сети, планирование заданий — достаточная, чтобы проследить проблему куда бы она ни вела
- Отличные коммуникативные навыки и способность тесно сотрудничать с исследователями и инженерами из разных дисциплин
- Интеллектуальная любознательность и самостоятельность — вы проактивно выявляете проблемы, которые стоит решать, а не только те, которые вам поручили решать.
ЖЕЛАТЕЛЬНО, НО НЕОБЯЗАТЕЛЬНО
- Опыт работы с локальными вычислительными средами и инструментами оркестрации заданий, такими как Slurm
- Знакомство с инструментами профилирования GPU (NSight Systems, PyTorch Profiler) и практический опыт оптимизации использования памяти или вычислительных ресурсов GPU
- Опыт работы с колоночными форматами данных и высокопроизводительными инструментами обработки данных, такими как Parquet, Arrow и Polars
- Знакомство с инструментами оркестрации рабочих процессов (Prefect, Dagster или аналогичными)
- Предыдущий опыт работы в средах с высокими ставками, временными рядами данных в масштабе. Открыты к количественным финансам, алгоритмической торговле и другому.
- Опыт внесения вклада или расширения фреймворков машинного обучения или инфраструктурных инструментов с открытым исходным кодом.
Диапазон заработной платы: 200 000–300 000 долларов США (диапазон заработной платы не включает бонусы, льготы или другие категории компенсации)
Virtu Financial — работодатель, предоставляющий равные возможности, приверженный созданию разнообразного и инклюзивного рабочего места, приветствующий вас таким, какой вы есть, и не допускающий дискриминации по признаку расы, национального происхождения, пола, гендерной идентичности, сексуальной ориентации, статуса ветерана, инвалидности, возраста или другого статуса, защищенного законом.