ML-разработчик в команду алгоритмов логистики Лавки

Яндекс·Russia·Офис·1 нед. назад

Привет! Меня зовут Максим, я руковожу командой алгоритмов и ML-логистики в Яндекс Лавке. Ищу ML-разработчика, который будет развивать предсказание времени доставки и научит нас прогнозировать спрос.

Мы создаём алгоритмы логистики Яндекс Лавки: планируем маршруты курьеров — решаем, какой курьер какие заказы и в каком порядке повезёт, — и считаем промис: интервал времени доставки, который клиент видит ещё до оформления заказа. ML-часть команды отвечает за модели времени доставки и движения курьера.

Наши модели работают на каждом заказе Лавки, и результат виден сразу: промис определяет, сделает ли человек заказ и не расстроится ли, если курьер приедет позже обещанного. Мы сами доводим модели до продакшена, проверяем их в A/B-экспериментах, а решения о развитии продукта принимаем вместе с продакт-менеджерами и аналитиками. Команда небольшая и распределённая — Москва и Ереван, — поэтому у каждого своё направление и большая самостоятельность.

Создание промиса, который растит конверсию
Клиент только собирает корзину, а мы уже должны определить, через какое время заказ будет доставлен: сборка на складе, приготовление горячей еды, заезд в аптеку по пути, доставка в батче вторым или третьим. Раньше задача звучала как «Угадать время как можно точнее». Теперь мы знаем, что обещанное время влияет и на конверсию: большое время ожидания — заказывают реже, маленькое — чаще. Поэтому мы учимся понимать, какое значение показать конкретному клиенту, чтобы он заказал и не был обманут больше чем на несколько минут.

Предсказание спроса на ближайшие часы
Чтобы распределять курьеров, нужно знать, сколько заказов придёт через полчаса и через час. Два курьера и четыре заказа: если наплыва не будет — каждому по два; если начинается час пик — одному все четыре, а второго держим под заказы, которых ещё нет. Сейчас такой модели не существует, и её предстоит построить по историческим данным для каждого склада.

Определение ценности склада и распределение курьеров
Из прогноза спроса вырастает следующая задача: оценивать, насколько выгодно назначать курьеров сейчас с учётом будущих заказов. Здесь мы планируем пробовать подходы из reinforcement learning — например, определять функцию ценности состояния склада, чтобы планировщик маршрутов принимал более точные решения.

Больше о бэкенде в Яндексе — в канале Yandex for Backend

  • Работали с CatBoost или похожими библиотеками бустинга — это основной инструмент наших моделей
  • Уверенно владеете классическим ML — это градиентный бустинг, работа с признаками, метрики качества. Глубокое обучение и LLM в наших задачах не используются
  • Пишете на Python: на нём у нас обучение моделей, эксперименты и вспомогательные скрипты
  • Не боитесь читать C++: сервисы, в которых работают модели, написаны на нём. Писать на C++ много не придётся, но понимать чужой код важно
  • Умеете доводить модель до продакшена и проверять эффект: A/B-эксперименты, метрики, выводы для продукта
  • Работали с прогнозированием временных рядов или спроса
  • Сталкивались с задачами логистики, геоданными или маршрутизацией
  • Интересуетесь reinforcement learning: в перспективе мы планируем применять эти методы для оценки ценности склада и распределения курьеров

Узнайте больше про разработку городских сервисов Яндекса на dev.go.yandex

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

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