Платформа Turing представляет собой универсальную платформу алгоритмов, созданную технической командой по распространению Meituan.Структура онлайн-сервиса на платформе Turing—Turing OS в основном ориентирована на модуль онлайн-сервиса машинного обучения и глубокого обучения, который представляет собой модуль онлайн-сервиса для модели и стратегии алгоритмов.Развертывание и вычисления обеспечивают единое платформенное решение, которое может эффективно повысить эффективность итерации алгоритма. В этой статье мы обсудим с вами идеи мышления и оптимизации Turing OS в построении и на практике, надеясь помочь или вдохновить вас.
0. Пишите впереди
Можно сказать, что искусственный интеллект в настоящее время является самой горячей «звездой» в интернет-индустрии. Будь то признанный гигант или выскочка в сфере трафика, они активно развивают технологию искусственного интеллекта, чтобы расширить возможности своего бизнеса. Meituan очень рано начала изучать применение различных моделей машинного обучения в различных бизнес-сценариях, от начальной линейной модели, древовидной модели до глубокой нейронной сети, BERT, DQN и т. д. в последние годы, и успешно применялась для поиска, рекомендаций, реклама, распространение и другие предприятия также добились хороших результатов и производительности.
Алгоритмическая платформа, созданная Отделом технологий распределения Meituan — Turing (далее — платформа Turing), направлена на предоставление универсальных услуг, охватывающих предварительную обработку данных, создание функций, обучение модели, оценку модели, развертывание модели, онлайн-прогнозирование, AB. весь процесс экспериментирования и оценки эффекта алгоритма снижает порог для инженеров-алгоритмов, помогает им избавиться от утомительной инженерной разработки и сосредоточить свою ограниченную энергию на итеративной оптимизации бизнес-логики и алгоритма. Для конкретной практики вы можете обратиться к техническому блогу, ранее опубликованному технической командой Meituan "Практика построения универсальной платформы машинного обучения".
С завершением работы над платформой машинного обучения, функциональной платформой, AB-платформой и т. д. технологическая группа доставки обнаружила, что часть онлайн-прогнозирования постепенно становится узким местом в разработке и итерации алгоритма. По этой причине мы начали общие исследования и разработки. структуры онлайн-сервиса Тьюринга. В этой статье мы подробно обсудим дизайн и практику Turing OS (Online Serving), фреймворка онлайн-сервиса на платформе Turing, в надежде помочь или вдохновить вас.
С постепенным развитием платформы Turing, включая распространение Meituan, к платформе Turing подключились более 18 деловых сторон.Основной бизнес-сценарий группового распространения поддерживает более 500 онлайн-моделей, более 2500 функций, более 180 стратегий алгоритмов и поддерживает десятки миллиардов онлайн-прогнозов каждый день. Благодаря расширению возможностей платформы Тьюринга цикл итераций алгоритма был сокращен с уровня дня до уровня часа, что значительно повышает итеративную эффективность алгоритма распределения.
1. Введение в платформу Тьюринга
Платформа Turing представляет собой универсальную платформу алгоритмов. Общая архитектура показана ниже на рисунке 1. Нижний уровень опирается на Kubernetes и Docker для достижения унифицированного планирования и управления ЦП/ГП и другими ресурсами, а также интегрирует машинное обучение, такое как Spark. ML, XGBoost и TensorFlow./Среда глубокого обучения, включая универсальные функции платформы, такие как создание функций, обучение моделей, развертывание моделей, онлайн-рассуждения, эксперименты AB и т. д., поддерживает планирование, время и время распространения Meituan и флэш-памяти. продажи, езда на велосипеде, покупка продуктов, карты и другие бизнес-подразделения Различные приложения ИИ, такие как оценка, диапазон доставки, поиск и рекомендации. Платформа Turing в основном включает в себя четыре функции: платформу машинного обучения, функциональную платформу, онлайн-сервис Turing (онлайн-обслуживание) и экспериментальную платформу AB.
- Платформа машинного обучения: Предоставляет такие функции, как обучение модели, планирование задач, оценка модели и настройка модели, а также реализует обучение визуальной модели методом перетаскивания на основе DAG.
- Платформа функций: Обеспечьте онлайн- и офлайн-производство функций, извлечение функций и агрегацию функций и другие функции, а также отправляйте их в онлайн-библиотеку функций для предоставления высокопроизводительных услуг по получению функций.
- Онлайн-сервисы Тьюринга: Online Serving, далее именуемая Turing OS, предоставляет унифицированное платформенное решение для получения функций, предварительной обработки данных, онлайн-развертывания моделей и стратегий алгоритмов, а также высокопроизводительных вычислений.
- Экспериментальная платформа AB: Предоставляет такие функции, как группировка до AA, шунтирование AB в процессе и оценка последствий после события, охватывая полный жизненный цикл экспериментов AB.
Turing OS в основном относится к модулю онлайн-сервиса платформы Turing, уделяя особое внимание онлайн-сервисам машинного обучения / глубокого обучения.Цель состоит в том, чтобы обеспечить быстрый запуск обученных моделей в автономном режиме, эффективно повысить эффективность итерации алгоритмов различных бизнес-отделов и получить быстро получать результаты Создавать ценность для бизнеса. Далее мы сосредоточимся на Turing Online Serving.
2. Предыстория построения Turing OS
На ранней стадии развития бизнеса доставки Meituan, чтобы поддерживать быстрое развитие бизнеса, быстро поддерживать онлайн-алгоритм и быстро пробовать и ошибаться, инженеры каждого бизнес-направления независимо друг от друга разработали ряд функций для онлайн-прогнозирования. , который также известен как «модель дымохода». Эта модель работает независимо, очень гибкая и может быстро удовлетворить индивидуальные потребности бизнеса. Однако с постепенным расширением масштабов бизнеса стали заметны недостатки этой «модели дымохода», в основном в следующих трех аспектах:
- заново изобретать колесо: Сбор и предварительная обработка признаков, переключение версий признаков, загрузка и переключение моделей, онлайн-прогнозирование и эксперименты AB разрабатываются независимо, начиная с нуля.
- Отсутствие возможностей платформы: Отсутствие основанных на платформе возможностей эксплуатации и обслуживания, управления, мониторинга и отслеживания для полного жизненного цикла функций и итераций модели, что приводит к низкой эффективности НИОКР.
- Алгоритмы и инженерия серьезно связаны: Граница между алгоритмом и проектом нечеткая, связь серьезная, взаимное ограничение, эффективность итераций алгоритма низкая.
«Модель дымохода» внесла неизгладимый вклад на ранней стадии развития бизнеса, но с ростом объемов бизнеса маржинальная выгода от этого метода постепенно снижалась до невыносимого уровня, и для внесения изменений срочно требовалась единая структура онлайн-сервиса. .
В настоящее время большинство основных платформ онлайн-сервисов машинного обучения с открытым исходным кодом на рынке предоставляют только функции прогнозирования моделей и не включают модули предварительной и постобработки, как показано на рисунке 2 ниже.
Например, Google TensorFlow Serving – это высокопроизводительная платформа онлайн-сервиса с открытым исходным кодом для обслуживания моделей машинного обучения. Она предоставляет интерфейсы gRPC/HTTP для внешних вызовов, поддерживает горячее обновление модели и автоматическое управление версиями модели, а также решает болевые точки, такие как планирование ресурсов. и обнаружение услуг.Предоставление стабильных и надежных услуг внешнему миру. Однако TensorFlow Serving не включает модули предварительной и постобработки.Бизнес-инженеру необходимо предварительно обработать входные данные в тензоры и передать их в TensorFlow Serving для расчета модели, а затем выполнить постобработку результатов расчета модели. Логика предобработки и постобработки очень важна для стратегии алгоритма, а итерации относительно часты.Эта часть тесно интегрирована с моделью и больше подходит для студентов, изучающих алгоритмы.Если она реализована инженерной стороной, Студенты-инженеры просто реализуют алгоритм, разработанный студентами.Логика и связь слишком серьезны, эффективность итерации низкая, и легко вызвать несоответствие между дизайном и конкретной реализацией, что приведет к онлайн-авариям.
Чтобы решить вышеуказанные проблемы и предоставить пользователям более удобную и простую в использовании платформу алгоритмов, платформа Turing построила единую структуру онлайн-сервиса Iterate без сложных взаимодействий с алгоритмами и инженерией.
Здесь мы расширяем определение алгоритма.Алгоритм (также называемый стратегией алгоритма) в этой статье можно понимать как комбинационную функцию: y=f1(x)+fi(x)+…+fn(x), где fi( x) Это может быть вычисление правил, модельное вычисление (машинное обучение и глубокое обучение) или вычисление немодельного алгоритма (например, генетический алгоритм, оптимизация исследования операций и т. д.). Корректировку любого комбинированного фактора в комбинированной функции (например, изменения входных и выходных данных модели, изменения типа модели или корректировки правил) можно рассматривать как итерацию версии алгоритма. Итерация алгоритма представляет собой циклический процесс: разработка алгоритма-онлайн-оценка эффекта-улучшение. Цель Turing OS — оптимизировать итеративную эффективность алгоритма.
3. Тьюринг ОС 1.0
3.1 Введение в Turing OS 1.0
Чтобы решить проблему повторного создания колес и отсутствия возможностей платформы в процессе разработки «режим дымохода», мы решили создать среду Turing OS 1.0. Платформа объединяет модули расчета модели, предварительной обработки и постобработки, а также инкапсулирует логику получения и предварительной обработки сложных функций, расчета модели и постобработки в структуре онлайн-сервиса Turing и предоставляет ее в виде SDK. Инженеры-алгоритмы разрабатывают персонализированную логику предварительной и последующей обработки на основе Turing Online Service SDK; бизнес-инжиниринг интегрирует Turing Online Service SDK и пакет алгоритмов и вызывает интерфейс, предоставляемый SDK, для расчета модели и расчета алгоритма.
С помощью Turing OS 1.0 мы решили проблему независимой разработки, итерации и повторного создания колес бизнес-партнерами, что значительно упрощает разработку алгоритмов и инженеров-разработчиков, а разработка косвенно вызывается через инфраструктуру онлайн-сервиса Turing. и расчет модели не взаимодействуют напрямую с алгоритмом, что также в определенной степени облегчает проблему связи между проектированием и алгоритмом.
Как показано на рис. 3, платформа онлайн-сервиса Turing на данном этапе объединяет следующие функции:
3.1.1 Приобретение признаков
- Благодаря агрегации функций, динамической группировке, локальному кэшированию и изоляции физических ресурсов на уровне бизнеса он обеспечивает высокую доступность и высокопроизводительные возможности онлайн-приобретения функций.
- Процесс приобретения функций настраивается с помощью пользовательского MLDL (языка определения машинного обучения), а процесс приобретения функций унифицирован для повышения удобства использования функций онлайн-сервиса.
- DLBox (Deep Learning Box) поддерживает размещение исходных векторизованных функций и моделей на одном узле для локальных вычислений, решая проблему производительности при вызове крупномасштабных данных в сценариях глубокого обучения, а также поддерживая высокую степень параллелизма при распределении и быструю итерацию алгоритма.
3.1.2 Расчет модели
- Поддерживает два режима развертывания модели: локальный и удаленный, соответственно развертывание моделей в кластерах локальных и выделенных онлайн-сервисов бизнес-сервиса; благодаря асинхронным параллельным вычислениям с несколькими машинами поддерживает неоднородность ресурсов ЦП/ГП и другими средствами, решает проблему производительности крупных расчет масштабной модели; решить проблему, заключающуюся в том, что одномашинная сверхкрупномасштабная модель не может быть загружена посредством сегментирования модели.
- С точки зрения расчета модели глубокого обучения, высокопроизводительная библиотека ускорения вычислений MKL-DNN и TVM, а также другие технологии оптимизации компиляции используются для дальнейшего повышения производительности логического вывода моделей глубокого обучения.
- Благодаря конфигурации ассоциации признаков модели и логике предварительной обработки, инкапсулированной MLDL, реализована автоматизация получения, обработки и сборки признаков, а также повышена эффективность итерации разработки модели.
3.1.3 Алгоритмический расчет
- Поддержка управления версиями алгоритмов, маршрутизация AB, поддержка динамического сбора моделей, функций и параметров, связанных с версиями алгоритмов, а также поддержка горячих обновлений моделей и параметров.
- Поддержка эксперимента AB и гибкого объема выпуска оттенков серого, а также реализация оценки эффекта эксперимента AB с помощью единого журнала отслеживания.
3.2 Наследие Turing OS 1.0
Turing OS 1.0 решает проблемы повторного создания колес, путаницы функций и отсутствия возможностей платформы для каждого направления бизнеса.Предоставляя комплексные платформенные услуги, она поддерживает сценарии крупномасштабного онлайн-прогнозирования алгоритмов и высокопроизводительных вычислений для каждого направления. бизнес-направление Meituan.Это заставляет студентов-алгоритмистов уделять больше внимания итеративной оптимизации самой стратегии алгоритма и повышает эффективность итерации алгоритма. Однако для вышеупомянутой проблемы трехсторонней связи инженерии, алгоритма и платформы нет хорошего решения, что в основном отражено в:
- Бизнес-проект статически зависит от пакета алгоритмов, пакет алгоритмов развертывается в бизнес-проекте, а пакет алгоритмов обновляется и итеративно запускается, требуется версия бизнес-проекта.
- Пакет алгоритма и бизнес-проект выполняются в одной и той же JVM. Хотя потребление одного RPC снижается, вычислительная производительность пакета алгоритма повлияет на производительность бизнес-проекта, а стабильность бизнес-проекта не поддается контролю. Расчет модели TensorFlow потребляет слишком много ресурсов ЦП, загрузка и переключение больших моделей потребляют память и другие проблемы.
- Поскольку функций, предоставляемых платформой Turing, становится все больше и больше, пакет Turing Online Service SDK становится все более и более раздутым.Бизнес-проекты должны обновлять Turing Online Service SDK для использования новых функций платформы Turing, но риск SDK для бизнес-проектов занимает много места и замедляет скорость развертывания бизнес-инжиниринга.
На основании вышеизложенного видно, что алгоритм, разработка и платформа Тьюринга сильно связаны, что приводит к множеству болевых точек в каждой из них, как показано на рисунке 4. Эти проблемы серьезно влияют на эффективность итерации алгоритма.Итеративное онлайн-тестирование алгоритма имеет длительный период построения и низкую эффективность:
- Болевые точки алгоритма: Итерация пакета алгоритмов сильно зависит от запуска бизнес-проекта, каждый релиз проекта требует полного цикла тестирования НИОКР, что является длительным процессом и низкой эффективностью.
- Инженерные болевые точки: Пакет алгоритма и бизнес-проект находятся в одной и той же JVM. Производительность расчета алгоритма повлияет на производительность службы бизнес-инжиниринга. В то же время бизнес-проект необходимо часто выпускать с итерацией пакета алгоритма. , а изменения могут касаться только обновления версии пакета алгоритмов.
- Болевые точки платформы Тьюринга: SDK Turing Online Service развертывается в бизнес-проектах, и трудно совместить версию и обеспечить совместимость.В то же время сложно продвигать новые функции Turing, а бизнес-инжинирингу необходимо обновить Turing Online Service. SDK.
Следовательно, алгоритм, разработка и платформа Тьюринга должны быть лучше разделены, что не только отвечает потребностям быстрой итерации алгоритма, но также отвечает требованиям стабильности со стороны бизнес-инженерии и обеспечивает взаимовыгодное сотрудничество.
4. Тьюринг ОС 2.0
В ответ на проблему высокой связи алгоритмов, разработки и платформы Тьюринга в среде Turing OS 1.0 мы разработали среду Turing OS 2.0. Цель состоит в том, чтобы решить проблему связи между алгоритмами, разработкой и платформой Тьюринга, чтобы итерация алгоритма не зависела от выпуска проекта, новые функции платформы Turing запускаются без необходимости обновления SDK для бизнес-инжиниринга, что еще больше повышает эффективность итерации алгоритма и инженерной разработки.
Сосредоточившись на цели разделения алгоритмов, проектирования и платформы Turing, в среде Turing OS 2.0 мы спроектировали и разработали такие функции, как среда горячего развертывания подключаемого модуля пакета алгоритмов, канал данных алгоритма и структура оркестрации алгоритмов для поддержки алгоритмов самообслуживания. итерация онлайн. В то же время мы спроектировали и разработали платформу проверки алгоритмов, объединяющую дренаж песочницы, воспроизведение в реальном времени, стресс-тестирование производительности и отладочное тестирование, чтобы обеспечить высокую производительность, правильность и стабильность стратегий алгоритмов. Платформа Turing OS 2.0 разделяет алгоритм, разработку и платформу Тьюринга и реализует соответствующие замкнутые циклы алгоритма и инженерной итерации. Весь процесс большинства итераций алгоритма не требует участия инженеров, занимающихся исследованиями и разработками, и инженеров-испытателей.Инженеры-алгоритмы могут выполнять итеративный запуск стратегий алгоритмов на уровне часа; благодаря возможностям Turing OS 2.0 эффективность разработки алгоритмов и итераций был значительно улучшен.
Отличительные особенности Turing OS 2.0 заключаются в следующем:
- Стандартизированный упрощенный SDK: бизнес-инженерия должна полагаться только на облегченный Turing OS SDK без частых обновлений, что снижает сложность инженерного конечного доступа и отделяет бизнес-инжиниринг от платформы Turing.
- Плагин алгоритма: Самостоятельно разработанная платформа подключаемых модулей алгоритма Тьюринга, которая поддерживает горячее развертывание пакета алгоритма в качестве подключаемого модуля в службе ОС Тьюринга, развязку алгоритма и разработки; несколько версий нескольких пакетов алгоритмов могут быть развернуты в службе ОС Тьюринга, каждый пакет алгоритма Иметь независимые ресурсы пула потоков.
- канал данных: В некоторых сложных сценариях алгоритма стратегия алгоритма также должна полагаться на завершение бизнес-проекта: 1) данные получаются внутри алгоритма, а результат может быть получен только через интерфейс вызова бизнес-проекта, а затем передан в алгоритм 2) Алгоритм вызывается внутри бизнес-проекта.Передача проекта вызывает Алгоритм A и Алгоритм B одновременно. Чтобы решить две вышеупомянутые проблемы, мы предлагаем концепцию канала данных, чтобы сам алгоритм имел возможность получать данные независимо, а не все данные, которые должны быть получены бизнес-инжинирингом, а затем прозрачно переданы в алгоритм.
- Оркестрация алгоритмов: несколько алгоритмов объединяются в направленный ациклический граф (DAG) последовательным или параллельным образом, что можно рассматривать как схему алгоритма; абстракция и осаждение бизнес-алгоритмов, соответствующие новой архитектуре, представляют собой комбинацию и организацию алгоритмов. , Оркестрация еще больше расширяет возможности онлайн-бизнеса и итерации алгоритмов, еще больше повышает эффективность итерации бизнес-алгоритмов и еще больше разделяет алгоритмы и разработку.
- дренаж песочницы: Песочница Turing — это служба, которая физически изолирована от ОС Turing, но имеет полностью согласованную операционную среду.Трафик, проходящий через песочницу, не окажет никакого влияния на онлайн-сервисы, песочница может проверять правильность логики алгоритма и оценивать вычисления алгоритма. y повысить эффективность процесса тестирования НИОКР.
- Воспроизведение по Тьюрингу и Unified Burial: В процессе расчета алгоритма и расчета модели будет сгенерировано много важных данных (стратегии алгоритма, модели, функции, параметры, каналы данных и другие связанные данные).Такие модули, как осушение песочницы и стресс-тестирование производительности, обеспечивают основу для важных данных. Чтобы лучше автоматически записывать, хранить и использовать эти данные, мы разработали платформу воспроизведения в реальном времени и унифицированные закопанные точки.
- Стресс-тест производительности: ОС Turing интегрирует возможности полнофункциональной системы нагрузочного тестирования Meituan Quake, повторно использует данные о трафике, собранные унифицированной платформой воспроизведения, для создания запросов и проводит нагрузочное тестирование в песочнице, где развернута новая версия пакета алгоритмов, чтобы гарантировать стратегия итеративного алгоритма, производительность и стабильность.
Далее будут представлены вышеупомянутые функции и функции, а также показано, как Turing OS 2.0 решает болевые точки трехстороннего соединения алгоритма, разработки и платформы Turing.
4.1 Стандартизированный облегченный SDK
Чтобы решить проблему связи между бизнес-инжинирингом и платформой Turing, то есть SDK Turing Online Service развернут в бизнес-инжиниринге, а версия SDK трудно конвергентна, мы в основном фокусируемся на том, чтобы SDK был легким, простой в доступе, стабильный и масштабируемый, безопасный и надежный SDK Turing Online Service был разделен и преобразован в нескольких аспектах:
- SDK облегченный: Оригинальная логика Turing OS SDK встроена в службу Turing OS, и предоставляется только простой и общий интерфейс пакетного прогнозирования; SDK не нужно раскрывать слишком много деталей, связанных с алгоритмом, маршрутизацию версии алгоритма, в режиме реального времени / в автономном режиме. получение функций, расчет модели и т. д. — все это скрыто внутри ОС Turing. Облегченный SDK интегрирует настраиваемую маршрутизацию Turing OS.Бизнес-стороне не нужно обращать внимание на то, в каком кластере Turing OS развернут пакет алгоритма, и он полностью прозрачен для пользователя.
- Простой и легкий доступ: Обеспечьте унифицированный и общий интерфейс Thrift для расчета алгоритма и используйте Protobuf/Thrift для определения ввода и вывода алгоритма. По сравнению с текущим интерфейсом определения классов Java преимущество заключается в том, что гарантируется совместимость; после того, как интерфейс Protobuf определен, алгоритмы и проекты могут выполняться самостоятельно Разработка кода.
- Масштабируемость: Версия облегченного SDK стабильна, и нет необходимости многократно обновлять инженерную часть, Protobuf естественно поддерживает сериализацию, и на этом можно основывать последующее копирование трафика, воспроизведение и закапывание точек.
- высокая производительность: Для сценариев с высокой доступностью, таких как пакетное прогнозирование для пользователей стороны C, мы разработали асинхронную пакетную обработку и высокопараллельные методы для повышения производительности алгоритмических вычислений; однозадачные вычисления занимают много времени, потребляют много ресурсов ЦП и требуют высоких требований. доступных сценариев, таких как планирование пути в разных городских районах, мы разработали оптимальный механизм повторных попыток для быстрого сбоя на стороне клиента, чтобы обеспечить высокую доступность и сбалансировать вычислительные ресурсы Turing OS.
- Безопасный и надежный: для сценариев, в которых одна ОС Turing развертывает несколько пакетов алгоритмов, она обеспечивает изоляцию ресурсов на уровне пула потоков.Для разных пакетов алгоритмов каждого бизнес-направления он вертикально разделен в соответствии с бизнес-сценариями, обеспечивая изоляцию ресурсов кластера на физическом уровне и добавление механизма понижения рейтинга автоматического выключателя, чтобы обеспечить стабильность и надежность процесса расчета.
4.2 Плагин алгоритма
Стандартизировав и облегчив Turing OS SDK, мы решили проблему связи между бизнес-инжинирингом и платформой Turing. Благодаря преобразованию службы Turing OS проблема связи между алгоритмами и бизнес-инжинирингом решена. Тем не менее, болевые точки связи между алгоритмом и платформой Тьюринга все еще существуют, и болевые точки увеличиваются: итеративный запуск алгоритма зависит от сервисного выпуска ОС Тьюринга и не может достичь цели трехстороннего разделения.
Чтобы решить проблему связи между алгоритмом и платформой Тьюринга и еще больше повысить итеративную эффективность стратегии алгоритма, наша следующая дизайнерская идея состоит в том, чтобы сделать алгоритм подключаемым модулем и ОС Тьюринга контейнеризированными: использовать пакет алгоритма как подключаемый модуль и разверните его в Turing OS, выпуск пакета алгоритма не требует выпуска Turing OS или даже перезапуска Turing OS, как показано на рисунке 7.
- Плагин алгоритма: мы разработали платформу подключаемых модулей алгоритма ОС Turing, которая поддерживает развертывание пакетов алгоритмов в службах ОС Turing в виде подключаемых модулей; конкретная схема реализации заключается в настройке загрузчика классов алгоритмов ClassLoader, а разные загрузчики классов загружают разные версии пакетов алгоритмов.Загружайте пакеты алгоритмов с несколькими версиями и заменяйте указатели для реализации горячего развертывания пакетов алгоритмов.
- Контейнеризация Turing OS: ОС Turing действует как подключаемый контейнер, загружает различные версии алгоритма пакета алгоритмов, выполняет маршрутизацию версии алгоритма и расчет стратегии алгоритма, процесс ОС Turing после преобразования контейнеризации: 1) Если версия алгоритма не требует новых параметров, проект И терминал, и Turing OS не нужно выпускать; 2) Основная работа бизнес-инжиниринга — передать параметры в алгоритм, и логика проста.Если входные параметры не меняются, нет необходимости выпустить версию, а ритм выпуска пакета алгоритма контролируется сам собой.
4.3 Канал данных
С помощью вышеуказанных методов мы решаем проблему соединения алгоритма, разработки и платформы Тьюринга в итерации выпуска. Однако, в дополнение к вышеупомянутой связи, есть также некоторые сложные сценарии алгоритма.Существует связь между алгоритмом и бизнес-проектом, что в основном отражается в следующих двух точках данных бизнес-проекта:
- Получить данные внутри алгоритма: В настоящее время результаты получаются через интерфейс вызова бизнес-инженерии, а затем передаются в алгоритм, например, некоторые данные интерфейса службы, данные распределенного кэша KV и т. д. Необходимо разработать и итеративно запустить как алгоритм, так и бизнес-инжиниринг.
- Алгоритм Алгоритм внутреннего вызова: В настоящее время это реализуется путем одновременного вызова алгоритма A и алгоритма B посредством бизнес-инжиниринга и написания логики передачи.Например, входные данные алгоритма A должны использовать результат алгоритма B или результаты алгоритма A. Для получения конечного результата необходимо объединить алгоритм B. Эти операции обычно передаются бизнес-инжинирингу. Необязательным решением является объединение алгоритмов A и алгоритмов B в огромный алгоритм, но недостатком этого решения является то, что оно увеличивает затраты на исследования и разработку алгоритмов A и алгоритмов B для независимого проведения экспериментов AB и шкалы серого.
Чтобы решить два вышеуказанных вопроса, мы предлагаем концепцию канала данных, чтобы сам алгоритм имел возможность получать данные автономно. Алгоритм внутри алгоритма может поддерживать канал данных с помощью аннотаций, предоставляемых ОС Turing.Интерактивный интерфейс между алгоритмом и бизнес-проектом должен передавать только некоторые ключевые параметры и контекстные данные, а алгоритм внутренне собирает параметры, необходимые для канал данных. После преобразования канализации данных интерфейс алгоритма еще больше упрощается, связь между алгоритмом и проектом еще больше уменьшается, и проблема вызова алгоритма внутри алгоритма может быть решена с помощью алгоритма, описанного ниже.
4.4 Оркестровка алгоритмов
Полный процесс расчета алгоритма включает в себя часть расчета алгоритма, а также логику предварительной обработки входных данных и логику постобработки результата расчета и т. д. Расчет алгоритма может выполняться N раз при расчете правила, N раз при расчете модели (машинное обучение и глубокое обучение и т. д.), или расчет немодельного алгоритма (например, генетический алгоритм, оптимизация операционных исследований и т. д.), или комбинация нескольких типов алгоритмов. Мы абстрагируем эту вычислительную логическую единицу с независимым вводом и выводом как оператор, который можно упорядочить и повторно использовать.Два основных типа операторов следующие:
- Оператор расчета модели: То есть механизм расчета модели выполняет расчет модели. Мы поддерживаем два режима расчета модели: локальный и удаленный. В режиме удаленного расчета модель может быть развернута в разных кластерах модели. Оператор является дополнительной инкапсуляцией расчета модели. Такие функции, как выбор и маршрутизация модельного кластера, прозрачны для пользователей, и инженерам-алгоритмам их не нужно воспринимать, и мы будем динамически настраивать их в соответствии с общей вычислительной производительностью.
- Оператор алгоритмического расчета: то есть механизм вычисления алгоритма в ОС Turing выполняет расчет стратегии алгоритма.Различные подключаемые модули алгоритма могут быть развернуты в разных ОС Turing, а также инкапсулируют функцию маршрутизации кластера ОС Turing, которая прозрачна для пользователей.
Несколько операторов объединяются в направленный ациклический граф (DAG) последовательным или параллельным образом, образуя расположение операторов.В настоящее время у нас есть два способа реализации расположения операторов:
- Канал данных алгоритма: Алгоритмические вычислительные механизмы в различных операционных системах Тьюринга вызывают друг друга или алгоритмические вычислительные механизмы вызывают модельные вычислительные механизмы.Канал данных алгоритма представляет собой особый метод реализации оператора.
- Логика основного управления алгоритмом: мы извлекаем слой общей логики управления алгоритмом в верхнем уровне вызова алгоритма, чтобы соответствовать сложным сценариям алгоритма и многочисленным зависимостям алгоритма Общая логика управления алгоритмом реализуется инженером-алгоритмом в пакете алгоритма через общую логику управления алгоритмом Функция, инженеры-алгоритмы могут произвольно устанавливать взаимосвязь между алгоритмами, чтобы еще больше отделить алгоритмы от разработки.
С точки зрения инженера-алгоритма, ОС Turing предоставляет услуги в виде строительных блоков, которые, объединяя независимые подфункции и операторы, соединяются последовательно и параллельно стандартным образом для формирования онлайн-системы, отвечающей различным потребностям.
При такой архитектуре работа алгоритма в основном состоит из следующих трех частей: 1) инженер-алгоритм проводит абстракцию и моделирование бизнес-процессов; 2) инженер-алгоритм проводит независимую разработку и тестирование операторов; 3) инженер-алгоритм проводит вычисления на основе абстракция бизнес-процесса Подустройство и композиция. Оркестрация операторов расширяет возможности бизнес-функций и итераций алгоритмов, а также повышает эффективность итераций бизнес-алгоритмов.
4.5 Мультимодальная интеграция
Как описано выше, Turing OS может развертывать несколько версий нескольких пакетов алгоритмов в качестве контейнера и поддерживает горячее развертывание пакетов алгоритмов. Turing OS разделяет бизнес-инжиниринг, алгоритмы и трехстороннюю связь Тьюринга с помощью таких функций, как горячее развертывание подключаемых модулей и оркестровка, что значительно повышает итеративную эффективность алгоритма. Для дальнейшего удовлетворения бизнес-требований мы предлагаем два режима интеграции развертывания ОС Turing: автономный режим и встроенный режим.
Автономный
В автономном режиме Turing OS развертывается независимо от бизнес-сервисов. Бизнес-сервисы вызывают алгоритмы через упрощенный SDK. Облегченный SDK Turing инкапсулирует настраиваемую маршрутизацию Turing OS, а Thrift-RPC вызывает Turing. Логика службы ОС.
Встроенный (встроенный режим)
В некоторых сложных сценариях с высокой степенью параллелизма и высокими требованиями к производительности к режиму интеграции и производительности нашей ОС Turing предъявляются более высокие требования. В режиме независимого развертывания каждый расчет алгоритма бизнес-инжиниринга потребляет RPC, поэтому мы внедрили новый режим интеграции Turing OS-Embedded. Во встроенном режиме мы предоставляем пакет кода платформы ОС Turing для внешнего мира, а бизнес-сторона интегрирует пакет структуры ОС Turing в свою собственную инженерную службу.Бизнес-служба также выступает в качестве контейнера ОС Turing или вызывает алгоритмы через упрощенную SDK Алгоритмические вычисления выполняются локально в бизнес-сервисе. Особенности встроенной ОС Turing заключаются в следующем:
- Благодаря интеграции кода платформы Turing OS бизнес-проект наследует функции подключаемого модуля пакета алгоритмов и горячего развертывания, а также имеет двойные атрибуты бизнес-функций и контейнеров Turing OS.
- Бизнес-проект не зависит напрямую от пакета алгоритма, но динамически управляется платформой Turing OS, а пакет алгоритма развертывается в горячем режиме с помощью подключаемого модуля, что позволяет отделить алгоритм от проекта.
- Бизнес-инжиниринг напрямую выполняет расчет локального алгоритма, что снижает потребление RPC и сериализации вызовов алгоритма, а также повторно использует ресурсы сервера бизнес-инжиниринга, еще больше снижая потребление ресурсов кластера и улучшая их использование.
При развертывании подключаемого модуля пакета алгоритмов бизнес-проект, интегрированный во встроенном режиме, будет использоваться в качестве контейнера для загрузки соответствующего пакета алгоритма и маршрутизироваться на локальный компьютер для расчета алгоритма, как показано на рис. 9 ниже.
Режимы Standalone и Embedded имеют свои преимущества и недостатки, и ни один из них не имеет абсолютного преимущества, при их использовании вам нужно выбирать в соответствии с конкретными бизнес-сценариями. Сравнение двух режимов выглядит следующим образом:
Режим развертывания | преимущество | недостаток | Применимая сцена |
---|---|---|---|
Standalone | Степень связанности ниже, а бизнес-сторона полагается только на облегченный SDK Turing. | Необходимо построить кластер Turing OS, занимающий ресурсы компьютера; есть накладные расходы на вызовы RPC | Подходит для крупномасштабных вызовов и бизнес-сценариев, требующих распределенных асинхронных параллельных вычислений с несколькими машинами. |
Embedded | Повторное использование бизнес-машин, высокий уровень использования ресурсов, меньше вызовов RPC, высокая производительность | Невозможно полностью реализовать многомашинный асинхронный распределенный параллелизм, только одномашинный параллелизм. | Подходит для небольших пакетных вызовов и бизнес-сценариев, требующих высокой производительности RT для одного вызова. |
4.6 Песочница Тьюринга
После того, как ОС Turing поддерживает горячее развертывание подключаемых модулей алгоритмов, эффективность итерации алгоритма значительно повышается по сравнению с предыдущим, а также значительно увеличивается онлайн-свобода разработчиков алгоритмов без необходимости планировать разработку и тестирование бизнес-инженерии. и тестирование, однако новая проблема:
- До итеративного запуска алгоритма невозможно предварительно просчитать трафик по лиду, а эффект от алгоритма оценивается перед запуском, проверить перед запуском сложно, а эффективность тестирования инженера-алгоритма низкий.
- В настоящее время трудно оценить и проверить онлайн в режиме реального времени, а для онлайн-оценки производительности и эффективности стратегий алгоритмов не хватает инструментов автоматизации процессов.
- Частый итеративный запуск также является серьезной проблемой для службы Turing OS и стабильности бизнеса.
Необязательным решением в то время было сначала развернуть стратегию алгоритма, сократить небольшой трафик в градациях серого, а затем проанализировать влияние единого скрытого журнала для оценки алгоритма. Недостаток этого решения в том, что эффект алгоритма нельзя оценить до выхода в онлайн, и проблема обнаруживается слишком поздно. Если есть проблема с функцией оттенков серого, это повлияет на онлайн-бизнес и приведет к серьезным последствиям. В ответ на вышеупомянутые проблемы в процессе проверки перед запуском мы разработали песочницу Тьюринга, чтобы реализовать полносвязный эксперимент по моделированию алгоритма, не влияя на стабильность онлайн-бизнеса.
Песочница ТьюрингаЭто служба, которая физически изолирована от службы Turing OS, но имеет полностью согласованную операционную среду, поэтому трафик, проходящий через песочницу, не окажет никакого влияния на онлайн-бизнес. Как показано на рисунке 10 ниже, онлайн-трафик перенаправляется в песочницу онлайн-среды Конфигурации среды и данные ОС Turing и песочницы Turing одинаковы (версия, параметры, функции, модели и т. д.). Новая версия алгоритма (версия V3 пакета алгоритмов 1 на рис. 10 ниже) сначала развертывает песочницу для проверки правильности алгоритма путем слива трафика, а также может сливать трафик в песочнице для проверки алгоритма. представление. Являясь автоматизированным инструментом для процесса проверки алгоритмов, песочница Тьюринга повышает эффективность тестирования алгоритмов и дополнительно повышает итеративную эффективность версий алгоритмов.
4.7 Единая платформа воспроизведения
Чтобы проанализировать эффект алгоритма и устранить проблемы, когда он ненормальный, нам необходимо записать входные данные, выходные данные, функции и модели, используемые в процессе расчета алгоритма, чтобы восстановить сцену. Однако в процессе расчета алгоритма генерируется большой объем данных, что создает проблемы с хранением и записью:
- Большой объем данных: запрос может соответствовать нескольким вычислениям модели алгоритма и часто использовать расширенные значения функций, в результате чего промежуточные данные расчета в несколько раз превышают объем запроса.
- высокая степень параллелизма: Централизованный сбор и хранение данных, генерируемых каждой службой Turing OS, и необходимость иметь возможность передавать сумму трафика QPS в пиковые периоды этих служб.
- Сильная настройка: ОС Turing использует десятки различных алгоритмов, их форматы запросов и ответов сильно различаются, а такие данные, как функции и источники данных, еще сложнее унифицировать.
Чтобы лучше записывать и хранить эти важные данные, ОС Turing спроектировала и разработала унифицированную платформу воспроизведения и предоставила решения для вышеуказанных проблем, как показано на рисунке 11 ниже:
- ES и HBase объединены для хранения и воспроизведения данных, в которых ES хранит ключевые поля индекса, а HBase хранит полные записи данных, полностью используя преимущества обоих и отвечая требованиям быстрого поиска запросов и хранения больших объемов данных.
- Используйте функцию DynamicMessage Google Protobuf для расширения исходного формата Google Protobuf, динамической поддержки определения формата данных воспроизведения и сборки данных, а также поддержки синхронизации с индексом ES, что не только обеспечивает высокую производительность сериализации и хранения, но и гарантирует целостность данных каждого алгоритма Эффективный доступ.
- Учитывая, что своевременность этих запросов данных невысока, очередь сообщений используется для разделения отправки и хранения, чтобы добиться эффекта уменьшения пиков трафика и заполнения впадин.Каждый алгоритм на платформе Turing OS автоматически получает доступ к воспроизведению через клиент воспроизведения. .
4.8 Стресс-тест и настройка производительности
Благодаря песочнице Turing и унифицированному воспроизведению ОС Turing имеет возможность быстро проверять правильность данных алгоритма, но в ней отсутствуют автоматизированные инструменты для анализа производительности алгоритмических вычислений. Turing OS интегрирует полнофункциональную систему измерения напряжения Quake компании (подробнее о представлении Quake см.Практика полноценной платформы стресс-тестирования (Quake) в Meituan"), повторно использовать данные о трафике, собранные унифицированной платформой воспроизведения, для построения запросов и проводить нагрузочные тесты в операционной системе Turing или в песочнице Turing с развернутой новой версией пакета алгоритмов.
Во время стресс-теста записывается производительность алгоритма в различных сценариях QPS, включая показатели приложения, такие как ЦП и память, и данные о времени отклика, такие как задержка TP и скорость тайм-аута, которые сравниваются с фактической производительностью в сети, историческими данными. данные стресс-тестов и обязательства по обслуживанию. Сравните и проанализируйте SLA алгоритма, чтобы предоставить отчеты о стресс-тестах и рекомендации по оптимизации. Если есть очевидные проблемы с производительностью, онлайн-процесс пакета алгоритма будет заблокирован. Turing OS также подключена к внутренней платформе Meituan для диагностики и оптимизации производительности Scalpel, которая может генерировать аналитические отчеты о стеках потоков и горячих точках производительности в процессе стресс-теста, помогать пользователям быстро обнаруживать узкие места в производительности и давать рекомендации по конкретным направлениям оптимизации.
5. Результаты построения Turing OS 2.0
5.1 Алгоритм процесса НИОКР
Благодаря преобразованию подключаемых модулей алгоритма и возможностям динамического горячего развертывания ОС Turing мы разделили алгоритм, разработку и платформу Turing, реализовали замкнутый цикл алгоритма и инженерной итерации, повысили эффективность исследований и разработок и значительно сократили онлайн-цикл. итерации алгоритма:
- Во время итерации модели, изменения характеристик и итерации стратегии алгоритма инженеры-алгоритмы могут самостоятельно завершить разработку и тестирование всей связи без вмешательства инженеров-исследователей и инженеров-испытателей; в то же время пакеты алгоритмов могут быть развернуты независимо, без какого-либо обслуживания Инженерная сторона и сторона продукта могут обращать внимание на изменения соответствующих показателей.
- Когда связаны новые бизнес-сценарии и новые алгоритмические стратегии, алгоритм и разработка должны разрабатываться совместно.После того, как интерфейс Protobuf определен, инженеры-алгоритмы и инженеры, занимающиеся исследованиями и разработками, могут независимо разрабатывать коды и подключаться к сети по отдельности.
Благодаря использованию автоматических инструментов, таких как проверка дренажа песочницы, стресс-тестирование и диагностика производительности, предоставляемые ОС Turing, эффективность итерации стратегии алгоритма еще больше повышается, а онлайн-цикл итерации алгоритма значительно сокращается с дней до часов. Инженеры-алгоритмы самостоятельно разрабатывают, затем развертывают ОС Turing для самотестирования и отладки, развертывают песочницу для тестирования дренажа, оценивают производительность эффекта с помощью платформы стресс-тестирования и, наконец, самостоятельно развертывают и выходят в онлайн. Время от времени используются различные средства для обеспечения производительности алгоритмов и стабильности работы Turing OS.
5.2 Обзор использования Turing OS 2.0
Turing OS (то есть Turing Online Service Framework 2.0) находится в разработке более полугода, общий обзор таков: на данный момент построено 20+ кластеров Turing OS, 25+ пакетов алгоритмов и 50+ алгоритмов. Пакеты алгоритмов развертываются и запускаются более 200 раз в месяц, каждый день поддерживаются десятки миллиардов расчетов стратегии алгоритмов. Работая на ОС Turing, большая часть процесса итерации алгоритма не требует участия инженеров-исследователей и инженеров-испытателей, а инженеры-алгоритмы могут выполнять итеративный запуск стратегий алгоритмов на уровне часа.
В настоящее время кластер Turing OS может содержать несколько пакетов алгоритмов для одного бизнес-направления или несколько пакетов алгоритмов поднаправлений для одного отдела. Пакеты алгоритмов и кластер Turing OS могут быть динамически связаны и динамически развернуты. Turing OS поддерживает бизнес. одновременно на уровне строки и изоляции физических ресурсов на уровне пакета алгоритмов. Для того, чтобы облегчить использование деловых сторон, мы предоставляем полный доступ к документам и видеокурсам. За исключением стороны платформы Turing для создания кластера Turing OS, любая бизнес-сторона может в основном создать свою собственную службу Turing OS в течение 1 часа. Мы также предоставляем документы с передовыми практиками и конфигурации настройки производительности, чтобы бизнес-стороны могли решить большинство проблем без руководства. В настоящее время мы создаем автоматизированные инструменты для работы и обслуживания, которые еще больше снижают порог доступа и стоимость эксплуатации и обслуживания Turing OS.
6. Резюме и перспективы на будущее
Конечно, идеальной платформы алгоритмов и инфраструктуры онлайн-сервисов алгоритмов определенно не существует, и у Turing OS еще есть много возможностей для улучшения. По мере того, как мы продолжаем исследовать онлайн-сервисы машинного обучения и глубокого обучения, будет появляться все больше и больше сценариев приложений, требующих поддержки ОС Turing.В будущем мы продолжим строить в следующих областях:
- Создавайте инструменты автоматизированной эксплуатации и обслуживания ОС Turing и инструменты автоматического тестирования, поддерживайте полуавтоматическую разработку алгоритмов и еще больше снижайте затраты на доступ к платформе, а также расходы на эксплуатацию и обслуживание.
- Дальнейшее совершенствование инфраструктуры Turing OS, улучшение возможностей поддержки алгоритма и поддержка работы в среде Spark.При повторении алгоритма правильность, производительность и эффективность функций нового алгоритма проверяются на основе массивных данных.
- Содействовать созданию полного графического движка Turing OS и предоставить графический инструмент оркестровки процессов и движок выполнения графов, абстрагируя общие компоненты алгоритмического бизнеса, расширяя возможности запуска бизнеса и итерации алгоритма, а также повышая эффективность итерации.
7. Об авторе
Yongbo, Ji Shang, Yanwei, Feifei и другие — все из группы платформы алгоритмов отдела распределительных технологий Meituan, ответственные за создание платформы Turing и другую связанную с этим работу.
8. Информация о наборе
Если вы хотите поближе познакомиться с платформой Turing и ОС Turing, присоединяйтесь к нам. Техническая команда Meituan по доставке ищет технических экспертов и архитекторов в области платформ машинного обучения, разработки алгоритмов и т. д., чтобы совместно решать задачи сложного бизнеса и большого параллельного трафика, создавать крупнейшую в отрасли сеть и платформу мгновенной доставки и приветствовать Meituan. доставка Эпоха комплексного и интеллектуального бизнеса. Заинтересованные студенты могут отправить свои резюме по адресу:houyongbo@meituan.com(Указать в теме письма: Техническая команда Meituan Delivery).
Прочтите другие сборники технических статей от технической команды Meituan
внешний интерфейс | алгоритм | задняя часть | данные | Безопасность | Эксплуатация и техническое обслуживание | iOS | Android | контрольная работа
|Ответьте на ключевые слова, такие как [акции 2020 г.], [акции 2019 г.], [акции 2018 г.], [акции 2017 г.] в диалоговом окне строки меню общедоступной учетной записи, и вы сможете просмотреть коллекцию технических статей технической группы Meituan в течение годы.
| Эта статья подготовлена технической командой Meituan, авторские права принадлежат Meituan. Добро пожаловать на перепечатку или использование содержимого этой статьи в некоммерческих целях, таких как обмен и общение, пожалуйста, укажите «Содержимое воспроизводится технической командой Meituan». Эта статья не может быть воспроизведена или использована в коммерческих целях без разрешения. Для любой коммерческой деятельности, пожалуйста, отправьте электронное письмо по адресуtech@meituan.comПодать заявку на авторизацию.