Демократизация машинного обучения в Salesforce Data Cloud с помощью Amazon SageMaker Canvas без написания кода

Упрощение машинного обучения в Salesforce Data Cloud при помощи Amazon SageMaker Canvas без программирования

Этот пост является совместной работой Дэрила Мартиса, директора продукта, Salesforce Einstein AI.

Это третий пост в серии, посвященной интеграции Salesforce Data Cloud и Amazon SageMaker.

В Части 1 и Части 2 мы показываем, как интеграция Salesforce Data Cloud и Einstein Studio с SageMaker позволяет бизнесу безопасно получать доступ к данным Salesforce с использованием SageMaker и использовать его инструменты для создания, обучения и развертывания моделей на хостинге SageMaker. Эндпоинты SageMaker можно зарегистрировать в Salesforce Data Cloud, чтобы активировать прогнозы в Salesforce.

В этом посте мы покажем, как бизнес-аналитики и гражданские ученые-данных могут создавать модели машинного обучения (ML) без кодирования в Amazon SageMaker Canvas и разворачивать обученные модели для интеграции с Salesforce Einstein Studio, чтобы создавать мощные бизнес-приложения. SageMaker Canvas предоставляет интерфейс без кодирования для доступа к данным из Salesforce Data Cloud и создания, тестирования и развертывания моделей всего несколькими щелчками мыши. SageMaker Canvas также позволяет вам понять свои прогнозы с помощью важности функций и значений SHAP, делая легким объяснение прогнозов, сделанных моделями ML.

SageMaker Canvas

SageMaker Canvas позволяет бизнес-аналитикам и командам по науке о данных создавать и использовать модели машинного обучения и генеративного искусственного интеллекта (AI), не писав ни одной строки кода. SageMaker Canvas предоставляет визуальный интерфейс «взять и щелкнуть», чтобы генерировать точные прогнозы ML для классификации, регрессии, прогнозирования, обработки естественного языка (NLP) и компьютерного зрения (CV). Кроме того, вы можете иметь доступ и оценивать базовые модели (FMs) из Amazon Bedrock или общедоступные FMs из Amazon SageMaker JumpStart для создания контента, извлечения текста и сжатия текста для поддержки генеративных AI-решений. SageMaker Canvas позволяет вам привнести ML-модели, созданные где угодно, и генерировать прогнозы прямо в SageMaker Canvas.

Salesforce Data Cloud и Einstein Studio

Salesforce Data Cloud – это платформа для данных, которая обеспечивает бизнесы актуализированными в режиме реального времени обновлениями данных о клиентах с любой точки контакта.

Einstein Studio – это врата к инструментам AI на Salesforce Data Cloud. С помощью Einstein Studio администраторы и ученые-данных могут легко создавать модели всего несколькими щелчками мыши или с использованием кода. Модель BYOM (bring your own model) в Einstein Studio позволяет подключать пользовательские или генеративные модели AI из внешних платформ, таких как SageMaker, к Salesforce Data Cloud.

Обзор решения

Чтобы показать, как вы можете создавать модели машинного обучения с использованием данных в Salesforce Data Cloud с помощью SageMaker Canvas, мы создаем прогностическую модель для рекомендации продукта. Эта модель использует функции, хранящиеся в Salesforce Data Cloud, такие как демографические данные клиента, маркетинговые взаимодействия и история покупок. Модель рекомендаций продукта создается и развертывается при помощи пользовательского интерфейса без кодирования SageMaker Canvas с использованием данных в Salesforce Data Cloud.

Мы используем следующий образец данных, хранящийся в Amazon Simple Storage Service (Amazon S3). Чтобы использовать этот набор данных в Salesforce Data Cloud, обратитесь к Создание потока данных Amazon S3 в Data Cloud. Для создания модели необходимы следующие атрибуты:

  • Club Member – Если клиент является членом клуба
  • Campaign – Кампания, в которой участвует клиент
  • State – Штат или провинция, в которой проживает клиент
  • Month – Месяц покупки
  • Case Count – Количество случаев, возникших у клиента
  • Case Type Return – Вернул ли клиент какой-либо продукт за последний год
  • Case Type Shipment Damaged – Были ли у клиента повреждения поставок в последний год
  • Engagement Score – Уровень вовлеченности клиента (реакция на рекламные кампании, входы в онлайн-магазин и т. д.)
  • Tenure – Стаж клиента в компании
  • Clicks – Среднее количество кликов, сделанных клиентом за неделю до покупки
  • Pages Visited – Среднее количество посещенных клиентом страниц за неделю до покупки
  • Product Purchased – Фактический купленный продукт

