Redacte automáticamente PII para el aprendizaje automático utilizando Amazon SageMaker Data Wrangler

Automatiza la redacción de PII para el aprendizaje automático con Amazon SageMaker Data Wrangler

Los clientes cada vez quieren utilizar enfoques de deep learning como los grandes modelos de lenguaje (LLMs) para automatizar la extracción de datos e ideas. Para muchas industrias, los datos que son útiles para el aprendizaje automático (ML) pueden contener información de identificación personal (PII). Para garantizar la privacidad del cliente y cumplir con la regulación mientras se capacita, ajusta y utiliza modelos de deep learning, a menudo es necesario primero redactar PII de los datos fuente.

Esta publicación muestra cómo utilizar Amazon SageMaker Data Wrangler y Amazon Comprehend para redactar automáticamente PII de datos tabulares como parte de tu flujo de trabajo de operaciones de aprendizaje automático (ML Ops).

Problema: Datos de ML que contienen PII

PII se define como cualquier representación de información que permita inferir razonablemente la identidad de un individuo al que se aplica la información, ya sea mediante medios directos o indirectos. PII es información que identifica directamente a una persona (nombre, dirección, número de seguro social u otro número o código identificativo, número de teléfono, dirección de correo electrónico, etc.) o información que una agencia tiene la intención de usar para identificar a individuos específicos en conjunto con otros elementos de datos, es decir, identificación indirecta.

Los clientes en dominios comerciales como finanzas, venta al por menor, legal y gobierno tratan con datos de PII de manera regular. Debido a diversas regulaciones y normativas gubernamentales, los clientes deben encontrar un mecanismo para manejar estos datos sensibles con medidas de seguridad apropiadas para evitar multas regulatorias, posibles fraudes y difamación. La redacción de PII es el proceso de enmascarar o eliminar información confidencial de un documento para que pueda ser utilizado y distribuido, al tiempo que se protegen la información confidencial.

Las empresas necesitan brindar experiencias deliciosas a los clientes y obtener mejores resultados comerciales utilizando ML. La redacción de datos de PII a menudo es el primer paso clave para desbloquear flujos de datos más grandes y ricos necesarios para usar o ajustar modelos de IA generativos sin preocuparse de si los datos de la empresa (o los de sus clientes) estarán comprometidos.

Resumen de la solución

Esta solución utiliza Amazon Comprehend y SageMaker Data Wrangler para redactar automáticamente datos de PII de un conjunto de datos de muestra.

Amazon Comprehend es un servicio de procesamiento del lenguaje natural (NLP) que utiliza ML para descubrir ideas y relaciones en datos no estructurados, sin necesidad de administrar infraestructura o tener experiencia en ML. Proporciona funcionalidad para localizar varios tipos de entidades de PII dentro del texto, como nombres o números de tarjetas de crédito. Aunque los últimos modelos de IA generativos han demostrado cierta capacidad de redacción de PII, generalmente no proporcionan una puntuación de confianza para la identificación de PII o datos estructurados que describan lo que se redactó. La funcionalidad de PII de Amazon Comprehend devuelve ambas cosas, lo que te permite crear flujos de trabajo de redacción que son completamente auditables a gran escala. Además, al utilizar Amazon Comprehend con AWS PrivateLink, los datos del cliente nunca abandonan la red de AWS y se aseguran continuamente con los mismos controles de acceso a datos y privacidad que el resto de tus aplicaciones.

Similar a Amazon Comprehend, Amazon Macie utiliza un motor basado en reglas para identificar datos sensibles (incluidos PII) almacenados en Servicio de almacenamiento simple de Amazon (Amazon S3). Sin embargo, su enfoque basado en reglas se basa en tener palabras clave específicas que indiquen datos sensibles ubicados cerca de esos datos (dentro de 30 caracteres). En contraste, el enfoque de ML basado en NLP de Amazon Comprehend utiliza la comprensión semántica de fragmentos de texto más largos para identificar PII, lo que lo hace más útil para encontrar PII dentro de datos no estructurados.

