Michelangelo помогает Uber составлять прогнозы

В UberEats применяют модели Michelangelo, в том числе для прогнозирования времени доставки, сортировки поисковых результатов и составления рейтинга ресторанов


14:24 18.09.2017   |   2785 |  Скотт Кэри |  Computerworld, Великобритания

Рубрика Технологии



В компании самостоятельно разработали платформу машинного обучения в виде сервиса.

В обширном посте в блоге Uber Engineering Джереми Херманн, руководитель Uber по платформе машинного обучения, и менеджер по продуктам Майк Дельбальсо описывают Michelangelo так: «Внутренняя платформа, демократизирующая машинное обучение и позволяющая с помощью масштабируемого искусственного интеллекта выполнять требования бизнеса так же просто, как заказывать такси».

Создав Michelangelo, в Uber составили стандартную последовательность операций по вводу в действие новых решений машинного обучения в организации. Последовательность состоит из шести этапов: управление данными, обучение, оценка и развертывание моделей, выдача и контроль прогнозов. Система поддерживает традиционные модели машинного обучения, прогнозирование на основе временных рядов и глубокое обучение, поясняют авторы поста.

Michelangelo продолжает работу, начатую в Uber под руководством Дэнни Ланжа, который раньше возглавлял соответствующий отдел.

До Michelangelo в Uber были сложности с масштабированием используемых в компании алгоритмов машинного обучения, продолжают Херманн и Дельбальсо: «Наши ученые по данным пользовались большим количеством инструментов для создания прогнозных моделей (в том числе языком R, фреймворком scikit-learn, произвольными алгоритмами и др.), а отдельная команда инженеров занималась тем, что создавала разовые системы для применения этих моделей в рабочей среде. До Michelangelo не было возможности обучать модели, более масштабные, чем те, что умещались на рабочих компьютерах специалистов по данным, и не было ни специального места для хранения результатов экспериментов с обучением, ни простого способа сравнить эксперименты друг с другом. Что самое важное, не было стандартного процесса ввода модели в рабочую эксплуатацию — в большинстве случаев приходилось создавать отдельный контейнер для каждого конкретного проекта».

Сама по себе Michelangelo — это набор соединенных инженерами Uber систем и компонентов с открытым кодом, в том числе HDFS, Spark, Samza, Cassandra, MLLib, XGBoost и TensorFlow. Система развернута поверх собственного озера данных Uber и вычислительной инфраструктуры компании.

Саму платформу Michelangelo, отмечают в Uber, пока что выпускать в открытых кодах не собираются: «Выпуск платформ машинного обучения в открытых кодах сопряжен с определенными трудностями, к тому же другие организации не смогут извлекать из Michelangelo ощутимую пользу, поскольку платформа построена на наших внутренних данных».

Michelangelo на службе доставки еды

Персонал UberEats, службы Uber по доставке еды, применяет несколько моделей Michelangelo для прогнозирования времени доставки, сортировки поисковых результатов, автозавершения поисковых запросов и составления рейтинга ресторанов, отмечается в блоге: «Для прогнозирования времени доставки ученые по данным UberEats пользуются регрессионными моделями на основе деревьев принятия решений с градиентным бустингом».

Чтобы обеспечить точность прогнозирования, модель учитывает время суток, адрес доставки, среднее время приготовления заказа за последние семь дней и данные о приготовлении, поступающие в реальном времени.

Модели развертываются в центрах обработки данных Uber в контейнерах, предоставляющих их в виде сервиса, и вызываются по сети с помощью запросов микросервисами UberEats. Прогнозы отображаются для клиентов UberEats непосредственно перед заказом и затем по мере приготовления и доставки.

Что дальше?

Инженеры Uber постоянно дорабатывают Michelangelo; в частности, сейчас идет работа над функцией под названием AutoML.

«Это будет система автоматического поиска и распознавания конфигураций моделей (алгоритм, набор признаков, значения гиперпараметров и пр.), благодаря ей можно выбирать оптимальные по характеристикам модели для конкретных задач, — говорится в блоге. — Ученые по данным смогут задавать в системе набор меток и целевую функцию, а затем платформа, используя данные Uber с соблюдением принципов безопасности и конфиденциальности, найдет оптимальную модель. Смысл в том, чтобы с помощью интеллектуальных инструментов повысить продуктивность работы ученых по данным и облегчить их труд».

Идет также работа над инструментом визуализации, помогающим в отладке моделей глубинного обучения. Кроме того, в Uber хотят расширить корпоративный портал онлайн-обучения — добавить курс по Michelangelo, чтобы обеспечить еще более широкое применение платформы внутри организации.


Теги: Облачные сервисы Прогнозная аналитика Uber Машинное обучение Цифровая экономика
На ту же тему: