Практика построения универсальной платформы машинного обучения

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

Эта статья основана на содержании речи, произнесенной Чжэн Яньвэем, старшим техническим экспертом 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).