Además, para datos tabulares como archivos CSV o de texto sin formato, Macie devuelve menos información detallada de ubicación que Amazon Comprehend (a saber, un indicador de fila/columna o un número de línea, respectivamente, pero no desplazamientos de caracteres de inicio y fin). Esto hace que Amazon Comprehend sea particularmente útil para redactar PII de texto no estructurado que puede contener una mezcla de palabras PII y no PII (por ejemplo, tickets de soporte o indicaciones de LLM) que se almacena en un formato tabular.

Amazon SageMaker proporciona herramientas especializadas para equipos de ML para automatizar y estandarizar procesos en todo el ciclo de vida de ML. Con las herramientas de SageMaker MLOps, los equipos pueden preparar, entrenar, probar, solucionar problemas, implementar y gobernar fácilmente modelos de ML a escala, aumentando la productividad de los científicos de datos y los ingenieros de ML mientras mantienen el rendimiento del modelo en producción. El siguiente diagrama ilustra el flujo de trabajo de SageMaker MLOps.

SageMaker Pipelines

SageMaker Data Wrangler es una función de Amazon SageMaker Studio que proporciona una solución integral para importar, preparar, transformar, realizar ingeniería de características y analizar conjuntos de datos almacenados en ubicaciones como Amazon S3 o Amazon Athena, un paso común en el ciclo de vida de ML. Puede usar SageMaker Data Wrangler para simplificar y agilizar la preprocesamiento del conjunto de datos y la ingeniería de características mediante transformaciones sin código incorporadas o personalizando con sus propios scripts de Python.

El uso de Amazon Comprehend para redactar PII como parte de un flujo de trabajo de preparación de datos de SageMaker Data Wrangler mantiene todas las aplicaciones posteriores de los datos, como entrenamiento de modelos o inferencia, en línea con los requisitos de PII de su organización. Puede integrar SageMaker Data Wrangler con Amazon SageMaker Pipelines para automatizar las operaciones de ML de extremo a extremo, incluida la preparación de datos y la redacción de PII. Para obtener más detalles, consulte Integración de SageMaker Data Wrangler con SageMaker Pipelines. El resto de esta publicación demuestra un flujo de trabajo de SageMaker Data Wrangler que utiliza Amazon Comprehend para redactar PII de texto almacenado en formato de datos tabulares.

Esta solución utiliza un conjunto de datos sintéticos públicos junto con un flujo de trabajo personalizado de SageMaker Data Wrangler, disponible como un archivo en GitHub. Los pasos para usar el flujo de trabajo de SageMaker Data Wrangler para redactar PII son los siguientes:

  1. Abra SageMaker Studio.
  2. Descargue el flujo de trabajo de SageMaker Data Wrangler.
  3. Revise el flujo de trabajo de SageMaker Data Wrangler.
  4. Agregue un nodo de destino.
  5. Cree un trabajo de exportación de SageMaker Data Wrangler.

Esta guía, incluida la ejecución del trabajo de exportación, debería tardar entre 20 y 25 minutos en completarse.

Requisitos previos

Para esta guía, deberá tener lo siguiente:

Abrir SageMaker Studio

Para abrir SageMaker Studio, siga estos pasos:

  1. En la consola de SageMaker, elija Studio en el panel de navegación.
  2. Elija el dominio y el perfil de usuario
  3. Elija Abrir Studio.

Para comenzar con las nuevas capacidades de SageMaker Data Wrangler, se recomienda actualizar a la última versión.

Descargar el flujo de SageMaker Data Wrangler

Primero necesitas obtener el archivo de flujo de SageMaker Data Wrangler de GitHub y cargarlo en SageMaker Studio. Completa los siguientes pasos:

  1. Ve al archivo de flujo de SageMaker Data Wrangler redact-pii.flow en GitHub.
  2. En GitHub, elige el icono de descarga para descargar el archivo de flujo en tu computadora local.
  3. En SageMaker Studio, elige el ícono de archivo en el panel de navegación.
  4. Elige el ícono de carga, luego elige redact-pii.flow.
