«Автоматическое редактирование ПИИ для машинного обучения с использованием Amazon SageMaker Data Wrangler»

Улучшенное редактирование ПИИ для машинного обучения с помощью Amazon SageMaker Data Wrangler

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

В этом посте показано, как использоватьAmazon SageMaker Data Wrangler иAmazon Comprehend, чтобы автоматически удалять PII из табличных данных в рамках вашего рабочего процессамашинного обучения (ML Ops).

Проблема: PII в данных ML

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

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

Бизнесу необходимо доставлять удовлетворительные клиентские впечатления и лучшие результаты за счет использования ML. Удаление данных PII часто является первым важным шагом для получения доступа к более крупным и богатым потокам данных, необходимым для использования или настройкигенеративных AI-моделей, не беспокоясь о том, будут ли скомпрометированы их корпоративные данные (или данные их клиентов).

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

В этом решении используются Amazon Comprehend и SageMaker Data Wrangler для автоматической редакции PII данных из выборки наборов данных.

Amazon Comprehend – это сервис обработки естественного языка (NLP), который использует ML для выявления взаимосвязей и отношений в неструктурированных данных без управления инфраструктурой или опыта в области ML. Он предоставляет функциональность для определенияразличных типов сущностей PII в тексте, например, имен или номеров кредитных карт. Хотя последние генеративные AI-модели продемонстрировали некоторые возможности редактирования PII, они обычно не предоставляют оценку уверенности в идентификации PII или структурированные данные, описывающие, что было отредактировано. Функциональность PII Amazon Comprehend возвращает оба параметра, что позволяет вам создавать рабочие процессы редактирования, которые могут быть полностью проконтролированы в масштабе. Кроме того, использование Amazon Comprehend сAWS PrivateLink означает, что данные клиента никогда не покидают сеть AWS и постоянно обеспечиваются теми же системами доступа к данным и контроля конфиденциальности, что и остальные ваши приложения.

Как и Amazon Comprehend, Amazon Macie использует механизм на основе правил для определения конфиденциальных данных (включая PII), хранящихся вAmazon Simple Storage Service (Amazon S3). Однако его на основе правил подход полагается на наличие конкретных ключевых слов, указывающих на конфиденциальные данные, находящиеся рядом с этими данными (в пределах 30 символов). В отличие от этого, NLP-подход, основанный на ML Amazon Comprehend, использует семантическое понимание более длинных фрагментов текста для определения PII, что делает его более полезным для обнаружения PII в неструктурированных данных.

Дополнительно для табличных данных, таких как CSV или текстовые файлы, Macie предоставляет менее подробную информацию о местоположении, чем Amazon Comprehend (либо индикатор строки/столбца, либо номер строки, соответственно, но не смещения начала и конца символов). Это делает Amazon Comprehend особенно полезным для удаления PII из неструктурированного текста, который может содержать смесь слов PII и non-PII (например, технические заявки или задания в области права) и хранится в табличном формате.

Amazon SageMaker предоставляет специальные инструменты для команд машинного обучения для автоматизации и стандартизации процессов в рамках жизненного цикла ML. С помощью инструментов SageMaker MLOps команды могут легко подготавливать, обучать, тестировать, устранять неполадки, развертывать и управлять ML-моделями в масштабе, повышая производительность специалистов по анализу данных и инженеров по машинному обучению при сохранении производительности моделей в процессе эксплуатации. Ниже приведена схема рабочего процесса SageMaker MLOps.

SageMaker Pipelines

SageMaker Data Wrangler – это функция Amazon SageMaker Studio, которая предоставляет комплексное решение для импорта, подготовки, преобразования, создания признаков и анализа наборов данных, хранящихся в таких местах, как Amazon S3 или Amazon Athena, что является первым шагом в жизненном цикле ML. Вы можете использовать SageMaker Data Wrangler для упрощения и оптимизации предварительной обработки данных набора и создания признаков, как с помощью встроенных преобразований без кода, так и с использованием собственных сценариев на Python.

