Организации используют услуги машинного обучения (ML) и искусственного интеллекта для повышения качества обслуживания клиентов, снижения эксплуатационных расходов и открытия новых возможностей для улучшения бизнес-результатов. Данные лежат в основе вариантов использования машинного обучения и искусственного интеллекта и являются стратегическим активом организации. Поскольку данные растут экспоненциально, организации стремятся создать интегрированную, экономичную и производительную платформу данных для предварительной обработки данных, выполнения разработки функций, а также создания, обучения и ввода в эксплуатацию моделей машинного обучения в масштабе. Для этого AWS предлагает единую современную платформу данных, основанную на Простой сервис хранения Amazon (Amazon S3) как озеро данных со специальными инструментами и механизмами обработки для поддержки рабочих нагрузок аналитики и машинного обучения. Для унифицированного опыта машинного обучения вы можете использовать Студия Amazon SageMaker, который предлагает нативная интеграция с интерактивными сеансами AWS Glue для выполнения разработки функций в масштабе с защитой конфиденциальных данных. В этом посте мы покажем, как реализовать это решение.
Создатель мудреца Амазонки — это полностью управляемая служба машинного обучения, которая позволяет создавать, обучать и развертывать модели в масштабе для широкого спектра вариантов использования. Для обучения модели можно использовать любой из встроенные алгоритмы в SageMaker, чтобы быстро приступить к обучению и развертыванию моделей машинного обучения.
Ключевым компонентом процесса построения и разработки модели является разработка признаков. Клей AWS является одним из рекомендуемых вариантов для разработки функций в масштабе. AWS Glue позволяет выполнять интеграцию и преобразование данных распределенным образом в бессерверной инфраструктуре Apache Spark, а также упрощает использование популярной библиотеки Spark ML для проектирования функций и разработки моделей. Кроме того, вы можете использовать AWS Glue для дополнительной обработки данных с помощью закладки вакансий, получать данные из более чем 100 источников, используя Разъемыи запускать скачкообразные или непредсказуемые рабочие нагрузки, используя автоматическое масштабирование.
Еще одним важным требованием к приложениям на основе машинного обучения является безопасность данных и контроль доступа. Распространенным требованием является более жесткий контроль над тем, кто может получить доступ к наиболее конфиденциальным данным, в рамках процесса разработки функций и построения модели, следуя принципу доступа с минимальными привилегиями. Для этого можно использовать интеграцию AWS Glue с Формирование озера AWS для улучшения руководства и управления активами озера данных. С помощью Lake Formation вы можете настроить детальное управление доступом к данным и политики безопасности поверх озера данных Amazon S3. Политики определяются централизованно, что позволяет использовать несколько сервисов аналитики и машинного обучения, таких как AWS Glue, Амазонка Афинаи SageMaker для взаимодействия с данными, хранящимися в Amazon S3.
AWS Glue включает в себя обнаружение личной информации (PII) Преобразование, которое позволяет обнаруживать, маскировать или удалять объекты по мере необходимости для повышения соответствия требованиям и управления. С помощью преобразования PII вы можете обнаруживать данные PII в наборах данных и автоматически применять детальный контроль доступа с помощью Lake Formation для ограничения доступа к конфиденциальным данным для разных групп пользователей.
Примеры использования
Мы сосредоточимся на сценарии использования модели склонности, который включает в себя набор маркетинговых данных о клиентах и включает в себя два пользователя: инженер данных и специалист по данным. Набор данных содержит информацию о каждом клиенте, включая источник потенциальных клиентов, примечания к контактам, должностную роль, некоторые флаги, просмотры страниц за посещение и многое другое. Набор данных также включает конфиденциальную информацию, такую как личные номера телефонов.
Инженер данных отвечает за построение сквозного конвейера обработки данных, включая подготовку данных, предварительную обработку и контроль доступа. Специалист по данным отвечает за разработку функций, а также за обучение и развертывание модели машинного обучения. Обратите внимание, что специалисту по данным не разрешен доступ к каким-либо конфиденциальным данным PII для разработки функций или обучения модели ML.
В рамках этого варианта использования инженер данных строит конвейер данных для предварительной обработки набора данных, сканирует набор данных на наличие любой информации PII и ограничивает доступ к столбцу PII для пользователя специалиста по данным. В результате, когда специалист по обработке и анализу данных использует набор данных для разработки функций и построения моделей машинного обучения, у него нет доступа к чувствительным столбцам PII (в данном случае номерам телефонов). Процесс проектирования функций включает преобразование столбцов строкового типа в формат, оптимальный для моделей ML. В качестве расширенного варианта использования вы можете расширить этот шаблон доступа для реализации безопасности на уровне строк и ячеек с помощью Lake Formation.
Обзор решения
Решение содержит следующие высокоуровневые шаги:
- Настройте ресурсы с помощью AWS CloudFormation.
- Предварительно обработайте набор данных, включая обнаружение персональных данных и детальное управление доступом, в интерактивном сеансе AWS Glue.
- Выполните разработку функций в интерактивном сеансе AWS Glue.
- Обучайте и развертывайте модель машинного обучения с помощью встроенного в SageMaker алгоритма XGBoost.
- Оцените модель машинного обучения.
Следующая диаграмма иллюстрирует архитектуру решения.
Предпосылки
Чтобы выполнить это руководство, у вас должны быть следующие предварительные условия:
Настройка ресурсов с помощью AWS CloudFormation
Этот пост включает шаблон CloudFormation для быстрой настройки. Вы можете просмотреть и настроить его в соответствии с вашими потребностями. Если вы предпочитаете настраивать ресурсы на Консоль управления AWS и AWS CLI, а не AWS CloudFormation, см. инструкции в приложении в конце этого поста.
Шаблон CloudFormation генерирует следующие ресурсы:
- Сегменты S3 с образцом набора данных
- An AWS Lambda функция для загрузки набора данных
- Управление идентификацией и доступом AWS (IAM) группа, пользователи, роли и политики
- Параметры озера данных Lake Formation и разрешения
- Профили пользователей SageMaker
Чтобы создать свои ресурсы, выполните следующие действия:
- Войдите в консоль.
- Выберите Стек запуска:
- Выберите Следующая.
- Что касается DataEngineerPwd и DataScientistPwd, введите свой собственный пароль для пользователей Data Engineer и Data Scientist.
- Что касается имя_базы_данных, войти
demo
. - Что касается Клейтаблицеимя, войти
web_marketing
. - Что касается S3BucketNameForInput, войти
blog-studio-pii-dataset-
. - Что касается S3BucketNameForOutput, войти
blog-studio-output-
. - Что касается SageMakerDomainId, введите идентификатор домена SageMaker, который вы подготовили на предварительных этапах.
- Выберите Следующая.
- На следующей странице выберите Следующая.
- Просмотрите подробности на последней странице и выберите Я признаю, что AWS CloudFormation может создавать ресурсы IAM.
- Выберите Создавай.
Создание стека может занять до 10 минут. Стек создает роли IAM и профили пользователей SageMaker для двух персонажей: инженера данных и специалиста по данным. Он также создает демо-версию базы данных и таблицу web_marketing
с образцом набора данных.
Во время создания стека персонаж инженера данных имеет полный доступ к таблице, но персонаж специалиста по данным еще не имеет доступа к таблице.
Предварительно обработать набор данных
Начнем предварительную обработку данных в интерактивном сеансе AWS Glue. Персона инженера данных хочет проверить данные, чтобы увидеть, есть ли конфиденциальные данные или нет, и предоставить минимальное разрешение на доступ персоне исследователя данных. Вы можете скачать блокнот с это место.
- Войдите в консоль, используя пользователя data-engineer.
- На консоли SageMaker выберите Пользователи.
- Выберите пользователя data-engineer и выберите Открытая студия.
- Создайте новый блокнот и выберите СпаркАналитика 1.0 для Фото товара и Клей PySpark для ядро.
- Начните интерактивный сеанс со следующей магией, чтобы установить более новую версию Boto3 (это необходимо для использования
create_data_cells_filter
метод): - Инициализируйте сеанс:
- Создайте AWS Glue DynamicFrame из только что созданной таблицы и разрешать типы выбора на основе схемы каталога, потому что мы хотим использовать схему, определенную в каталоге, вместо автоматически выводимой схемы на основе данных:
- Проверьте в таблице, есть ли какие-либо данные PII с помощью обнаружения AWS Glue PII:
- Проверьте, содержат ли столбцы, классифицированные как PII, конфиденциальные данные или нет (если нет, обновите классифицированную_карту, чтобы удалить неконфиденциальные столбцы):
- Настройте разрешения Lake Formation с помощью фильтра ячеек данных для автоматически обнаруженных столбцов и ограничьте столбцы персоной специалиста по данным:
- Войдите в Studio как data-scientist, чтобы увидеть, что столбцы PII не видны. Вы можете скачать блокнот с это место.
- Создайте новый блокнот и выберите СпаркАналитика 1.0 для Фото товара и Клей PySpark для ядро:
Выполнение функционального инжиниринга
Мы используем библиотеку машинного обучения Apache Spark для выполнения проектирования функций в качестве пользователя-исследователя данных, а затем записываем выходные данные в Amazon S3.
- В следующей ячейке мы применяем функции из Библиотека машинного обучения Apache Spark:
StringIndexer
сопоставляет строковый столбец меток со столбцом индексов меток.OneHotEncoder
отображает категориальный признак, представленный в виде индекса метки, в двоичный вектор с не более чем одним единичным значением, указывающим на наличие определенного категориального признака. Это преобразование используется для алгоритмов машинного обучения, которые предполагают непрерывные функции.VectorAssembler
— это преобразователь, который объединяет заданный список столбцов в один векторный столбец, который затем используется при обучении моделей машинного обучения для таких алгоритмов, как логистическая регрессия и деревья решений.
- Окончательный преобразованный DataFrame можно создать с помощью библиотеки Pipeline. Конвейер определяется как последовательность этапов. Эти этапы выполняются по порядку, и входной DataFrame трансформируется по мере прохождения каждого этапа.
- Затем мы разделяем набор данных на обучающий, проверяемый и тестируемый DataFrame и сохраняем его в корзине S3 для обучения модели машинного обучения (укажите идентификатор своей учетной записи AWS в следующем коде):
Обучение и развертывание модели машинного обучения
В предыдущем разделе мы завершили разработку функций, которая включала преобразование строковых столбцов, таких как region
, jobrole
и usedpromo
в формат, оптимальный для моделей ML. Мы также включили такие столбцы, как pageviewspervisit
и totalwebvisits
, что поможет нам предсказать склонность клиента купить продукт.
Теперь мы обучаем модель машинного обучения, считывая набор данных для обучения и проверки с использованием встроенного в SageMaker алгоритма XGBoost. Затем мы развертываем модель и запускаем проверку точности. Вы можете скачать блокнот с это место.
В следующей ячейке мы считываем данные из второй корзины S3, которые включают выходные данные наших операций разработки функций. Затем мы используем встроенный алгоритм XGBoost для обучения модели.
- Откройте новую тетрадь. Выбирать Наука данных для Фото товара и Python 3 для ядро (укажите идентификатор своей учетной записи AWS в следующем коде):
- Когда обучение завершено, мы можем развернуть модель, используя услуги хостинга SageMaker:
Оцените модель машинного обучения
Мы используем тестовый набор данных для оценки модели и удаляем конечную точку вывода, когда закончим, чтобы избежать текущих расходов.
- Оцените модель с помощью следующего кода:
Результат точности для прогона образца составил 84.6 %. Это может немного отличаться для вашего запуска из-за случайного разделения набора данных.
- Мы можем удалить конечную точку вывода с помощью следующего кода:
Убирать
Теперь последний шаг, очистка ресурсов.
- Очистите две корзины, созданные с помощью стека CloudFormation.
- Удалить приложения, связанные с пользователем
profiles data-scientist
иdata-engineer
внутри Студии. - Удалите стек CloudFormation.
Заключение
В этом посте мы продемонстрировали решение, которое позволяет таким людям, как инженеры данных и специалисты по данным, выполнять разработку функций в масштабе. С помощью интерактивных сеансов AWS Glue вы можете легко разрабатывать функции в масштабе с автоматическим обнаружением PII и точным контролем доступа без необходимости управлять какой-либо базовой инфраструктурой. Используя Studio в качестве единой точки входа, вы можете получить упрощенный и интегрированный опыт создания сквозного рабочего процесса машинного обучения: от подготовки и защиты данных до построения, обучения, настройки и развертывания моделей машинного обучения. Чтобы узнать больше, посетите Начало работы с интерактивными сеансами AWS Glue и Студия Amazon SageMaker.
Мы очень взволнованы этой новой возможностью и очень хотим увидеть, что вы собираетесь построить с ее помощью!
Приложение. Настройка ресурсов с помощью консоли и интерфейса командной строки AWS
Выполните инструкции в этом разделе, чтобы настроить ресурсы с помощью консоли и интерфейса командной строки AWS вместо шаблона CloudFormation.
Предпосылки
Для выполнения этого руководства у вас должен быть доступ к интерфейсу командной строки AWS (см. Начало работы с интерфейсом командной строки AWS) или используйте доступ к командной строке из Облачная оболочка AWS.
Настройка группы IAM, пользователей, ролей и политик
В этом разделе мы создадим двух пользователей IAM: data-engineer и data-scientist, которые принадлежат группе IAM data-platform-group. Затем мы добавляем одну политику IAM в группу IAM.
- На консоли IAM создать политику на вкладке JSON для создания новой управляемой политики IAM с именем
DataPlatformGroupPolicy
. Политика позволяет пользователям в группе получать доступ к Studio, но только с использованием профиля пользователя SageMaker с тегом, соответствующим их имени пользователя IAM. Используйте следующий документ политики JSON для предоставления разрешений: - Создать группу IAM под названием
data-platform-group
. - Найдите и присоедините к группе управляемую AWS политику с именем DataPlatformGroupPolicy.
- Создание пользователей IAM называется data-engineer и data-scientist в IAM group data-platform-group.
- Создать новую управляемую политику с именем SageMakerExecutionPolicy (укажите свой регион и идентификатор учетной записи в следующем коде):
- Создать новую управляемую политику названный
SageMakerAdminPolicy
: - Создать роль IAM для SageMaker для инженера данных (data-engineer), который используется в качестве роли исполнения соответствующего пользовательского профиля. На Прикрепить политику разрешений страница AmazonSageMakerFullAccess (управляемая политика AWS) подключена по умолчанию. Вы удалите эту политику позже, чтобы сохранить минимальные привилегии.
- Что касается Название роли, используйте соглашение об именовании, введенное в начале этого раздела, чтобы назвать роль SageMakerStudioExecutionRole_data-engineer.
- Что касается Теги, добавьте ключ userprofilename и значение data-engineer.
- Выберите Создать роль.
- Чтобы добавить оставшиеся политики, на роли странице, выберите имя только что созданной роли.
- Под Разрешения..., удалите политику AmazonSageMakerFullAccess.
- На Прикрепить политику разрешений выберите политику, управляемую AWS, AwsGlueSessionUserRestrictedServiceRole и созданные вами политики, управляемые клиентом SageMakerExecutionPolicy и SageMakerAdminPolicy.
- Выберите Прикрепить политики.
- Изменить доверительные отношения вашей роли:
- Создать роль IAM для SageMaker для специалиста по данным (data-scientist), который используется в качестве исполняющей роли соответствующего профиля пользователя.
- Что касается Название роли, назовите роль SageMakerStudioExecutionRole_data-scientist.
- Что касается Теги, добавьте ключ userprofilename и значение data-scientist.
- Выберите Создать роль.
- Чтобы добавить оставшиеся политики, на роли странице, выберите имя только что созданной роли.
- Под Разрешения..., удалите политику AmazonSageMakerFullAccess.
- На Прикрепить политику разрешений выберите управляемую AWS политику AwsGlueSessionUserRestrictedServiceRole и созданную вами политику SageMakerExecutionPolicy, управляемую клиентом.
- Выберите Прикрепить политики.
- Изменить доверительные отношения вашей роли:
Настройка профилей пользователей SageMaker
Чтобы создать профили пользователей SageMaker с studiouserid
тег, выполните следующие действия:
- Используйте интерфейс командной строки AWS или CloudShell, чтобы создать профиль пользователя Studio для инженера данных (укажите идентификатор своей учетной записи и идентификатор домена Studio в следующем коде):
- Повторите шаг, чтобы создать профиль пользователя для специалиста по данным, заменив идентификатор учетной записи и идентификатор домена Studio:
Создайте сегменты S3 и загрузите образец набора данных.
В этом разделе вы создадите две корзины S3. В первой корзине есть образец набора данных, связанный с веб-маркетингом. Второе ведро используется специалистом по обработке и анализу данных для хранения выходных данных задач разработки функций, и этот выходной набор данных используется для обучения модели машинного обучения.
Сначала создайте корзину S3 для входных данных:
- Скачать набор данных.
- На консоли Amazon S3 выберите Ведра в навигационной панели.
- Выберите Создать ведро.
- Что касается Регион, выберите регион с доменом SageMaker, который включает созданные вами профили пользователей.
- Что касается Название ковша, войти
blog-studio-pii-dataset-
. - Выберите Создать ведро.
- Выберите созданное вами ведро и выберите Загрузите.
- В Выберите файлы раздел, выбрать Добавить файлы и загрузите загруженный набор данных.
Теперь вы создаете корзину для выходных данных: - На Ведра выберите страницу Создать ведро.
- Что касается Регион, выберите регион с доменом SageMaker, который включает созданные вами профили пользователей.
- Что касается Название ковша, войти
blog-studio-output-
. - Выберите Создать ведро.
Создайте базу данных и таблицу AWS Glue
В этом разделе вы создадите базу данных AWS Glue и таблицу для набора данных.
- На консоли Lake Formation под Каталог данных на панели навигации выберите Databases.
- Выберите Добавить базу данных.
- Что касается Фамилия, введите демо.
- Выберите Создать базу данных.
- Под Каталог данных, выберите таблицы.
- Что касается Фамилия, войти
web_marketing
. - Что касается База данных, наведите на
demo
. - Что касается Включить путь, введите путь к корзине S3 для входных данных.
- Что касается классификация, выберите CSV.
- Под Схема, выберите Загрузить схему.
- Введите следующий массив JSON в текстовое поле:
- Выберите Загрузите.
- Выберите Отправить.
- Под Детали таблицы, выберите Редактировать таблицу.
- Под Свойства таблицы, выберите Добавить.
- Что касается Основные , войти
skip.header.line.count
, А для Значениевведите 1. - Выберите Сохранить.
Настройка разрешений для формации озера
В этом разделе вы настроите разрешения Lake Formation, чтобы разрешить роль IAM. SageMakerStudioExecutionRole_data-engineer
для создания базы данных и регистрации местоположения S3 в Lake Formation.
Сначала зарегистрируйте расположение озера данных для управления таблицами в соответствии с расположением в разрешениях Lake Formation:
- Выберите Расположение озера данных.
- Выберите Зарегистрировать местонахождение.
- Что касается Путь к Amazon S3, войти
s3://blog-studio-pii-dataset-/
(сегмент, содержащий набор данных). - Выберите Зарегистрировать местонахождение.
Теперь вы предоставляете права доступа к базе данных и таблицам Lake Formation ролям IAM.SageMakerStudioExecutionRole_data-engineer
иSageMakerStudioExecutionRole_data-scientist
. Во-первых, предоставьте доступ к базе данных дляSageMakerStudioExecutionRole_data-engineer
: - Под Разрешения..., выберите Разрешения озера данных.
- Под Разрешение на данные, выберите Грант.
- Что касается Принципалы, выберите Пользователи и роли IAMи выберите роль
SageMakerStudioExecutionRole_data-engineer
. - Что касается Теги политики или ресурсы каталога, выберите Именованные ресурсы каталога данных.
- Что касается Databases, выберите демо.
- Что касается Разрешения базы данных, выберите супер.
- Выберите Грант.
Затем предоставьте разрешение таблицы дляSageMakerStudioExecutionRole_data-engineer
: - Под Разрешение на данные, выберите Грант.
- Что касается Принципалы, выберите Пользователи и роли IAMи выберите роль
SageMakerStudioExecutionRole_data-engineer
. - Что касается Теги политики или ресурсы каталога, выберите Именованные ресурсы каталога данных.
- Что касается Databases, выберите
demo
. - Что касается таблицы, выберите
web_marketing
. - Что касается Настольные разрешения, выберите супер.
- Что касается Предоставляемый разрешения, выберите супер.
- Выберите Грант.
Наконец, предоставьте доступ к базе данных дляSageMakerStudioExecutionRole_data-scientist
: - Под Разрешение на данные, выберите Грант.
- Что касается Принципалы, выберите Пользователи и роли IAMи выберите роль
SageMakerStudioExecutionRole_data-scientist
. - Что касается Теги политики или ресурсы каталога, выберите Именованные ресурсы каталога данных.
- Что касается Databases, выберите
demo
. - Что касается Разрешения базы данных, выберите Описывать.
- Выберите Грант.
Об авторах
Правин Кумар — архитектор аналитических решений в AWS, обладающий опытом проектирования, создания и внедрения современных платформ данных и аналитики с использованием облачных сервисов. Сферы его интересов — бессерверные технологии, современные облачные хранилища данных, потоковая передача и приложения машинного обучения.
Норитака Сэкияма является главным архитектором больших данных в команде AWS Glue. Ему нравится сотрудничать с разными командами для достижения таких результатов, как этот пост. В свободное время он любит играть в видеоигры со своей семьей.
- Продвинутый (300)
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- Создатель мудреца Амазонки
- искусственный интеллект
- сертификация искусственного интеллекта
- искусственный интеллект в банковском деле
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- AWS Большие данные
- Клей AWS
- Формирование озера AWS
- Машинное обучение AWS
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- глубокое обучение
- google ai
- обучение с помощью машины
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- масштаб ай
- синтаксис
- продуманное лидерство
- зефирнет