Cargar flujo de Data Wrangler

Revisar el flujo de SageMaker Data Wrangler

En SageMaker Studio, abre redact-pii.flow. Después de unos minutos, el flujo terminará de cargar y mostrará el diagrama del flujo (ver la siguiente captura de pantalla). El flujo contiene seis pasos: un paso de Origen S3 seguido de cinco pasos de transformación.

Pasos del flujo de Data Wrangler

En el diagrama del flujo, elige el último paso, Redactar PII. El panel Todos los Pasos se abrirá a la derecha y mostrará una lista de los pasos en el flujo. Puedes expandir cada paso para ver los detalles, cambiar parámetros y posiblemente agregar código personalizado.

Detalles del paso del flujo de Data Wrangler

Recorramos cada paso en el flujo.

Los pasos 1 (Origen S3) y 2 (Tipos de Datos) son agregados por SageMaker Data Wrangler siempre que los datos son importados para un nuevo flujo. En Origen S3, el campo URI S3 apunta al conjunto de datos de muestra, que es un archivo CSV almacenado en Amazon S3. El archivo contiene aproximadamente 116,000 filas, y el flujo establece el valor del campo Muestreo en 1,000, lo que significa que SageMaker Data Wrangler tomará una muestra de 1,000 filas para mostrar en la interfaz de usuario. Tipos de Datos establece el tipo de dato para cada columna de datos importados.

El paso 3 (Muestreo) establece el número de filas que SageMaker Data Wrangler tomará como muestra para un trabajo de exportación en 5,000, a través del campo Tamaño de muestra aproximado. Ten en cuenta que esto es diferente al número de filas muestreadas para mostrar en la interfaz de usuario (Paso 1). Para exportar datos con más filas, puedes aumentar este número o eliminar el Paso 3.

Los pasos 4, 5 y 6 utilizan transformaciones personalizadas de SageMaker Data Wrangler. Las transformaciones personalizadas te permiten ejecutar tu propio código Python o SQL dentro de un flujo de Data Wrangler. El código personalizado se puede escribir de cuatro formas:

  • En SQL, utilizando PySpark SQL para modificar el conjunto de datos
  • En Python, utilizando un marco de datos PySpark y bibliotecas para modificar el conjunto de datos
  • En Python, utilizando un marco de datos pandas y bibliotecas para modificar el conjunto de datos
  • En Python, utilizando una función definida por el usuario para modificar una columna del conjunto de datos

El enfoque de Python (pandas) requiere que su conjunto de datos quepa en la memoria y solo se puede ejecutar en una sola instancia, lo que limita su capacidad para escalar eficientemente. Cuando se trabaja en Python con conjuntos de datos más grandes, recomendamos usar el enfoque de Python (PySpark) o Python (función definida por el usuario). SageMaker Data Wrangler optimiza las funciones definidas por el usuario de Python para brindar un rendimiento similar a un complemento de Apache Spark, sin necesidad de conocer PySpark o Pandas. Para hacer esta solución lo más accesible posible, este post utiliza una función definida por el usuario de Python escrita en Python puro.

Amplíe el Paso 4 (Hacer columna PII) para ver sus detalles. Este paso combina diferentes tipos de datos PII de múltiples columnas en una sola frase que se guarda en una nueva columna, pii_col. La tabla siguiente muestra un ejemplo de una fila que contiene datos.

nombre_cliente trabajo_cliente dirección_facturación correo_electrónico_cliente
Katie Periodista 19009 Vang Squares Suite 805

Esto se combina en la frase “Katie es una periodista que vive en 19009 Vang Squares Suite 805 y se puede contactar por correo electrónico a “. La frase se guarda en pii_col, que este post utiliza como la columna de destino para su redacción.

