Автор: Лэй Чжан.

В этом блоге мы подробно рассказываем о том, как в настоящее время команда Adobe по обслуживанию AI/ML работает с NVIDIA над созданием конвейера высокопроизводительного машинного обучения на основе графического процессора.

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

Услуги Adobe AI/ML — это набор предложений ИИ как услуга, разработанных специально для маркетологов, чтобы повысить качество обслуживания клиентов — и все это без опыта работы с данными. Он включает в себя высокопроизводительный конвейер обработки данных и современные модели машинного обучения. Пакет услуг Adobe AI/ML включает в себя:

  • Искусственный интеллект атрибуции:понимание дополнительного влияния каждого взаимодействия с клиентом.
  • Искусственный интеллект клиентов: предоставляйте информацию о каждом отдельном клиенте.
  • Искусственный интеллект путешествия:оптимизируйте дизайн и реализацию цикла взаимодействия с клиентом.
  • Возможности искусственного интеллекта контента: интерпретация и обнаружение наиболее эффективного контента.
  • Искусственный интеллект потенциальных клиентов: определение наиболее подходящих потенциальных клиентов для B2B.

Далее мы будем использовать Journey AI в качестве примера. Journey AI помогает брендам оптимизировать контент в электронной почте, SMS, push-уведомлениях и многом другом. Это помогает оптимизировать взаимодействие с клиентами, поддерживать осведомленность клиентов о бренде и гарантировать, что клиенты не будут перегружены, предоставляя прогнозные данные в таких областях, как оптимальное время отправки, типы контента и частота каналов.

Проблемы в конвейере машинного обучения

Архитектурно Journey AI состоит из сложных конвейеров данных, включая задания ETL, обучение модели машинного обучения и задания прогнозирования. Конвейеры включают задания ETL, обучение модели машинного обучения и задания прогнозирования. Задания ETL обычно связаны с большим объемом данных и требуют значительных затрат времени и денег. Обучение модели машинного обучения и прогнозирование — еще одна важная задача, которую предстоит решить. Он использует обработанные данные из заданий ETL для обучения моделей. Этот шаг требует сложных расчетов и обычно занимает много времени.

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

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

Чтобы сократить время выполнения и высокую стоимость, команда Adobe AI/ML Services в настоящее время работает с NVIDIA над созданием конвейера высокопроизводительного машинного обучения на основе графического процессора. Этот конвейер использует только вычисления GPU, выполняя те же задания, которые выполнялись через CPU, но со значительно более высокой скоростью и меньшими общими затратами.

Графический процессор (GPU) — это процессор, специально разработанный для обработки интенсивных задач рендеринга графики. Он широко используется для высококачественных игр, программного обеспечения для 3D-моделирования, программного обеспечения для редактирования видео. С развитием платформы CUDA NVIDIA графические процессоры могут обрабатывать рабочие процессы обработки данных с чрезвычайно высокой скоростью, включая создание моделей машинного обучения, таких как нейронные сети и XGBoost.

NVIDIA работает над переносом популярного механизма обработки больших данных в памяти Apache Spark на графический процессор, чтобы увеличить скорость его обработки. Официальное название подключаемого модуля, ускоряющего приложения Spark, — RAPIDS Accelerator for Apache Spark 3.0. Этот плагин позволяет значительно ускорить операции Spark SQL и Dataframe без каких-либо изменений кода. Это включает в себя, когда они работают на графическом процессоре, например, высокая кардинальность объединяет агрегаты с высокой кардинальностью, сортировки с высокой кардинальностью и оконные операции.

Для нашего первого проекта один из конвейеров машинного обучения Journey AI был полностью перенесен на рабочие процессы GPU, чтобы оценить его производительность. Этот конвейер состоит из двух частей: генерация функций и прогнозирование модели (рис. 1). Часть создания функций заключается в преобразовании необработанных данных в значимые данные функций, которые можно использовать для обучения модели. Эта работа включает большое количество функций объединения таблиц и работы с окнами. Он реализован на Apache Spark. Для представленных здесь результатов часть прогнозирования модели используется в предварительно обученной модели XGBoost и сгенерированных данных признаков для прогнозирования вероятности события.

Сравнительный тест и результаты

В тесте производительности используются два вычислительных кластера: один кластер ЦП, который содержит группу рабочих процессов Standard_L4 (6 ядер и 32 ГБ памяти), и один кластер графического процессора, который содержит группу рабочих процессов Standard_NC6s_v3 (6 ядер, 112 ГБ памяти, 1 процессор V100). процессор графического процессора). Чтобы два кластера имели одинаковые эксплуатационные расходы при одинаковом количестве времени, мы сохранили соотношение между количеством рабочих процессов в кластере ЦП и количеством рабочих процессов в кластере графического процессора на уровне 5:1.

Первый эталонный тест фокусируется на части конвейера создания функций, которая предназначена для проверки производительности запроса Spark. Один и тот же запрос Spark был протестирован для шести клиентов с разными объемами данных. Отношение ускорения кластера графического процессора к кластеру ЦП показано на рисунке 2. В целом, коэффициент ускорения колеблется от 1,5 до 3 раз. Этот высокий коэффициент ускорения также обеспечивает экономию времени на 20–60 % и снижение затрат на 20–60 %.

Второй протестированный тест предназначен для тестирования всего конвейера, который включает в себя создание функций (задание запроса Spark) и прогнозирование модели машинного обучения (XGBoost). Сгенерированные данные объекта были немедленно переданы в модель XGBoost для прогнозирования без процесса временного сохранения. Трубопровод был протестирован на тех же шести клиентах, что и выше. Отношение ускорения кластера графического процессора к кластеру процессора показано на рисунке 3. Коэффициент ускорения варьировался от 1,5 до 3 раз. Этот высокий коэффициент ускорения также обеспечивает экономию времени на 20–60 % и снижение затрат на 20–60 %.

В последнем эталонном тесте мы протестировали наш конвейер на нашем самом большом наборе данных. У него было пять источников данных с общим объемом данных более 3 ТБ. Этот конвейер также имеет более сложное соединение и агрегацию на этапе создания функций. В тестах использовались 20 воркеров GPU в кластере GPU и 100 воркеров CPU в кластере CPU. Результаты бенчмарк-теста представлены на рис. 4. Кластер GPU значительно опередил кластер CPU: в 2 раза быстрее, при стоимости 50% кластера CPU.

Смотреть вперед

Adobe и NVIDIA планируют продолжить работу над ускорением конвейеров машинного обучения для сервисов Adobe AI/ML с помощью новейшей технологии графических процессоров NVIDIA. Благодаря разработке новых функций и улучшению совместимости все больше и больше задач Spark и машинного обучения можно выполнять на графическом процессоре со значительно более высокой скоростью и снижением затрат.

использованная литература

  1. Сервисы Adobe AI/ML
  2. Платформа NVIDIA CUDA
  3. Апач Спарк

Связанные технические блоги