Использование Amazon Comprehend для удаления PII в рамках рабочего процесса подготовки данных SageMaker Data Wrangler позволяет сохранить соответствие всех последующих использований данных, таких как обучение модели или вывод, требованиям вашей организации в отношении PII. Вы можете интегрировать SageMaker Data Wrangler с Amazon SageMaker Pipelines для автоматизации операций ML от начала до конца, включая подготовку данных и удаление PII. Дополнительные сведения см. в документации по интеграции SageMaker Data Wrangler с SageMaker Pipelines. В остальной части этого поста представлен пример рабочего потока SageMaker Data Wrangler, который использует Amazon Comprehend для удаления PII из текста, хранящегося в формате табличных данных.

Для этого решения используется общедоступный синтетический набор данных вместе с пользовательским потоком SageMaker Data Wrangler, доступным в виде файла на GitHub. Шаги по использованию потока SageMaker Data Wrangler для удаления PII следующие:

  1. Откройте SageMaker Studio.
  2. Загрузите поток SageMaker Data Wrangler.
  3. Ознакомьтесь с потоком SageMaker Data Wrangler.
  4. Добавьте узел назначения.
  5. Создайте задание экспорта SageMaker Data Wrangler.

Выполнение этого примера, включая запуск задания экспорта, должно занять 20-25 минут.

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

Для выполнения этого руководства у вас должно быть следующее:

Открытие SageMaker Studio

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

  1. На консоли SageMaker выберите Studio в левой панели навигации.
  2. Выберите домен и профиль пользователя
  3. Выберите Открыть Studio.

Для начала работы с новыми возможностями SageMaker Data Wrangler рекомендуется обновиться до последней версии.

Загрузка потока SageMaker Data Wrangler

Сначала необходимо получить файл потока SageMaker Data Wrangler из GitHub и загрузить его в Studio SageMaker. Выполните следующие шаги:

  1. Перейдите к файлу потока SageMaker Data Wrangler redact-pii.flow на GitHub.
  2. На GitHub выберите значок загрузки для загрузки файла потока на ваш компьютер.
  3. В SageMaker Studio выберите значок файла в левой панели навигации.
  4. Выберите значок загрузки, затем выберите redact-pii.flow.
Загрузка потока Data Wrangler

Просмотр потока SageMaker Data Wrangler

В SageMaker Studio откройте файл redact-pii.flow. Через несколько минут поток будет загружен и показана диаграмма потока (см. следующий снимок экрана). В потоке содержится шесть шагов: шаг S3 Source, за которым следуют пять шагов преобразования.

Шаги потока Data Wrangler

На диаграмме потока выберите последний шаг, Redact PII. Панель All Steps откроется справа и покажет список шагов в потоке. Вы можете развернуть каждый шаг, чтобы просмотреть детали, изменить параметры и, возможно, добавить собственный код.

Детали шага потока Data Wrangler

Давайте пройдемся по каждому шагу в потоке.

Шаги 1 (S3 Source) и 2 (Data types) добавляются SageMaker Data Wrangler каждый раз при импорте данных для нового потока. В шаге S3 Source поле S3 URI указывает на образец набора данных, который является файлом CSV, хранящимся в Amazon S3. Файл содержит примерно 116,000 строк, и поток устанавливает значение поля Sampling равным 1,000, что означает, что SageMaker Data Wrangler будет выбирать 1,000 строк для отображения в пользовательском интерфейсе. Data types устанавливает тип данных для каждого столбца импортированных данных.

Шаг 3 (Sampling) устанавливает количество строк, которые SageMaker Data Wrangler выберет для экспорта в рамках задания выборки равным 5,000, через поле Approximate sample size. Обратите внимание, что это отличается от количества строк, выбранных для отображения в пользовательском интерфейсе (Шаг 1). Чтобы экспортировать данные с большим количеством строк, вы можете увеличить это число или удалить Шаг 3.

Шаги 4, 5 и 6 используют пользовательские преобразования SageMaker Data Wrangler. Пользовательские преобразования позволяют запускать собственный код Python или SQL в рамках потока Data Wrangler. Код можно написать четырьмя способами:

  • В SQL, используя PySpark SQL для изменения набора данных
  • В Python, используя PySpark data frame и библиотеки для изменения набора данных
  • В Python, используя data frame и библиотеки pandas для изменения набора данных
  • В Python, используя пользовательскую функцию для изменения столбца набора данных