El Paso 5 (Preparar para redacción) toma una columna para redactar (pii_col) y crea una nueva columna (pii_col_prep) que está lista para una redacción eficiente utilizando Amazon Comprehend. Para redactar PII de una columna diferente, puede cambiar el campo Columna de entrada de este paso.

Hay dos factores a considerar para redactar eficientemente datos usando Amazon Comprehend:

  • El costo de detectar PII se define en por unidad, donde 1 unidad = 100 caracteres, con un cargo mínimo de 3 unidades por cada documento. Debido a que los datos tabulares a menudo contienen pequeñas cantidades de texto por celda, generalmente es más eficiente en tiempo y costo combinar texto de múltiples celdas en un solo documento para enviar a Amazon Comprehend. Al hacer esto, se evita la acumulación de sobrecarga de muchas llamadas de función repetidas y se asegura que los datos enviados siempre sean mayores que el mínimo de 3 unidades.
  • Como estamos haciendo la redacción como un paso de un flujo de SageMaker Data Wrangler, llamaremos a Amazon Comprehend de forma sincrónica. Amazon Comprehend establece un límite de 100 KB (100,000 caracteres) por llamada de función sincrónica, por lo que debemos asegurarnos de que cualquier texto que enviemos esté por debajo de ese límite.

Dados estos factores, el Paso 5 prepara los datos para enviar a Amazon Comprehend agregando una cadena delimitadora al final del texto en cada celda. Para el delimitador, puede usar cualquier cadena que no ocurra en la columna que se va a redactar (idealmente, una que tenga la menor cantidad de caracteres posible, ya que se incluyen en el total de caracteres de Amazon Comprehend). Al agregar este delimitador de celda, podemos optimizar la llamada a Amazon Comprehend, y se discutirá más en el Paso 6.

Tenga en cuenta que si el texto en cualquier celda individual es más largo que el límite de Amazon Comprehend, el código en este paso lo truncará a 100,000 caracteres (aproximadamente equivalente a 15,000 palabras o 30 páginas a espacio sencillo). Aunque es poco probable que se almacene esta cantidad de texto en una sola celda, puede modificar el código de transformación para manejar este caso extremo de otra manera, si es necesario.

El Paso 6 (Redactar PII) toma un nombre de columna para redactar como entrada (pii_col_prep) y guarda el texto redactado en una nueva columna (pii_redacted). Cuando usa una transformación de función personalizada de Python, SageMaker Data Wrangler define una función personalizada en blanco (custom_func) que toma una serie de pandas series (una columna de texto) como entrada y devuelve una serie de pandas modificada con la misma longitud. La siguiente captura de pantalla muestra parte del Paso 6 (Redactar PII).

Código de redacción de la función personalizada Data Wrangler

La función custom_func contiene dos funciones auxiliares (internas):

  • make_text_chunks: esta función se encarga de concatenar texto de celdas individuales en la serie (incluyendo sus delimitadores) en cadenas más largas (chunks) para enviarlas a Amazon Comprehend.
  • redact_pii: esta función toma texto como entrada, llama a Amazon Comprehend para detectar información personal identificable (PII), redacta cualquier PII encontrado y devuelve el texto redactado. La redacción se realiza reemplazando cualquier texto PII con el tipo de PII encontrado entre corchetes, por ejemplo, John Smith se reemplazaría por [NOMBRE]. Puede modificar esta función para reemplazar PII con cualquier cadena, incluyendo una cadena vacía (““) para eliminarlo. También puede modificar la función para verificar la puntuación de confianza de cada entidad PII y redactar solo si supera un umbral específico.

Después de definir las funciones internas, custom_func las utiliza para realizar la redacción, como se muestra en el siguiente fragmento de código. Cuando se completa la redacción, convierte los chunks de nuevo en celdas originales, que guarda en la columna pii_redacted.

# concatenar texto de las celdas en chunks más largos
chunks = make_text_chunks(series, COMPREHEND_MAX_CHARS)
redacted_chunks = []