В следующих шагах приведено общее описание того, как использовать коннектор Salesforce Data Cloud, запущенный в SageMaker Canvas, для доступа к корпоративным данным и создания прогностической модели:

  1. Настройте подключенное приложение Salesforce для регистрации домена SageMaker Canvas.
  2. Настройте OAuth для Salesforce Data Cloud в SageMaker Canvas.
  3. Подключитесь к данным Salesforce Data Cloud с помощью встроенного коннектора SageMaker Canvas Salesforce Data Cloud и импортируйте набор данных.
  4. Создайте и обучите модели в SageMaker Canvas.
  5. Разверните модель в SageMaker Canvas и делайте прогнозы.
  6. Разверните конечную точку Amazon API Gateway в качестве соединения с конечной точкой запуска SageMaker.
  7. Зарегистрируйте конечную точку API Gateway в Einstein Studio. Подробные инструкции см. в статье Приведение собственных моделей искусственного интеллекта в Data Cloud.

На следующей диаграмме показана архитектура решения.

Предварительные требования

Перед началом выполнения задания выполните следующие предварительные шаги для создания домена SageMaker и включения SageMaker Canvas:

  1. Создайте домен Amazon SageMaker Studio. Подробные инструкции см. в статье Подключение к домену Amazon SageMaker.
  2. Запишите идентификатор домена и роль выполнения, созданные и используемые вашим пользовательским профилем. В следующих шагах вы добавите разрешения в эту роль.

На следующем скриншоте показан созданный нами домен для этого поста.

  1. Затем перейдите в профиль пользователя и выберите Редактировать.
  2. Перейдите в раздел Настройки Amazon SageMaker Canvas и выберите Включить базовые разрешения для Canvas.
  3. Выберите Включить прямые развертывания моделей Canvas и Включить разрешения модельного реестра для всех пользователей.

Это позволяет SageMaker Canvas развертывать модели на конечных точках в консоли SageMaker. Эти параметры можно настроить на уровне домена или профиля пользователя. Параметры профиля пользователя имеют приоритет над параметрами домена.

Создание или обновление подключенного приложения Salesforce

Затем создайте подключенное приложение Salesforce, чтобы разрешить поток OAuth от SageMaker Canvas к Salesforce Data Cloud. Выполните следующие шаги:

  1. Войдите в систему Salesforce и перейдите в Настройка.
  2. Найдите Менеджер приложений и создайте новое подключенное приложение.
  3. Укажите следующие данные:
    1. Для Имени подключенного приложения введите имя.
    2. Для Имени API оставьте значение по умолчанию (оно автоматически заполняется).
    3. В поле Контактный адрес электронной почты введите свой адрес электронной почты.
    4. Выберите Включить настройки OAuth.
    5. В поле URL обратного вызова введите https://<идентификатор-домена>.studio.<регион>.sagemaker.aws/canvas/default/lab и укажите идентификатор домена и регион вашего домена SageMaker.
  4. Настройте следующие области доступа в своем подключенном приложении:
    1. Управление данными пользователя через API (api).
    2. Выполнение запросов в любое время (refresh_token, offline_access).
    3. Выполнение ANSI SQL-запросов к данным Salesforce Data Cloud (Data Cloud_query_api).
    4. Управление данными профиля Data Cloud (Data Cloud_profile_api).
    5. Доступ к службе URL идентификации (id, profile, email, address, phone).
    6. Доступ к уникальным идентификаторам пользователей (openid).
  5. Настройте параметр IP Relaxation в подключенном приложении на значение Relax IP restrictions.

Настройка параметров OAuth для подключения Salesforce Data Cloud

SageMaker Canvas использует AWS Secrets Manager для безопасного хранения информации о подключении от связанного приложения Salesforce. SageMaker Canvas позволяет администраторам настраивать параметры OAuth для отдельного профиля пользователя или для всей домены. Обратите внимание, что вы можете добавить секрет как в домен, так и в профиль пользователя, но SageMaker Canvas ищет секреты сначала в профиле пользователя.