При использовании подхода Python (pandas) требуется, чтобы ваш набор данных помещался в память и мог работать только на одном экземпляре, что ограничивает его возможность эффективного масштабирования. При работе в Python с большими наборами данных мы рекомендуем использовать подход Python (PySpark) или Python (пользовательская функция). SageMaker Data Wrangler оптимизирует пользовательские функции Python для достижения производительности, сравнимой с плагином Apache Spark, без необходимости знать PySpark или Pandas. Чтобы сделать этот подход максимально доступным, в этой статье используется пользовательская функция Python, написанная на чистом Python.

Разверните шаг 4 (Создание столбца PII), чтобы увидеть его подробности. На этом шаге объединяются различные типы данных PII из нескольких столбцов в одну фразу, которая сохраняется в новом столбце pii_col. В следующей таблице показан пример строки с данными.

customer_name customer_job billing_address customer_email
Katie Журналист 19009 Vang Squares Suite 805

Это объединяется в фразу “Katie – это Журналист, живущий по адресу 19009 Vang Squares Suite 805, и с которым можно связаться по электронной почте “. Фраза сохраняется в столбце pii_col, который в этой статье используется в качестве целевого столбца для редактирования.

Шаг 5 (Подготовка к редактированию) берет столбец для редактирования (pii_col) и создает новый столбец (pii_col_prep), который готов для эффективного редактирования с использованием Amazon Comprehend. Чтобы редактировать PII из другого столбца, вы можете изменить поле Входной столбец на этом шаге.

Существует два фактора, которые следует учитывать при эффективном редактировании данных с использованием Amazon Comprehend:

  • Стоимость обнаружения PII определяется на основе единицы, где 1 единица = 100 символов, с минимальной плата в размере 3 единиц за каждый документ. Поскольку табличные данные обычно содержат небольшое количество текста в каждой ячейке, обычно более эффективны по времени и затратам объединение текста из нескольких ячеек в один документ для отправки в Amazon Comprehend. Это позволяет избежать накопления накладных расходов из-за множества повторяющихся вызовов функций и гарантирует, что отправляемые данные всегда превышают минимальные требования в 3 единицы.
  • Так как мы выполняем редактирование в рамках потока SageMaker Data Wrangler, мы будем вызывать Amazon Comprehend синхронно. Amazon Comprehend устанавливает предел в 100 КБ (100 000 символов) на каждый синхронный вызов функции, поэтому нам необходимо убедиться, что любой текст, который мы отправляем, находится в пределах этого ограничения.

Исходя из этих факторов, Шаг 5 подготавливает данные для отправки в Amazon Comprehend, добавляя разделительную строку в конец текста каждой ячейки. В качестве разделителя вы можете использовать любую строку, которая не встречается в редактируемом столбце (идеально такую, которая имеет минимальное количество символов, так как они включаются в общее количество символов Amazon Comprehend). Добавление этого разделителя позволяет оптимизировать вызов Amazon Comprehend и будет рассмотрено далее на Шаге 6.

Обратите внимание, что если текст в любой отдельной ячейке длиннее предельного значения Amazon Comprehend, код в этом шаге сокращает его до 100 000 символов (примерно эквивалентно 15 000 словам или 30 страницам с одинарным интервалом). Хотя такой объем текста маловероятно будет храниться в одной ячейке, вы можете изменить код преобразования, чтобы обработать этот особый случай по-другому, если необходимо.

Шаг 6 (Сокрытие личной информации (PII)) принимает имя столбца в качестве входных данных (pii_col_prep) и сохраняет зашифрованный текст в новый столбец (pii_redacted). Когда вы используете настраиваемую функцию преобразования на Python, SageMaker Data Wrangler определяет пустую функцию custom_func, которая принимает столбец текста pandas series в качестве входных данных и возвращает измененный pandas серия такой же длины. Ниже показана часть шага Сокрытие личной информации (PII).

Код настраиваемой функции сокрытия данных Wrangler