# llamar a Comprehend una vez por cada chunk y redactar
for text in chunks:
    redacted_text = redact_pii(text)
    redacted_chunks.append(redacted_text)

# unir todos los chunks redactados en una cadena de texto
redacted_text = ''.join(redacted_chunks)

# dividir nuevamente en la lista de filas originales
redacted_rows = redacted_text.split(CELL_DELIM)

Agregar un nodo de destino

Para ver el resultado de tus transformaciones, SageMaker Data Wrangler admite la exportación a Amazon S3, SageMaker Pipelines, Amazon SageMaker Feature Store y código Python. Para exportar los datos redactados a Amazon S3, primero necesitamos crear un nodo de destino:

  1. En el diagrama de flujo de SageMaker Data Wrangler, elige el signo más junto al paso Redactar PII.
  2. Elige Agregar destino y luego selecciona Amazon S3.
  3. Proporciona un nombre de salida para tu conjunto de datos transformado.
  4. Explora o ingresa la ubicación de S3 para almacenar el archivo de datos redactados.
  5. Elige Agregar destino.

Ahora deberías ver el nodo de destino al final de tu flujo de datos.

Crear un trabajo de exportación de SageMaker Data Wrangler

Ahora que se ha agregado el nodo de destino, podemos crear el trabajo de exportación para procesar el conjunto de datos:

  1. En SageMaker Data Wrangler, selecciona Crear trabajo.
  2. El nodo de destino que acabas de agregar ya debería estar seleccionado. Elige Siguiente.
  3. Acepta los valores predeterminados para todas las demás opciones y luego elige Ejecutar.

Esto crea un trabajo de procesamiento de SageMaker. Para ver el estado del trabajo, navega hasta la consola de SageMaker. En el panel de navegación, expande la sección Procesamiento y selecciona Trabajos de procesamiento. La redacción de las 116,000 celdas en la columna objetivo utilizando la configuración de trabajo de exportación predeterminada (dos instancias ml.m5.4xlarge) lleva aproximadamente 8 minutos y cuesta aproximadamente $0.25. Cuando el trabajo esté completo, descarga el archivo de salida con la columna redactada desde Amazon S3.

Limpieza

La aplicación SageMaker Data Wrangler se ejecuta en una instancia ml.m5.4xlarge. Para apagarla, en SageMaker Studio, selecciona Terminales y kernels en ejecución en el panel de navegación. En la sección INSTANCIAS EN EJECUCIÓN, encuentra la instancia etiquetada como Data Wrangler y selecciona el icono de apagado junto a ella. Esto apaga la aplicación SageMaker Data Wrangler que se está ejecutando en la instancia.

Conclusión

En esta publicación, discutimos cómo utilizar transformaciones personalizadas en SageMaker Data Wrangler y Amazon Comprehend para editar datos de PII de su conjunto de datos de ML. Puede descargar el flujo de SageMaker Data Wrangler y comenzar a editar PII de sus datos tabulares hoy.

Para otras formas de mejorar su flujo de trabajo de MLOps utilizando transformaciones personalizadas de SageMaker Data Wrangler, consulte Creación de transformaciones personalizadas en Amazon SageMaker Data Wrangler utilizando NLTK y SciPy. Para obtener más opciones de preparación de datos, consulte la serie de publicaciones de blog que explica cómo utilizar Amazon Comprehend para editar, traducir y analizar texto desde Amazon Athena o Amazon Redshift.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Microsoft AI propone MM-REACT un paradigma del sistema que combina ChatGPT y expertos en visión para un razonamiento y acción multimodal avanzados.

Los Grandes Modelos de Lenguaje (LLMs) están avanzando rápidamente y contribuyendo a transformaciones económicas y so...

Inteligencia Artificial

Comenzando con la IA

Aquí estoy asumiendo que has leído mi artículo anterior sobre Cómo aprender IA. Como recordatorio, recomiendo encarec...