Для настройки параметров OAuth выполните следующие шаги:

  1. Перейдите к редактированию параметров домена или профиля пользователя в консоли SageMaker.
  2. Выберите Настройки Canvas в области навигации.
  3. В поле Настройки OAuth выберите Salesforce Data Cloud для Источника данных.
  4. Для Настройки секрета вы можете создать новый секрет или использовать существующий. В данном примере мы создаем новый секрет и вводим идентификатор клиента и секрет клиента из связанного приложения Salesforce.

Дополнительные сведения о включении OAuth в SageMaker Canvas см. в разделе Настройка OAuth для Salesforce Data Cloud.

Это завершает настройку для обеспечения доступа к данным от Salesforce Data Cloud к SageMaker Canvas для создания моделей искусственного интеллекта и машинного обучения.

Импорт данных из Salesforce Data Cloud

Для импорта данных выполните следующие шаги:

  1. Из профиля пользователя, созданного с помощью вашего домена SageMaker, выберите Запуск и выберите Canvas.

При первом доступе к вашему приложению Canvas создание займет около 10 минут.

  1. Выберите Data Wrangler в области навигации.
  2. В меню Создать выберите Табличный для создания табличного набора данных.
  3. Назовите набор данных и выберите Создать.
  4. Для поля Источник данных выберите Salesforce Data Cloud и Добавить соединение для импорта объекта данных озера.

Если вы ранее настроили соединение с Salesforce Data Cloud, вы увидите возможность использовать это соединение вместо создания нового.

  1. Укажите имя нового соединения Salesforce Data Cloud и выберите Добавить соединение.

Это займет несколько минут для завершения.

  1. Вы будете перенаправлены на страницу входа в Salesforce, чтобы авторизовать подключение.

После успешного входа запрос будет перенаправлен обратно в SageMaker Canvas со списком объектов Data Lake.

  1. Выберите набор данных, содержащий признаки для обучения модели, загруженные через Amazon S3.
  2. Перетащите файл и выберите Редактировать в SQL.

Salesforce добавляет “__c” ко всем полям объектов Data Cloud. В соответствии с соглашениями именования в SageMaker Canvas, символ ”__“ не допускается в именах полей.

  1. Измените SQL-запрос для переименования столбцов и удаления метаданных, необходимых для обучения модели. Замените имя таблицы на ваше имя объекта.

    SELECT "state__c" as state, "case_type_shipment_damaged__c" as case_type_shipment_damaged, "campaign__c" as campaign, "engagement_score__c" as engagement_score, "case_count__c" as case_count, "case_type_return__c" as case_type_return, "club_member__c" as club_member, "pages_visited__c" as pages_visited, "product_purchased__c" as product_purchased, "clicks__c" as clicks, "tenure__c" as tenure, "month__c" as month FROM product_recommendation__dlm;
  2. Выберите Запустить SQL, а затем Создать набор данных.

  3. Выберите набор данных и выберите Создать модель.

  4. Для создания модели прогнозирования рекомендаций товаров введите имя модели, выберите Анализ предсказательных данных как Тип проблемы и выберите Создать.

Создание и обучение модели

Выполните следующие действия для создания и обучения модели:

  1. После запуска модели задайте целевой столбец product_purchased.

SageMaker Canvas отображает ключевую статистику и корреляцию каждого столбца с целевым столбцом. SageMaker Canvas предоставляет инструменты предварительного просмотра модели и проверки данных перед началом создания модели.

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

Стандартная сборка может занять от 2 до 4 часов.

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

  1. Когда модель начнет сборку, вы можете покинуть страницу.

Когда модель отображается как Готова на странице Мои модели, она готова для анализа и прогнозирования.

  1. После того, как модель построена, перейдите в раздел Мои модели, выберите Просмотр, чтобы просмотреть созданную вами модель, и выберите самую последнюю версию.
  2. Перейдите на вкладку Анализ, чтобы увидеть влияние каждого признака на прогноз.
  3. Для получения дополнительной информации о прогнозах модели перейдите на вкладку Оценка.
  4. Выберите Прогноз, чтобы начать прогнозирование продукта.

Развернуть модель и делать прогнозы

Выполните следующие шаги, чтобы развернуть модель и начать делать прогнозы:

  1. Вы можете выбрать, делать ли пакетные или отдельные прогнозы. Для целей этой статьи мы выбираем Отдельный прогноз.

Когда вы выбираете Отдельный прогноз, SageMaker Canvas отображает признаки, для которых вы можете предоставить входные данные.

  1. Вы можете изменить значения, выбрав Обновить и просматривая прогноз в режиме реального времени.

