Middle/Senior ML Engineer/Full-stack Data Scientist (в команду рекомендаций) (удаленная работа)

18 апреля 2024

Уровень зарплаты:
з.п. не указана
Требуемый опыт работы:
Не указан

Вакансия: Middle/Senior ML Engineer/Full-stack Data Scientist (в команду рекомендаций)

Описание вакансии

О компании: Cheelee - это платформа коротких видео с механикой Watch2Earn, которая платит всем пользователям за просмотр ленты. Что-то вроде TikToka только с разными механиками монетизации для зрителей и авторов. Наш текущий DAU 100к. Более 500 инфлюенсеров (50+ звезд интернета и ТВ) и внутренний продюсерский центр участвуют в постоянном создании эксклюзивного контента. Компания основана в 2019 году, зарегистрирована в США. Размер компании - около 200 сотрудников, треть - отдел разработки (10+ команд).

Требования:
  • Практический опыт работы в ML;
  • Опыт построения рекомендательных систем;
  • Опыт построения нейросетевых моделей для классификации изображений, видео, аудио и текстов (PyTorch);
  • Умение строить и проверять статистические гипотезы, проводить AB-тесты;
  • Опыт работы с высоконагруженными системами;
  • Умение писать production код (python 3.9+);
  • Опыт оптимизации и внедрения моделей в production;
  • Понимание классических алгоритмов и структур данных;
  • Самостоятельность и умение работать без ТЗ;
Желательно:
  • Умение писать production код (go);
  • Знание SQL;
  • Опыт работы с ClickHouse;
  • Знания в области system design;
  • Опыт работы с Redis;
Задачи:
  • Сбор и подготовка данных для обучения моделей. Надо из сырых данных пользовательского взаимодейстия с контентом выгружать и формировать данные в нужном для обучения формате. Данные о user-item взаимодействии хранятся в ClickHouse.
  • Разработка и тестирование алгоритмов рекомендаций. Надо будет читать статьи, изучать SOTA подходы к рекомендательным системам, тестировать разные алгоритмы. Все тесты логировать в neptune, принимать решение о том какие алгоритмы будем использовать. Принимать решение не только на основе метрик, но и на основе того, как это будет работать и масштабирваться в продакшене.
  • Разработка высоконагруженной рекомендательной системы для видео ленты. Надо будет реализованные модели внедрить в продакшн: сервисы, которые занимаются обучением и сервисы которые занимаю инференсом. Сложность в том, что данных много - надо будет делать распределенное обучение. Обучение периодическое, поэтому важно научиться оптимально утилизировать ресурсы. Инференс высоконагруженный (тысячи RPS), поэтому нужно будет грамотно заворачивать модели используя компилируемые языки. Должны уметь отвечать до 100ms.
  • Разработка аудио, видео, текстовых эмбеддеров. Эмбеддинги затем использовать в рекомендациях и в качестве фичей для обучения моделей.
  • Проведение АБ-тестов. Каждое изменение моделей и правил формирования ленты АБ-тестим. Нужно будет использовать CUPED, stratification, bootstrap, итд. Статистики считаем сами по сырым событям из ClickHouse.
Технологии:
Пишем сервисы на python (FastAPI, Faust), go.
Все крутится в AWS. Легкие сервисы разворачиваем в k8s-кластере, ML сервисы в AWS Sagemaker. Раскатываем через Gitlab CI. В питоне активно используем mypy, pylint, flake, isort, bandit - без прохождения линтеров пайплайн не пропустит merge request.
Пользовательские события отправляются сервисами на бэкенде в kafka. Для аналитики из кафки мы собираем все в ClickHouse используя движок kafka в самом CH. Любое изменение схемы в БД версионируем через миграции. События из кафки вычитываем, аггрегируем и складываем в Redis (Используем Redis Stack, selfhosted).
Для тестирования моделей используем jupyter notebook managed в sagemaker можем поднять любой инстанс по требованию с нужными ресурсами (GPU, CPU, RAM).
Мониторинг с помощью: prometheus, grafana, sentry, kibana.
Продуктовые метрики и дашборды строим в Datalens.

Условия:
  • GPU/CPU сервера в облаке;
  • Топовое оборудование и весь необходимый софт;
  • Офис в шаговой доступности от метро Добрынинская / Серпуховская;
  • Возможность удаленной работы;
  • Возможность получения опциона;
  • Гибкий график.
Дополнительно
Команда:
У нас в компании в основном продуктовые feature команды. Раньше мы были командой RnD, которая занималась всем, что связано с данными и машинным обучением, теперь мы выделили отдельную команду для ленты рекомендаций и начинаем ее формировать. Мы отвечаем за полный цикл своих разработок. Т.е. сами строим модели, заворачиваем в сервисы и выкатываем в прод. Сами мониторим. Сами несем ответственность за отказоустойчивость.
Стремимся вырастить всех внутри команды full-stack. Т.е. учим дата саентистов и дата аналитиков писать продакшн код. Инженеры учатся обучать модели. МЛ инженеры понимают как устроен продукт и продуктовая аналитика.
У нашей команды нет проджект менеджера или системного аналитика, кто писал бы нам ТЗ. Мы сами понимаем приоритеты бизнеса, синхронизируемся с бизнесом. Сами формулируем задачи, декомпозируем их и распределяем внутри команды. Зачастую сами приходим к бизнесу с новыми решениями и идеями.
Работаем по 2х недельным спринтам. Каждое утро стендап. Каждую пятницу в конце спринта - демо. После демо всегда ретроспектива. Каждые 4 недели с каждым членом команды 1to1 с тимлидом. Каждые 6 месяцев у каждого Performance Review. Используем джиру, но без фанатизма.

Рост:
При желании, можно будет попробовать себя в разных задачах: аналитика, разработка, машинное обучение. В продакшн коде мы проводим подробное код ревью. Готовим статьи на habr. Планируем выступить на конференциях. На регулярных 1to1 мы фокусируемся на профессиональном росте - поэтому каждый занимается помимо того, что тем что нужно бизнесу - еще и тем, что ему интересно и драйвит.