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

В 2005 году Ruby on Rails оказала неизгладимое влияние на веб-разработку, когда его создатель Дэвид Ханссон продемонстрировал, как создать блог всего за 15 минут — раньше на это уходило несколько недель (или примерно столько же времени уходит на просмотр «Незнакомца»). Вещи восемь раз на повторе). Эта абстракция сложных рабочих процессов позволила миллионам разработчиков выполнять свою работу наилучшим образом, не беспокоясь о конфигурации или трудоемкой настройке.

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

Мы хотели произвести революцию в развертывании моделей так же, как Rails изменил веб-разработку 17 лет назад: что, если бы мы могли развернуть модель машинного обучения всего за 15 минут?

Сбор требований

Первым шагом на пути к переосмыслению развертывания модели было глубокое погружение в существующее состояние. Что-то вроде «перевернутого вверх дном», чтобы лучше понять, с чем вы на самом деле имеете дело. Мы обнаружили, что системы для разработки и развертывания этих моделей были разделены между несколькими командами. Усилия дублировались, и это часто означало, что могли пройти месяцы, прежде чем модель пошла в производство.

Имея это в виду, мы разработали нашу платформу для масштабирования машинного обучения в Wealthsimple. Нашими приоритетами были:

  • Быстрые итерации для исследования и экспериментирования, что позволит разработчикам моделей тестировать изменения менее чем за несколько часов;
  • Новые модели с низким уровнем обслуживания, которые можно развернуть за несколько дней, а не недель или месяцев;
  • И, наконец, возможность быть полностью уверенным в наших автоматизированных средах тестирования и мониторинга для уверенной отправки изменений.

Создание нашей платформы машинного обучения

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

Value Integrated Systems: одна система для управления всем жизненным циклом

Мы верили в ценность построения интегрированной системы; то есть единая система, решающая всю проблему. Наша платформа должна была управлять всем жизненным циклом — от разработки модели до предоставления прогнозов в производство.

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

Обучение модели

Интерфейс разработчика для обучения модели представлял собой REST API поверх серверной части MLflow. Каждая модель размещается как отдельный проект в этом приложении. Цель состоит в том, чтобы создать контейнерные проекты для обучения и разработки каждой модели в изолированной среде. Таким образом, специалисты по данным могут выбирать наиболее подходящие платформы и интеграции для своих моделей, не беспокоясь о конфликтующих зависимостях.

Соглашение важнее конфигурации: автоматизация кода для новых проектов

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

Мы заметили, что более 60 % кода, написанного для новых проектов, — на что тратится большая часть времени — приходится на скаффолдинг. Мы писали шаблонный код, который можно было сгенерировать одной командой: новые проекты поставлялись с готовыми готовыми плагинами и скаффолдингом. Это было пошаговое улучшение того, как быстро мы могли поставлять новые модели.

Развертывание модели

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

Подача прогнозов

Мы абстрагировались от сложной логики обслуживания прогнозов, приняв платформу с открытым исходным кодом (Nvidia's Triton Inference Server), чтобы выполнять тяжелую работу под капотом. Поверх этого мы создали веб-приложение для связи с серверной частью. Это обеспечило простой слой для обработки данных и поддерживаемых функций, таких как A/B-тестирование различных вариантов модели и создание прогнозов в теневом режиме. Как и Одиннадцать, мы оттачивали свои навыки и готовились оказать огромное влияние — без взрывов.

Влияние переноса модели вывода Division на платформу

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

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

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

К июню 2022 года мы создали первую версию нашей платформы машинного обучения!

Что дальше?

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

Написано Мэнди Гу, инженером-менеджеромв Wealthsimple, в сотрудничестве с Дайаной Райт.

Wealthsimple предлагает передовые финансовые инструменты, которым доверяют более 2,5 миллионов канадцев. Maker Stories — это взгляд изнутри на то, как мы делаем вещи. Заинтересованы в присоединении к нашей команде? Посетите нашу страницу Работайте с нами, чтобы узнать больше и просмотреть открытые вакансии.

Контент на этом сайте создан компанией Wealthsimple Technologies Inc. и предназначен только для информационных целей. Содержимое не предназначено для использования в качестве совета по инвестициям или любого другого профессионального совета. Прежде чем предпринимать какие-либо действия на основе этого контента, вам следует проконсультироваться со специалистом. Мы не поддерживаем каких-либо третьих лиц, упомянутых на этом сайте. Когда вы инвестируете, ваши деньги подвергаются риску, и вполне возможно, что вы можете потерять часть или все свои инвестиции. Прошлые показатели не являются гарантией будущих результатов. Исторические доходы, гипотетические доходы, ожидаемые доходы и изображения, включенные в этот контент, предназначены только для иллюстративных целей. Авторские права © 2023 Wealthsimple Technologies Inc.