Модель машинного обучения CI / CD и теневая платформа

Авторы Куинн Зуо, Судхи Мурти и Нитин Шарма

Этот блог является первым из серии, в которой представлен всесторонний обзор теневой платформы машинного обучения (ML) для инфраструктуры непрерывной интеграции / непрерывного развертывания моделей (CI / CD), разработанной в PayPal для сквозного управления большая когорта моделей машинного обучения.

Введение

Платформа управления рисками - это самая большая производственная среда AI / ML в PayPal. Платформа управления рисками позволяет PayPal бороться с изощренными мошенническими атаками и киберпреступлениями в режиме реального времени. Платформа беспрепятственно обменивается информацией и контекстом на протяжении всего пути к покупке, собирая отзывы из нескольких точек взаимодействия с клиентами, чтобы постоянно улучшать лежащие в основе модели машинного обучения (ML) и глубокого обучения (DL).

Из-за нормативных требований (критичность, высокая точность и справедливость) этих моделей ML / DL, модели и зависимые функции должны пройти через модель конвейер CI / CD и быть протестированы на теневой платформе ML, прежде чем они будут выпущены в живая производственная среда. Теневая платформа машинного обучения, которую мы создали для обеспечения таких возможностей, называется Квокка - милое, дружелюбное и доступное существо.

Проблема в том, что мы не понимаем проблемы - Пол МакКриди

Прежде чем мы погрузимся в платформу, давайте начнем с истории. В 1959 году британский промышленник Генри Кремер выдвинул гипотезу о том, что самолет может летать, используя только силу тела пилота. Он предложил 50 000 фунтов стерлингов за первого человека, который построит такой самолет. Кроме того, он предложил еще 100 000 фунтов стерлингов за первый самолет с двигателями человека, который совершит перелет через Ла-Манш. Спустя 18 лет десятки команд пытались и потерпели неудачу, пока американский инженер-механик Пол МакКриди не решил принять вызов. Маккриди обнаружил, что люди потратили больше года на постройку самолета на основе предположений и теории без обоснования эмпирических тестов. Через несколько минут после того, как самолеты взлетят, работа, проделанная за годы работы, рухнет на землю.

Проблема в том, что мы не понимаем проблемы, - сказал Маккриди. Затем MacCready изменил процесс, чтобы обеспечить лучшее решение проблем. Он решил строить самолеты, которые можно было бы перестроить за часы, а не за месяцы. Таким образом, он мог продолжать перестраивать, перепроверять и заново учиться. Иногда Маккриди управлял тремя или четырьмя разными самолетами за один день. Через шесть месяцев Маккреди выиграл первый приз Кремера. Через год построенный им самолет перелетел через пролив.

Процесс, которому следовал MacCready, - это то, что Quokka делает для моделей мошенничества и зависимых функций. Разработчики моделей могут итеративно и непрерывно обучать, тестировать, развертывать и отслеживать (на предмет ухудшения модели) безопасным, быстрым, экономичным и поддерживаемым способом. Это позволяет избежать потери времени на построение теоретической высокопроизводительной модели в автономном режиме.

Контекст домена мошенничества

Разработка и поддержка конвейера CI / CD в сфере финансовых технологий сопряжена со своим набором проблем, которые можно решить с помощью такой платформы, как эта платформа. Такие области, как обнаружение мошенничества, сложны: нам необходимо идентифицировать динамические закономерности в разнородных регионах, устройствах, группах населения и сценариях использования. Такая неоднородность может создать серьезные проблемы для моделирования стабильности производительности, поскольку данные обучения и несвоевременные или проверенные данные о населении могут систематически расходиться с течением времени. В некоторых контекстах и ​​в различной степени неоднородность в распределении данных и временные изменения также применимы к другим областям, таким как кредитный риск (например, оценка просрочки платежа) и маркетинг (например, прогноз оттока клиентов).

Представления с учетом времени (такие как функции, взвешенные по времени, чтобы подчеркнуть важность последних данных по сравнению с более ранними данными) часто вводятся как функции для представления развивающихся аспектов шаблонов мошенничества и, таким образом, включают временную информацию, которая может повысить производительность модели. Обновление весов модели с использованием самых последних данных для изучения эволюционирующих распределений способствует дальнейшей устойчивости модели.