Функция custom_func содержит две вспомогательные (внутренние) функции:

  • make_text_chunks – Эта функция выполняет объединение текста из отдельных ячеек в серии (включая разделители) в более длинные строки (части), которые отправляются в Amazon Comprehend.
  • redact_pii– Эта функция принимает текст в качестве входных данных, вызывает Amazon Comprehend для обнаружения личной информации (PII), закрывает найденную PII и возвращает зашифрованный текст. Сокрытие происходит путем замены любого текста PII типом найденной личной информации в квадратных скобках, например, Джон Смит будет заменен на [ИМЯ]. Вы можете изменить эту функцию, чтобы замены PII осуществлялись на любую строку, включая пустую строку (““), чтобы удалить ее. Вы также можете изменить функцию, чтобы проверять оценку достоверности каждой сущности PII и закрывать ее только в том случае, если она превышает определенный порог.

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

# concatenate text from cells into longer chunkschunks = make_text_chunks(series, COMPREHEND_MAX_CHARS)redacted_chunks = []# call Comprehend once for each chunk, and redactfor text in chunks:  redacted_text = redact_pii(text)  redacted_chunks.append(redacted_text)  # join all redacted chunks into one text stringredacted_text = ''.join(redacted_chunks)# split back to list of the original rowsredacted_rows = redacted_text.split(CELL_DELIM)

Добавить узел назначения

Чтобы увидеть результаты ваших преобразований, SageMaker Data Wrangler поддерживает экспорт в Amazon S3, SageMaker Pipelines, Amazon SageMaker Feature Store и Python-код. Чтобы экспортировать сокрытые данные в Amazon S3, сначала необходимо создать узел назначения:

  1. На диаграмме потока SageMaker Data Wrangler выберите знак плюс рядом с шагом Сокрытие личной информации (PII).
  2. Выберите Добавить узел назначения, затем выберите Amazon S3.
  3. Укажите имя для выходных данных вашего преобразованного набора данных.
  4. Выберите путь к хранилищу S3 для сохранения файла с сокрытыми данными, либо укажите его вручную.
  5. Выберите Добавить узел назначения.

Теперь вы должны увидеть узел назначения в конце вашего потока данных.

Создать задачу экспорта SageMaker Data Wrangler

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

  1. В SageMaker Data Wrangler выберите Создать задание.
  2. Выбран узел назначения, который вы только что добавили. Выберите Далее.
  3. Примите значения по умолчанию для всех других параметров и выберите Запустить.

Это создает работу обработки SageMaker. Чтобы просмотреть статус задания, перейдите в консоль SageMaker. В левой панели навигации разверните раздел Обработка и выберите Рабочие задания. Редактирование всех 116 000 ячеек в целевом столбце с использованием настроек экспорта по умолчанию (два экземпляра ml.m5.4xlarge) занимает примерно 8 минут и стоит примерно $0.25. По завершении задания загрузите выходной файл с отредактированным столбцом из Amazon S3.

Очистка

Приложение SageMaker Data Wrangler запускается на экземпляре ml.m5.4xlarge. Чтобы его выключить, в SageMaker Studio выберите Запущенные терминалы и ядра в левой панели навигации. В разделе ЗАПУЩЕННЫЕ ЭКЗЕМПЛЯРЫ найдите экземпляр с пометкой Data Wrangler и выберите значок выключения рядом с ним. Таким образом выключается приложение SageMaker Data Wrangler, работающее на этом экземпляре.

Заключение

В этой статье мы рассмотрели, как использовать пользовательские преобразования в SageMaker Data Wrangler и Amazon Comprehend для удаления конфиденциальной информации из вашего набора данных машинного обучения. Вы можете скачать граф SageMaker Data Wrangler и начать удаление конфиденциальной информации из ваших табличных данных уже сегодня.

Чтобы узнать о других способах улучшить свой рабочий процесс MLOps с помощью пользовательских преобразований SageMaker Data Wrangler, ознакомьтесь с создание пользовательских преобразований в Amazon SageMaker Data Wrangler с использованием NLTK и SciPy. Для получения других вариантов подготовки данных ознакомьтесь с серией статей, в которых объясняется, как использовать Amazon Comprehend для реакции, перевода и анализа текста из Amazon Athena или Amazon Redshift.