Эта статья основана на содержании речи, произнесенной Чжэн Яньвэем, старшим техническим экспертом Meituan Distribution на SACC 2019 (Китайская конференция системных архитекторов), и в основном представляет собой обобщение опыта и исследование технической команды Meituan Distribution в процессе. создания универсальной платформы машинного обучения. Надеюсь, она будет полезна студентам, которые занимаются этой сферой.
0. Пишите впереди
ИИ в настоящее время является самой популярной «звездой» в интернет-индустрии.Будь то признанный гигант или выскочка в сфере трафика, они активно развивают технологию ИИ, чтобы расширить возможности своего бизнеса. Доставка является важной частью замкнутой цепи платформ доставки еды.Эффективность доставки и пользовательский опыт являются основной конкурентоспособностью бизнеса доставки. С увеличением количества заказов, количества райдеров и сложности сцены доставки различные алгоритмы сцены доставки становятся быстрее (алгоритмы нужно быстро повторять и быстро запускать) и лучше (предприятия все больше полагаются на машины). алгоритмы обучения для получения положительных эффектов), более точные (все виды прогнозов алгоритма, такие как предполагаемое время доставки и т. д., должны точно аппроксимировать истинное значение), он также сталкивается с растущими проблемами. От исследования до окончательного запуска алгоритма требуется ряд инженерных разработок и стыковок, что приводит к новому вопросу: как определить границу между алгоритмом и инженерией, и как реализовать их соответствующие функции и преимущества? Как повысить скорость и эффективность итерации алгоритма? Как быстро и точно оценить действие алгоритма? В этой статье мы поделимся некоторым опытом и исследованиями технической команды доставки Meituan в процессе создания универсальной платформы машинного обучения, надеясь помочь вам или вдохновить вас.
1. Предыстория бизнеса
В июле 2019 года ежедневный объем заказов Meituan превысил 30 миллионов заказов, занимая относительно лидирующую долю рынка. Ориентируясь на пользователей, продавцов и пассажиров, Meituan Delivery построила ведущую в мире сеть мгновенной доставки, ведущую в отрасли интеллектуальную систему доставки Meituan и сформировала крупнейшую в мире платформу доставки еды на вынос.
Как сделать распределительную сеть более эффективной и удобной для пользователей — очень сложная задача. Нам необходимо решить большое количество сложных задач оптимизации машинного обучения и операционных исследований, включая прогнозирование ожидаемого времени прибытия, интеллектуальное планирование, оптимизацию карт, динамическое ценообразование, ситуационную осведомленность, интеллектуальные операции и другие области. В то же время нам также необходимо найти баланс между опытом, эффективностью и стоимостью.
2. Процесс эволюции платформы машинного обучения доставки Meituan
2.1 Зачем создавать универсальную платформу машинного обучения
Если вы хотите решить вышеуказанные проблемы с машинным обучением, вам нужна мощная и простая в использовании платформа машинного обучения, которая поможет разработчикам алгоритмов, избавит вас от утомительной инженерной разработки и сосредоточит вашу ограниченную энергию на повторении алгоритмических стратегий.
В настоящее время в отрасли существует множество отличных платформ машинного обучения, в том числе коммерческие продукты, разработанные крупными компаниями, такие как Microsoft Azure, Amazon SageMaker, платформа PAI от Alibaba, PaddlePaddle от Baidu и платформа TI от Tencent, а также множество продуктов с открытым исходным кодом, таких как как Caffe Калифорнийского университета в Беркли, TensorFlow от Google, PyTorch от Facebook, Spark MLlib от Apache и другие. Большинство платформ с открытым исходным кодом представляют собой базовые вычислительные среды машинного обучения или глубокого обучения, ориентированные на обучение моделей машинного обучения или глубокого обучения; коммерческие продукты компании основаны на базовых вычислительных средах машинного обучения и глубокого обучения для вторичной разработки, обеспечивая универсальную экологическую безопасность. Услуги предоставляют пользователям полную поддержку процесса разработки и развертывания, включая предварительную обработку данных, обучение модели, оценку модели и онлайн-прогнозирование модели, чтобы снизить порог для студентов, изучающих алгоритмы.
Цель и позиционирование универсальной платформы машинного обучения на уровне компании совпадают с нашими потребностями в платформе машинного обучения: предоставить пользователям комплексные универсальные услуги, помочь им избавиться от утомительной инженерной разработки и сократить ограничено Энергия сосредоточена на итерации стратегии алгоритма. Ввиду этого появилась универсальная платформа машинного обучения Meituan.
Эволюцию платформы машинного обучения доставки Meituan можно разделить на два этапа:
-
Стадия лучшего игрока: Гибкость, быстрые пробы и ошибки, а также возможность быстрой итерации.
-
сцена платформы: Бизнес вырос в геометрической прогрессии, и появляется все больше сценариев, требующих алгоритмов машинного обучения.Как не только обеспечить развитие бизнеса, но и решить такие проблемы, как доступность системы, масштабируемость и эффективность НИОКР.
2.2 Стадия лучшего игрока
На начальном этапе всем не ясно, во что перерастет платформа машинного обучения, и многое неясно. Однако, чтобы поддерживать развитие бизнеса, необходимо быстро выходить в интернет и стараться быстро ошибаться. Таким образом, на данном этапе каждое направление бизнеса самостоятельно создает свой собственный набор инструментов машинного обучения, выполняет итерации в соответствии с особыми потребностями своего бизнеса и быстро поддерживает онлайн-приложение алгоритмов машинного обучения к конкретным бизнес-сценариям, что известно как «трубопровод». "модель". Эта модель работает независимо и очень гибкая, она может быстро удовлетворить персонализированные потребности бизнеса и выиграть возможность для бизнеса захватить рынок. Однако с постепенным расширением масштабов бизнеса стали заметны недостатки этой «модели дымохода», в основном в следующих двух аспектах:
-
заново изобретать колесо: разработка признаков, обучение модели и онлайн-прогнозирование модели разрабатываются независимо друг от друга.Начиная с нуля, итеративная эффективность алгоритма низка.
-
путаница с калибром: Каждая деловая сторона постоянно разрабатывает функции, а статистический уровень одной и той же функции непостоянен, что затрудняет совместную работу алгоритмов.
2.3 Этап платформизации
Чтобы избежать повторного создания колес различными отделами и повысить эффективность НИОКР, в то же время, чтобы унифицировать калибр расчета бизнес-показателей и функций, а также стандартизировать систему данных на стороне распределения, команда НИОКР Meituan Distribution сформировала группу разработки алгоритмов, которая специализируется на регулировании машин каждого бизнес-направления.Набор инструментов обучения, надеясь создать единую платформу машинного обучения, его требования в основном включают следующие аспекты:
-
Нижний уровень платформы опирается на Hadoop/Yarn для управления планированием ресурсов.Он объединяет три фреймворка машинного обучения, Spark ML, XGBoost и TensorFlow, и сохраняет масштабируемость для облегчения доступа к другим фреймворкам машинного обучения, таким как MLX (Super Large Scale), разработанная Meituan. Крупномасштабная платформа машинного обучения, адаптированная для задач ранжирования, таких как поиск, рекомендации и реклама, и поддерживает десятки миллиардов функций и потоковых обновлений).
-
Инкапсулируя фреймворки машинного обучения Spark ML, XGBoost и TensorFlow, мы реализовали визуальную офлайн-платформу обучения, сгенерировали графики DAG путем перетаскивания, скрыли различия между несколькими фреймворками обучения, унифицированное обучение моделей и распределение ресурсов, а также сократили алгоритм RD. порог доступа.
-
Платформа управления моделями предоставляет унифицированные решения для регистрации, обнаружения, развертывания, переключения и перехода на более ранние модели, а также предоставляет высокодоступные онлайн-сервисы прогнозирования для вычислений в реальном времени моделей машинного и глубокого обучения.
-
Платформа автономных функций собирает и сортирует автономные журналы, вычисляет и уточняет функции, требуемые алгоритмом, и применяет автономные функции к онлайн.
-
Платформа функций реального времени собирает онлайн-данные в режиме реального времени, вычисляет и уточняет функции, требуемые алгоритмом, и переводит приложение в онлайн в режиме реального времени.
-
Платформа управления версиями, которая управляет версией алгоритма и моделями, функциями и параметрами, используемыми версией алгоритма.
-
Экспериментальная платформа AB может быстрее и лучше проверить эффект алгоритма с помощью научных методов отклонения и оценки.
3. Платформа Тьюринга
На этапе платформизации наше целевое позиционирование платформы машинного обучения Meituan: универсальная платформа машинного обучения, предоставляющая комплексные услуги для студентов-алгоритмов, охватывающая весь процесс исследования, разработки, запуска и внедрения студентов-алгоритмов. оценка эффектов алгоритма, в том числе: обработка данных, создание признаков, создание выборки, обучение модели, оценка модели, выпуск модели, онлайн-прогнозирование и оценка эффекта. В ответ на эту цель все также дали платформе смелое имя - Turing, китайское название Turing Platform, хотя оно немного «жирное», но также является своего рода шпорой для нашей команды.
1) Во-первых, на этапе сбора данных он поддерживает онлайн- и офлайн-обработку, а также генерирует функции в реальном времени и в автономном режиме посредством выборки, фильтрации, нормализации, стандартизации и т. д. и отправляет их в онлайн-библиотеку функций для онлайн-сервисов.
2) На этапе обучения модели он поддерживает классификацию, регрессию, кластеризацию, глубокое обучение и другие модели, а также поддерживает пользовательские функции потерь и потерь.
3) На этапе оценки модели поддерживаются различные показатели оценки, такие как AUC, MSE, MAE, F1 и т. д.
4) На этапе выпуска модели предоставляется функция развертывания одним щелчком мыши, которая поддерживает как локальный, так и удаленный режимы, что соответствует локальному развертыванию модели в бизнес-сервисе и ее развертыванию в выделенном кластере онлайн-прогнозирования.
5) На этапе онлайн-прогнозирования он поддерживает эксперименты AB, гибкий выпуск оттенков серого и большой объем, а также реализует оценку эффекта экспериментов AB через унифицированный журнал скрытых точек.
3.1 Оффлайн обучающая платформа
Цель автономной обучающей платформы — создать визуальную обучающую платформу, скрыть различия между несколькими обучающими средами и снизить порог доступа для алгоритма RD.
Чтобы снизить порог входа алгоритма RD в область машинного обучения, мы разработали автономную обучающую платформу с визуальным интерфейсом, который можно объединить в граф DAG путем перетаскивания различных компонентов для создания полного обучения машинному обучению. задача.
Поддерживаемые в настоящее время компоненты можно условно разделить на несколько категорий: ввод, вывод, предварительная обработка функций, обработка набора данных, модели машинного обучения и модели глубокого обучения.В каждой категории разработано несколько различных компонентов для поддержки различных сценариев приложений. В то же время, чтобы не потерять гибкость, мы также много думали о предоставлении различных функций, таких как пользовательские параметры, автоматическая настройка параметров, пользовательские функции потерь и т. д., чтобы сделать все возможное, чтобы удовлетворить различные гибкость потребностей студентов-алгоритмистов в разных направлениях бизнеса.
Когда наша автономная обучающая платформа создает модель, в дополнение к файлу модели она также создает файл MLDL (язык определения машинного обучения), который записывает всю информацию модуля предварительной обработки каждой модели в файл MLDL, а модель сохраняет в файле. тот же каталог. Когда модель публикуется, файл модели публикуется в сети вместе с файлом MLDL в целом. Во время онлайн-расчета сначала автоматически выполняется логика предварительной обработки в MLDL, а затем выполняется логика расчета модели. Через MLDL открываются возможности автономного обучения и онлайн-прогнозирования, работающие на всей платформе машинного обучения, так что один и тот же набор кода инфраструктуры предварительной обработки функций используется в автономном и онлайн-режиме, обеспечивая согласованность автономной и онлайн-обработки.
При публикации модели мы также предоставляем функцию функции привязки модели, которая помогает пользователям связывать функции с входными параметрами модели, что облегчает модели автоматическое получение функций во время онлайн-прогнозирования и значительно упрощает работу по получению функций, когда Алгоритм RD строит вход модели.
3.2 Платформа управления моделями
Как упоминалось ранее, наша платформа Turing объединяет три базовые учебные среды: Spark ML, XGBoost и TensorFlow.На основе этого наша учебная платформа создает множество типов моделей машинного обучения, включая LR, SVM и древовидные модели.Есть GBDT, RF , XGB и т. д., а модели глубокого обучения включают RNN, DNN, LSTM, DeepFM и т. д. Целью нашей платформы управления моделями является предоставление унифицированных решений для регистрации, обнаружения, развертывания, переключения и перехода на более ранние модели, а также предоставление высокодоступных онлайн-сервисов прогнозирования для моделей машинного обучения и глубокого обучения.
Платформа управления моделями поддерживает как локальный, так и удаленный режим развертывания:
-
Локальный: модель и MLDL единообразно передаются на сервисный узел бизнес-стороны.В то же время платформа Turing предоставляет пакет Java Lib, который встроен в бизнес-приложение, а бизнес-сторона вызывает расчет модели через локальный интерфейс.
-
Удаленный: платформа Turing поддерживает выделенный кластер онлайн-вычислений, а модель и MLDL единообразно развернуты в кластере онлайн-вычислений.Бизнес-приложение вызывает службу онлайн-вычислений через интерфейс RPC для выполнения расчета модели.
Для сверхбольших моделей нельзя загрузить одну машину, и модель необходимо сегментировать. Принимая во внимание бизнес-характеристики распределения Meituan, обучение разделов может проводиться в соответствии с городом/регионом распространения, каждый город или регион создает небольшую модель, а несколько моделей разделов развертываются на нескольких узлах, решая проблему, связанную с тем, что один узел не могу загрузить большую модель. Модель раздела требует, чтобы мы предоставили функцию маршрутизации модели, чтобы бизнес-сторона могла точно найти узел, на котором развернута соответствующая модель раздела.
В то же время платформа управления моделью также собирает информацию о пульсе каждого сервисного узла, поддерживает статус модели и переключение версий и обеспечивает согласованность версии модели на всех узлах.
3.3 Платформа офлайн-функций
Бизнес онлайн-дистрибуции ежедневно записывает множество параметров данных, таких как пассажиры, продавцы и пользователи.Эти данные обрабатываются ETL для получения так называемых автономных функций.Алгоритмы используют эти автономные функции для обучения моделей и используют эти функции онлайн для прогнозирования модели онлайн. Платформа офлайн-функций предназначена для создания данных офлайн-функций, хранящихся в таблице Hive, в режиме онлайн, предоставления сервисных возможностей онлайн-приобретения офлайн-функций и поддержки высокой параллелизма различных предприятий при распространении и быстрой итерации алгоритма.
Самое простое решение — хранить автономные функции напрямую в БД, а онлайн-сервис напрямую считывает БД для получения значения функции. Чтение БД — очень тяжелая операция, очевидно, что это решение не соответствует сценарию большого параллелизма в Интернете и передается напрямую.
Во втором решении каждая автономная функция хранится в Redis в виде структуры K-V, а онлайн-сервис напрямую считывает Redis в соответствии с ключом функции для получения значения функции. Это решение использует преимущества высокой производительности базы данных Redis в памяти K-V. На первый взгляд кажется, что оно может удовлетворить потребности бизнеса, но при реальном использовании также возникают серьезные проблемы с производительностью.
Типичный бизнес-сценарий: например, если мы хотим предсказать время доставки 20 продавцов, предполагая, что каждому продавцу требуется 100 функций, тогда нам нужно 20 * 100 = 2000 функций для расчета модели, 2000 KV. Если он получен напрямую, он не может удовлетворить требования к производительности со стороны бизнеса; если используется пакетный интерфейс Mget, предоставляемый Redis, если каждый раз получается 100 KV, требуется 20 Mget. Требующий времени TP99 для кэширования mget составляет около 5 мс, а TP99 для 20-кратного Mget близок к 100 мс, что не может удовлетворить требования к производительности со стороны бизнеса (время ожидания восходящей службы составляет около 50 мс).
Поэтому нам необходимо оптимизировать хранение и извлечение функций в автономном режиме. Мы выдвинули концепцию группы функций.Функции одного размера объединяются в KV в соответствии со структурой группы функций, что значительно сокращает количество ключей и обеспечивает относительно полную функцию управления для поддержки динамической настройки группа функций (сборка, разделение и т. д.).
3.4 Платформа функций в реальном времени
По сравнению с традиционной доставкой мгновенная доставка быстро меняется с точки зрения информации о местоположении, загруженности пассажиров, текущих условий дорожной сети и условий доставки еды продавцами, а требования в режиме реального времени очень высоки. Для того, чтобы алгоритмы машинного обучения действовали онлайн в режиме реального времени, нам необходимо собирать различные бизнес-данные в режиме реального времени, выполнять вычисления, дорабатывать их до функций, требуемых алгоритмом, и обновлять их в режиме реального времени.
Экспериментальная платформа 3.5 AB
Эксперимент AB не является новой концепцией.С тех пор как инженеры Google применили этот метод к интернет-продуктам в 2000 году, эксперимент AB становится все более и более популярным в стране и за рубежом, и он стал важным проявлением точности работы интернет-продуктов. Проще говоря, метод применения эксперимента AB в оптимизации продукта заключается в следующем: перед официальным итеративным выпуском продукта формулируются два (или более) плана для одной и той же цели, а пользовательский трафик делится на несколько групп, чтобы обеспечить характеристики каждой группы пользователей.В соответствии с той же предпосылкой позвольте пользователям увидеть различные конструкции схем и научно помогите продуктам принимать решения на основе реальных данных, полученных от нескольких групп пользователей.
Обычные эксперименты AB в области Интернета в основном предназначены для конечных пользователей C для выбора трафика, например, случайного или хеш-расчета на основе UID зарегистрированного пользователя или идентификации устройства пользователя (номер IMEI мобильного пользователя / файл cookie пользователя ПК). Такие решения широко используются в поисковой, рекомендательной, рекламной и других сферах, отражая особенности тысяч людей и тысяч лиц. Этот тип схемы отличается простотой реализации, предполагается, что запросы распределяются независимо и одинаково, а трафик решается независимо, не мешая друг другу. Причина, по которой может быть проведен этот тип эксперимента AB, заключается в том, что трафик на стороне C относительно велик, имеется достаточно выборок и нет взаимных помех между различными пользователями. в основном гарантированно независимы и одинаково распределены.
Эксперимент AB в области мгновенной доставки вращается вокруг пользователей, продавцов и райдеров.Пользователи/продавцы/райдеры больше не независимы друг от друга, а влияют и ограничивают друг друга. Для таких сценариев существующая схема распределения трафика будет вызывать взаимные помехи различных стратегий и не может эффективно оценить плюсы и минусы каждой стратегии для каждого трафика.
Ввиду вышеуказанных проблем мы разделили эксперимент АБ на стороне доставки на три этапа: группировка АК до события, шунтирование АБ во время события и оценка эффекта после события.
-
Группировка АА: трафик-кандидат делится на контрольную группу и экспериментальную группу заранее по установленным правилам.На основании теории математической статистики обеспечивается отсутствие существенной разницы в бизнесе контрольной группы и экспериментальной группы соответствующие показатели.
-
AB triage: разделяйте онлайн-запросы на контрольные или экспериментальные версии в режиме реального времени.
-
Оценка эффекта: Эффект эксперимента АБ оценивали на основе сравнения данных между контрольной группой и экспериментальной группой.
Из-за особой сцены мгновенной доставки, например, когда эксперименты АБ проводятся по районам доставки или городам, из-за ограниченного пространства выборки трудно найти контрольные группы и экспериментальные группы, не имеющие различий, поэтому мы разработали метод управления AB с временным интервалом. : Поддерживает сегментирование по дням, часам и минутам, и несколько временных отрезков чередуются по очереди. Между разными регионами и разными временными отрезками попеременно переключаются разные стратегии для выполнения шунтирования AB, чтобы минимизировать влияние автономного режима. факторы Обеспечение справедливости в экспериментальной науке.
4 Резюме и перспективы
В настоящее время платформа Turing поддерживает автономное обучение, онлайн-прогнозирование, эксперименты AB и т. Д. Алгоритмов BU, таких как Meituan Delivery, Xiaoxiang и LBS, поэтому алгоритм RD уделяет больше внимания итеративной оптимизации самой стратегии алгоритма. что значительно повышает эффективность алгоритма RD. В будущем мы продолжим углубленное изучение в следующих областях:
1) Укрепить конструкцию глубокого обучения.
-
Усильте построение глубокого обучения, полностью поддержите глубокое обучение и осознайте, что компоненты, связанные с глубоким обучением, аналогичны компонентам машинного обучения и могут сочетаться с любыми компонентами в визуальном интерфейсе.
-
Автономное обучение поддерживает более распространенные модели глубокого обучения.
-
Поддержка прямого написания кода Python для настройки моделей глубокого обучения.
2) Платформа онлайн-прогнозирования, дальнейшие алгоритмы развязки и разработка.
-
Упростите SDK платформы Turing, удалите основную вычислительную логику и создайте онлайн-платформу прогнозирования.
-
Платформа онлайн-прогнозирования динамически загружает пакет алгоритмов, чтобы реализовать разделение алгоритма, бизнес-инженера и платформы Тьюринга.
об авторе
Ян Вэй, старший технический эксперт технической группы по распространению Meituan.
Предложения о работе
Если вы хотите ощутить очарование платформы Тьюринга поближе, присоединяйтесь к нам. Техническая команда Meituan по доставке ищет технических экспертов и архитекторов в области диспетчеризации и исполнения, LBS, платформы машинного обучения и разработки алгоритмов для совместного создания крупнейшей в отрасли единой распределительной сети и платформы в реальном времени и совместного решения сложных задач. бизнеса и большого количества одновременных вызовов, а также встретить эру всеобъемлющей аналитики в сфере дистрибуции. Заинтересованные студенты могут отправлять свои резюме по адресу: tech@meituan.com (отметьте в теме письма: Техническая группа доставки Meituan).