Однако построение представлений с учетом времени в неконтролируемом контексте - это неограниченный процесс с множеством субъективных соображений, таких как время-продолжительность для агрегатов, диапазон констант и математические преобразования. Такая ручная разработка функций приводит к значительному увеличению пространства функций и увеличивает накладные расходы на итеративный процесс выбора функций в будущем. Помимо этого, источник истины (или признак мошенничества) требует разного времени для созревания, в зависимости от типа способа действия мошенничества.

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

Мотивация платформы

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

Во-первых, модели и зависимые функции были объединены как часть образа сборки, а график выпуска был исправлен. Если разработчику модели не удавалось выпустить обученную модель в конкретном выпуске, ему / ей нужно было дождаться следующего выпуска, который обычно длился еще пару недель.

Во-вторых, в процессе выпуска разные команды выполняли множество действий вручную. Это заставило инженеров по выпуску ML не только хорошо разбираться в различных внутренних программных платформах, но и в сложных бизнес-процессах.

В-третьих, модель может иметь оценку модели или дрейф данных, когда она используется для прогнозирования в реальном времени в процессе производства. Это связано с тем, что автономное обучение и производственные данные в реальном времени часто имеют проблемы с четностью данных. Модель иногда дает сбой во время выполнения или не может завершить выполнение в рамках требуемого SLA в реальном времени, что вызывает проблемы в системе выполнения. Когда это произошло, необходимо было выполнить откат всего живого пула, а выпущенной модели нужно было снова пройти весь жизненный цикл разработки модели. Если бы это была совершенно новая модель, время ее окупаемости могло бы занять до нескольких месяцев, прежде чем модель могла бы быть полностью адаптирована к бизнесу. Если бы это была новая технология моделирования, это могло бы занять еще больше времени.

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

  • Выпуск, тестирование и развертывание модели должны быть такими же простыми, как выпуск кода разработчика программного обеспечения через CI / CD, и с той же дисциплиной и строгостью.
  • Платформу необходимо автоматизировать с возможностью самообслуживания. Разработчики моделей, которым необходимо выпустить модель, могут использовать свои собственные модели через пользовательский интерфейс самообслуживания / UX.
  • Нам нужно создать теневую среду, которая почти идентична нашей производственной среде, за исключением того, что оценки модели регистрируются только без участия в принятии решений. Эта теневая система не только может использоваться для тестирования различных моделей в любой момент времени, чтобы ускорить разработку модели безопасным и быстрым способом, но также может одновременно тестировать несколько версий одной и той же модели экономичным и поддерживаемым способом.

Архитектура системы

Теневая платформа машинного обучения была создана, чтобы состоять из приложений переднего уровня на Node.js и React.js, приложений среднего уровня на Python и Java, Hadoop / BigQuery для хранения аналитических данных, Aerospike для кэширования и многих компонентов с открытым исходным кодом. такие как HDFS, ONNX, TensorFlow и MLFlow.

Платформа имеет три подкомпонента, которые объединены вместе, чтобы сформировать рабочую теневую среду E2E следующим образом:

A) Рабочие процессы самообслуживания UI / UX для запуска аудита обученной модели от магазина до логического вывода в реальном времени. UI / UX позволяет моделисту / исследователю планировать развертывание в любое время по выбору. Платформа также обеспечивает планирование через интерфейсы API.

Б) Автоматизированный конвейер CI / CD, который может упаковать артефакт в производственный стек и развернуть его на всех этапах производства. Автоматизированная система CI / CD может предоставлять уведомления о состоянии через определенные промежутки времени в ходе развертывания.

C) Вычислительная среда аудита обозначена как «ТЕНЬ», отделенная от производственной вычислительной среды для выполнения LIVE-тестирования моделей риска. Пул аудита соответствует набору компьютеров, которые работают параллельно и имитируют производственный пул, обрабатывая выборку трафика домена, который настраивается и направляется из производственного пула. Пул аудита (Quokka) получает те же контекстные данные и обращается к тем же производственным базам данных. Однако пул не участвует в процессе вынесения решения (принятия решения), такого как определение анализа риска, в механизмах правил. Пул аудита генерирует важные данные для выполнения автономного анализа аудита, а также для проверки выполнения модели в соответствии с SLA.

Эта теневая платформа машинного обучения обеспечивает двойной режим работы, в котором можно итеративно упаковывать, развертывать и проверять модели в тестовом режиме. После прохождения аудита и выполнения SLA использование одного и того же конвейера позволило выпускать проверенную модель.

Модель конвейера CI / CD