Точность модели, а также влияние каждого признака для конкретного прогноза будет отображаться.

  1. Чтобы развернуть модель, укажите имя развертывания, выберите тип и количество экземпляров, и выберите Развернуть.

Развертывание модели займет несколько минут.

Статус модели обновляется на В работе, когда развертывание успешно завершено.

SageMaker Canvas предоставляет возможность протестировать развертывание.

  1. Выберите Просмотреть детали.

Вкладка Детали предоставляет подробности о модели. Тип экземпляра, количество, формат ввода, формат ответа и конечная точка – некоторые из ключевых деталей, отображаемых на странице.

  1. Выберите Тестовое развертывание, чтобы протестировать развернутую конечную точку.

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

Новый прогноз вместе с результатом вызова конечной точки возвращается пользователю.

Создание API для предоставления конечной точки SageMaker

Для генерации прогнозов, которые используются в бизнес-приложениях Salesforce, вам необходимо предоставить конечную точку вывода SageMaker, созданную вашим развертыванием SageMaker Canvas, через API Gateway и зарегистрировать ее в Salesforce Einstein.

Форматы запроса и ответа отличаются между Salesforce Einstein и конечной точкой вывода SageMaker. Вы можете использовать API Gateway для выполнения преобразования или использовать AWS Lambda для преобразования запроса и сопоставления ответа. См. Вызов конечной точки модели SageMaker с использованием Amazon API Gateway и AWS Lambda для предоставления конечной точки SageMaker через Lambda и API Gateway.

Следующий фрагмент кода – это функция Lambda для преобразования запроса и ответа

import jsonimport boto3import osclient = boto3.client("runtime.sagemaker")endpoint = os.environ['SAGEMAKER_ENDPOINT_NAME']prediction_label = 'product_purchased__c'def lambda_handler(event, context):        features=[]        # Пример ввода: {"instances": [{"features": ["Washington", 1, "New Colors", 1, 1, 1, 1, 1, 1, 1, 1]}, {"features": ["California", 1, "Web", 100, 1, 1, 100, 1, 10, 1, 1]}]}        for instance in event["instances"]:            features.append(','.join(map(str, instance["features"])))        body='\n'.join(features)        response = client.invoke_endpoint(EndpointName=endpoint,ContentType="text/csv",Body=body,Accept="application/json")        response =  json.loads(response['Body'].read().decode('utf-8'))        prediction_response={"predictions":[]}        for prediction in response.get('predictions'):            prediction_response['predictions'].append({prediction_label:prediction['predicted_label']})        return prediction_response

Обновите значения endpoint и prediction_label в функции Lambda в соответствии с вашей конфигурацией.

  1. Добавьте переменную среды SAGEMAKER_ENDPOINT_NAME для получения конечной точки вывода SageMaker.
  2. Установите метку прогнозирования, чтобы совпадать с ключом JSON выходных данных модели, зарегистрированной в Einstein Studio.

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

  1. Увеличьте тайм-аут функции Lambda, но сохраните его ниже стандартного тайм-аута интеграции API Gateway, который составляет 29 секунд.

Зарегистрируйте модель в Salesforce Einstein Studio

Чтобы зарегистрировать конечную точку API Gateway в Einstein Studio, обратитесь к статье Bring Your Own AI Models to Data Cloud.

Заключение

В этой публикации мы объяснили, как использовать SageMaker Canvas для подключения к Salesforce Data Cloud и генерации прогнозов с помощью функций автоматизированного машинного обучения, не писав ни строчки кода. Мы продемонстрировали возможность создания модели в SageMaker Canvas для предварительного просмотра ее производительности до обучения модели на полном наборе данных. Также мы показали действия после создания модели, например, использование интерфейса для единичных прогнозов в SageMaker Canvas и понимание прогнозов с помощью важности признаков. Затем мы использовали конечную точку SageMaker, созданную в SageMaker Canvas, и сделали ее доступной в виде API, чтобы вы могли интегрировать ее с Salesforce Einstein Studio и создавать мощные приложения Salesforce.

В следующей публикации мы покажем, как использовать данные из Salesforce Data Cloud в SageMaker Canvas, чтобы сделать анализ данных и подготовку еще более простыми с помощью визуального интерфейса и простых запросов на естественном языке.

Чтобы начать работу с SageMaker Canvas, ознакомьтесь с иммERSIONным днем SageMaker Canvas и обратитесь к ресурсу Начало работы с Amazon SageMaker Canvas.