Итеративное представление модели конвейера CI / CD приведено ниже, при этом передний уровень организует проверку запроса на изменение, а затем передает аналитические артефакты в производство для каждого выпуска по расписанию.

Ниже приведено представление жизненного цикла аналитического артефакта, доставляемого через хранилище модели или интеграцию API в итеративный рабочий процесс CI / CD. После проверки и соответствия критериям выпуска артефакт машинного обучения переходит в производственный пул.

Пользовательские интерфейсы и API самообслуживания

UI / UX самообслуживания автоматизирует и оптимизирует рабочие процессы модели CI / CD, как показано ниже. Некоторые из функций нашего UI / UX самообслуживания включают в себя:

A) Календарь запросов на изменение с возможностью резервирования в теневой среде для каждого члена группы по науке о данных с настраиваемой продолжительностью для тестирования аналитического артефакта. «ЖЕЛТЫЙ» указывает на содержимое «ТЕСТ», а «ЗЕЛЕНЫЙ» указывает на содержимое «ВЫПУСКА». Контент «RELEASE» подвергся итеративному развертыванию в среде SHADOW в режиме «TEST» и соответствует критериям выпуска для отправки в производственные пулы.

B) Рабочий процесс представления для настройки трафика выборки из производственного пула для аудита для определенных (черные ящики для маскировки конфиденциальной информации) контрольных точек, где развертываются аналитические артефакты. Контрольные точки - это точки взаимодействия с клиентом, и каждая точка соприкосновения требует принятия решения о рисках. Помимо измерения трафика на существующих контрольных точках рисков, рабочие процессы самообслуживания позволяют подключать новые контрольные точки рисков, интегрированные в стек.

C) Набор API для доставки артефактов, аналитических данных для исследований и управления жизненным циклом модели - подмножество списка API, как показано ниже. Приведенный ниже список не является исчерпывающим и представляет собой представление возможностей, доступных в среде SHADOW.

Системные показатели

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

Выведение модели должно быть в рамках предписанного SLA и иметь корреляцию с ATB службы хостинга. Такие показатели, как P99 и время загрузки данных для вывода модели, являются жизненно важными данными. Аналитическая точность и распределение оценок коррелируют с эффективностью выполнения правил стратегии (бизнес-политики).

«ТЕНЬ» облегчает считывание этих показателей и обеспечивает плавный переход модели от теневой к производственной. Графики представления модели показывают выполнение и распределение баллов.

Исполнение модели P99

Распределение оценок модели

Масштабируемость и внедрение

В отсутствие теневой платформы машинного обучения скорость запросов на изменение для быстрого обновления моделей и аналитических артефактов была бы ограничением. Включение инструмента MLOps между годом с ручным переходом к году с помощью MLOps указывает на скачок в производительности и ускорение внедрения решений для защиты от мошенничества. Обратите внимание, что PR означают запросы на вытягивание или запросы на изменение к стеку хостинга ML / DL.

С момента появления Quokka количество специалистов по анализу данных (по подсчетам PR) росло от квартала к кварталу на 50%. Время разработки и развертывания модели сократилось на 80%. Не было отката системы из-за сбоя выполнения модели. Производительность пользователей увеличилась в 3 раза. Без дополнительных инженерных ресурсов мы расширяем зону обслуживания по оперативной поддержке с 8x5 до 24x7.

Будущая работа

В последующих блогах мы представим обзор того, как разрабатывается конвейер CI / CD, чтобы предоставить функции метаобучения для эффективного и упреждающего повторного изучения коэффициентов модели в ответ на развивающиеся распределения. Мы подробно остановимся на ключевых функциях CI / CD в платформе ML, таких как хранилище функций для каталогизации созданных вручную функций и представлений, полученных в процессе обучения модели. Наконец, мы опишем концентратор для общих моделей и компонентов. Этот концентратор можно использовать для начала процесса трансфертного обучения с помощью более тонких схем мошенничества или клиентских сегментов.

Благодарность

Большое спасибо Аншуману Гондалии и его команде инженеров за создание теневой платформы машинного обучения и Грэхему Ястребски за спонсорскую поддержку и вклад в этот блог.

Если вы заинтересованы в решении сложных задач машинного обучения и видите, как ваша работа может напрямую способствовать развитию бизнеса PayPal, пожалуйста, свяжитесь с нами! Мы активно ищем мотивированных инженеров и менеджеров по продукту.