La comprensión del lenguaje natural se aplica en una amplia gama de casos de uso, desde chatbots y asistentes virtuales hasta traducción automática y resumen de texto. Para garantizar que estas aplicaciones se ejecuten al nivel esperado de rendimiento, es importante que los datos en los entornos de capacitación y producción provengan de la misma distribución. Cuando los datos que se utilizan para la inferencia (datos de producción) difieren de los datos utilizados durante el entrenamiento del modelo, nos encontramos con un fenómeno conocido como desviación de datos. Cuando se produce un desvío de datos, el modelo ya no es relevante para los datos en producción y es probable que funcione peor de lo esperado. Es importante monitorear continuamente los datos de inferencia y compararlos con los datos utilizados durante el entrenamiento.
Puedes usar Amazon SageMaker para construir, entrenar e implementar rápidamente modelos de aprendizaje automático (ML) a cualquier escala. Como medida proactiva contra la degradación del modelo, puede utilizar Monitor de modelo de Amazon SageMaker para monitorear continuamente la calidad de sus modelos ML en tiempo real. Con Model Monitor, también puede configurar alertas para notificar y activar acciones si se observa alguna desviación en el rendimiento del modelo. La detección temprana y proactiva de estas desviaciones le permite tomar medidas correctivas, como recopilar nuevos datos de entrenamiento reales, volver a entrenar modelos y auditar sistemas ascendentes, sin tener que monitorear modelos manualmente o construir herramientas adicionales.
Model Monitor ofrece cuatro tipos diferentes de capacidades de monitoreo para detectar y mitigar la desviación del modelo en tiempo real:
- Calidad de datos - Ayuda a detectar cambios en los esquemas de datos y propiedades estadísticas de variables independientes y alerta cuando se detecta una desviación.
- Calidad del modelo - Para monitorear las características de rendimiento del modelo, como la exactitud o precisión en tiempo real, Model Monitor le permite ingerir las etiquetas de verdad del terreno recopiladas de sus aplicaciones. Model Monitor fusiona automáticamente la información real del terreno con los datos de predicción para calcular las métricas de rendimiento del modelo.
- Sesgo de modelo –Model Monitor está integrado con Amazon SageMaker aclarar para mejorar la visibilidad de posibles sesgos. Aunque sus datos o modelo iniciales pueden no estar sesgados, los cambios en el mundo pueden provocar que se desarrolle un sesgo con el tiempo en un modelo que ya ha sido entrenado.
- Explicabilidad del modelo - La detección de deriva le avisa cuando se produce un cambio en la importancia relativa de las atribuciones de características.
En esta publicación, analizamos los tipos de desviación de la calidad de los datos que se aplican a los datos de texto. También presentamos un enfoque para detectar la deriva de datos en datos de texto utilizando Model Monitor.
Deriva de datos en PNL
La deriva de datos se puede clasificar en tres categorías dependiendo de si el cambio de distribución ocurre en la entrada o en la salida, o si la relación entre la entrada y la salida ha cambiado.
Desplazamiento covariable
En un cambio covariable, la distribución de los insumos cambia con el tiempo, pero la distribución condicional P (y | x) no cambia Este tipo de deriva se denomina cambio de covariable porque el problema surge debido a un cambio en la distribución de las covariables (características). Por ejemplo, en un modelo de clasificación de spam de correo electrónico, la distribución de datos de entrenamiento (corpora de correo electrónico) puede diferir de la distribución de datos durante la puntuación.
Cambio de etiqueta
Mientras que el cambio de covariables se centra en los cambios en la distribución de características, cambio de etiqueta se centra en los cambios en la distribución de la variable de clase. Este tipo de cambio es esencialmente lo contrario del cambio de covariable. Una forma intuitiva de pensar en ello podría ser considerar un conjunto de datos desequilibrado. Si la proporción de correos electrónicos no deseados a no deseados en nuestro conjunto de capacitación es del 50 %, pero en realidad el 10 % de nuestros correos electrónicos no son correo no deseado, entonces la distribución de la etiqueta de destino ha cambiado.
Cambio de concepto
Cambio de concepto es diferente de la covariable y el cambio de etiqueta en que no está relacionado con la distribución de datos o la distribución de clases, sino que está relacionado con la relación entre las dos variables. Por ejemplo, los spammers de correo electrónico a menudo usan una variedad de conceptos para pasar los modelos de filtro de correo no deseado, y el concepto de los correos electrónicos utilizados durante la capacitación puede cambiar con el paso del tiempo.
Ahora que comprendemos los diferentes tipos de desviación de datos, veamos cómo podemos usar Model Monitor para detectar el cambio de covariable en los datos de texto.
Resumen de la solución
A diferencia de los datos tabulares, que están estructurados y delimitados, los datos textuales son complejos, de gran dimensión y de forma libre. Para detectar de manera eficiente la deriva en la PNL, trabajamos con incrustaciones, que son representaciones de baja dimensión del texto. Puede obtener incrustaciones usando varios modelos de lenguaje como Word2Vec y modelos basados en transformadores como BERTI. Estos modelos proyectan datos de alta dimensión en espacios de baja dimensión mientras preservan la información semántica del texto. Los resultados son vectores densos y contextualmente significativos, que se pueden usar para varias tareas posteriores, incluida la supervisión de la deriva de datos.
En nuestra solución, usamos incrustaciones para detectar el cambio de covariable de las oraciones en inglés. Utilizamos Model Monitor para facilitar el monitoreo continuo de un clasificador de texto que se implementa en un entorno de producción. Nuestro enfoque consta de los siguientes pasos:
- Ajuste un modelo BERT con SageMaker.
- Implemente un clasificador BERT ajustado como punto final en tiempo real con captura de datos habilitado
- Cree un conjunto de datos de referencia que consista en una muestra de las oraciones utilizadas para entrenar el clasificador BERT.
- Créar un trabajo de supervisión personalizado de SageMaker para calcular la similitud de coseno entre los datos capturados en producción y el conjunto de datos de referencia.
El siguiente diagrama ilustra el flujo de trabajo de la solución:
Afinar un modelo BERT
En esta publicación, usamos Corpus de Aceptabilidad Lingüística (CoLA), un conjunto de datos de 10,657 XNUMX oraciones en inglés etiquetadas como gramaticales o no gramaticales de la literatura lingüística publicada. Usamos el entrenamiento de SageMaker para ajustar un modelo BERT usando el conjunto de datos CoLa definiendo una clase de estimador PyTorch. Para obtener más información sobre cómo usar este SDK con PyTorch, consulte Utilice PyTorch con el SDK de SageMaker Python. Llamando al fit()
El método del estimador inicia el trabajo de entrenamiento:
Implementar el modelo
Después de entrenar nuestro modelo, lo alojamos en un punto final de SageMaker. Para hacer que el punto final cargue el modelo y proporcione predicciones, implementamos algunos métodos en train_deploy.py:
- model_fn () - Carga el modelo guardado y devuelve un objeto de modelo que se puede utilizar para servir modelos. El servidor de modelos SageMaker PyTorch carga nuestro modelo invocando
model_fn
. - input_fn () - Deserializa y prepara la entrada de predicción. En este ejemplo, el cuerpo de nuestra solicitud primero se serializa en JSON y luego se envía al modelo que sirve al punto final. Por lo tanto, en
input_fn()
, primero deserializamos el cuerpo de la solicitud con formato JSON y devolvemos la entrada comotorch.tensor
, como se requiere para BERT. - predic_fn () – Realiza la predicción y devuelve el resultado.
Habilitar la captura de datos de Model Monitor
Habilitamos Captura de datos de Model Monitor para registrar los datos de entrada en el Servicio de almacenamiento simple de Amazon (Amazon S3) bucket para consultarlo más tarde:
Luego creamos un punto final de SageMaker en tiempo real con el modelo creado en el paso anterior:
Inferencia
Ejecutamos la predicción usando el objeto predictor que creamos en el paso anterior. Configuramos el serializador y el deserializador JSON, que utiliza el punto final de inferencia:
El punto de conexión en tiempo real está configurado para capturar datos de la solicitud, y la respuesta y los datos se almacenan en Amazon S3. Puede ver los datos capturados en el programa de monitoreo anterior.
Crear una línea de base
Usamos un modelo BERT ajustado para extraer características de incrustación de oraciones de los datos de entrenamiento. Usamos estos vectores como entradas de características de alta calidad para comparar la distancia del coseno porque BERT produce una representación dinámica de palabras con contexto semántico. Complete los siguientes pasos para obtener la incrustación de oraciones:
- Use un tokenizador BERT para obtener identificadores de token para cada token (
input_id
) en la oración de entrada y la máscara para indicar qué elementos en la secuencia de entrada son tokens frente a elementos de relleno (attention_mask_id
). Usamos el BERTtokenizer.encode_plus
función para obtener estos valores para cada oración de entrada:
input_ids
y attention_mask_ids
se pasan al modelo y obtienen los estados ocultos de la red. los hidden_states
tiene cuatro dimensiones en el siguiente orden:
- Número de capa (BERT tiene 12 capas)
- Número de lote (1 oración)
- Índices de tokens de palabras
- Unidades ocultas (768 funciones)
- Use las dos últimas capas ocultas para obtener un solo vector (incrustación de oraciones) calculando el promedio de todos los tokens de entrada en la oración:
- Convierta la oración incrustada como una matriz NumPy y guárdela en una ubicación de Amazon S3 como línea de base que usa Model Monitor:
Guión de evaluación
Model Monitor proporciona un contenedor preconstruido con la capacidad de analizar los datos capturados desde los puntos finales para conjuntos de datos tabulares. Si desea traer su propio contenedor, Model Monitor proporciona puntos de extensión que puede usar. Cuando creas un MonitoringSchedule
, Model Monitor finalmente inicia los trabajos de procesamiento. Por lo tanto, el contenedor debe conocer el contrato de trabajo de procesamiento. Necesitamos crear un script de evaluación que sea compatible con el contenedor. entradas de contrato y salidas.
Model Monitor usa código de evaluación en todas las muestras que se capturan durante el programa de monitoreo. Para cada punto de datos de inferencia, calculamos la incrustación de oraciones utilizando la misma lógica descrita anteriormente. La similitud del coseno se usa como una métrica de distancia para medir la similitud de un punto de datos de inferencia y las incrustaciones de oraciones en la línea de base. Matemáticamente, mide el ángulo del coseno entre dos vectores de incrustación de oraciones. Una alta puntuación de similitud de coseno indica incrustaciones de oraciones similares. Una puntuación de similitud de coseno más baja indica desviación de datos. Calculamos un promedio de todas las puntuaciones de similitud de coseno y, si es inferior al umbral, se captura en el informe de infracción. Según el caso de uso, puede usar otras métricas de distancia como manhattan
or euclidean
para medir la similitud de las incrustaciones de oraciones.
El siguiente diagrama muestra cómo usamos SageMaker Model Monitoring para establecer la línea de base y detectar la deriva de datos usando la similitud de la distancia del coseno.
El siguiente es el código para calcular las violaciones; el guión de evaluación completo está disponible en GitHub:
Mida la deriva de datos usando Model Monitor
En esta sección, nos enfocamos en medir la deriva de datos usando Model Monitor. Los monitores preconstruidos de Model Monitor funcionan con Deequ, que es una biblioteca construida sobre Apache Spark para definir pruebas unitarias para datos, que miden la calidad de los datos en grandes conjuntos de datos. No necesita codificación para utilizar estas capacidades de monitoreo preconstruidas. También tiene la flexibilidad de monitorear modelos mediante codificación para proporcionar un análisis personalizado. Puede recopilar y revisar todas las métricas emitidas por Model Monitor en Estudio Amazon SageMaker, para que pueda analizar visualmente el rendimiento de su modelo sin escribir código adicional.
En ciertos escenarios, por ejemplo, cuando los datos no son tabulares, el trabajo de procesamiento predeterminado (impulsado por Deequ) no es suficiente porque solo admite conjuntos de datos tabulares. Es posible que los monitores preconstruidos no sean suficientes para generar métricas sofisticadas para detectar desviaciones, y es posible que deba traer sus propias métricas. En las siguientes secciones, describimos la configuración para incorporar sus métricas mediante la creación de un contenedor personalizado.
Cree el contenedor Model Monitor personalizado
Usamos la guión de evaluación de la sección anterior para construir un contenedor Docker y empujarlo a Registro de contenedores elásticos de Amazon (Amazon ECR):
Cuando el contenedor de Docker del cliente está en Amazon ECR, podemos programar un trabajo de Monitoreo de modelos y generar un informe de infracciones, como se demuestra en las siguientes secciones.
Programar un trabajo de supervisión de modelos
Para programar un trabajo de monitoreo de modelos, creamos una instancia de Model Monitor y en el image_uri
, nos referimos al contenedor Docker que creamos en el apartado anterior:
Programamos el trabajo de monitoreo usando el create_monitoring_schedule
API. Puede programar el trabajo de supervisión por horas o por días. Usted configura el trabajo usando el destination
parámetro, como se muestra en el siguiente código:
Para describir y enumerar el programa de monitoreo y sus ejecuciones, puede usar los siguientes comandos:
Informe de violación de deriva de datos
Cuando se completa el trabajo de monitoreo del modelo, puede navegar a la ruta S3 de destino para acceder a los informes de infracción. Este informe contiene todas las entradas cuya puntuación de coseno promedio (avg_cosine_score
) está por debajo del umbral configurado como variable de entorno THRESHOLD:0.5
existentes ModeloMonitor instancia. Esta es una indicación de que los datos observados durante la inferencia se están desviando más allá de la línea de base establecida.
El siguiente código muestra el informe de infracción generado:
Finalmente, en base a esta observación, puede configurar su modelo para el reentrenamiento. También puede habilitar Servicio de notificación simple de Amazon (Amazon SNS) notificaciones para enviar alertas cuando se produzcan infracciones.
Conclusión
Model Monitor le permite mantener la alta calidad de sus modelos en producción. En esta publicación, destacamos los desafíos con el monitoreo de la deriva de datos en datos no estructurados como el texto, y brindamos un enfoque intuitivo para detectar la deriva de datos mediante un script de monitoreo personalizado. Puede encontrar el código asociado con la publicación en el siguiente Repositorio GitHub. Además, puede personalizar la solución para utilizar otras métricas de distancia, como máxima discrepancia media (MMD), una métrica de distancia no paramétrica para calcular la distribución marginal entre la distribución de origen y de destino en el espacio incrustado.
Acerca de los autores
Vikram Elango es Arquitecto de Soluciones Especializado en AI/ML en Amazon Web Services, con sede en Virginia, EE. UU. Vikram ayuda a los clientes de la industria financiera y de seguros con diseño y liderazgo intelectual para crear e implementar aplicaciones de aprendizaje automático a escala. Actualmente se centra en el procesamiento del lenguaje natural, la IA responsable, la optimización de inferencias y el escalado de ML en toda la empresa. En su tiempo libre, disfruta viajar, hacer caminatas, cocinar y acampar con su familia.
Raghu Ramesha es Arquitecto de soluciones de aprendizaje automático en el equipo de servicio de Amazon SageMaker. Se enfoca en ayudar a los clientes a migrar cargas de trabajo de producción de ML a SageMaker a escala. Se especializa en dominios de aprendizaje automático, IA y visión por computadora, y tiene una maestría en Ciencias de la Computación de UT Dallas. En su tiempo libre le gusta viajar y la fotografía.
Tony Chen es un arquitecto de soluciones de aprendizaje automático en Amazon Web Services, que ayuda a los clientes a diseñar capacidades de aprendizaje automático sólidas y escalables en la nube. Como ex científico de datos e ingeniero de datos, aprovecha su experiencia para ayudar a abordar algunos de los problemas más desafiantes que enfrentan las organizaciones con la puesta en funcionamiento del aprendizaje automático.
- '
- "
- 100
- 11
- 7
- Nuestra Empresa
- de la máquina
- Mi Cuenta
- a través de
- acciones
- Adicionales
- AI
- Todos
- ya haya utilizado
- Aunque
- Amazon
- Amazon SageMaker
- Amazon Web Services
- análisis
- APACHE
- Apache Spark
- aplicable
- aplicaciones
- Hoy Disponibles
- promedio
- AWS
- Base
- cuerpo
- build
- Construir la
- ir de camping
- cases
- Causar
- retos
- el cambio
- Chatbots
- clasificación
- Soluciones
- código
- Codificación
- El cobro
- integraciones
- Calcular
- Ciencias de la Computación
- Visión por computador
- Envase
- contiene
- continuo
- contrato
- cocinar
- Creamos
- Clientes
- Dallas
- datos
- calidad de los datos
- científico de datos
- Diseño
- Detección
- desarrollar
- una experiencia diferente
- discutir
- distancia
- Docker
- Contenedor Docker
- No
- dominios
- conducción
- durante
- lugar de trabajo dinámico
- Temprano en la
- encuentro
- Punto final
- ingeniero
- Inglés
- Empresa
- Entorno
- se establece
- ejemplo
- experience
- Cara
- familia
- Feature
- Caracteristicas
- financiero
- Nombre
- Flexibilidad
- Focus
- centrado
- formulario
- adelante
- Gratuito
- función
- generar
- GitHub
- es
- ayuda
- ayuda
- Alta
- Destacado
- excursionismo
- Inicio
- Cómo
- Como Hacer
- HTTPS
- imagen
- implementar
- importante
- Incluye
- energético
- información
- aseguradora
- industria de seguros
- IT
- Trabajos
- Empleo
- Etiquetas
- idioma
- large
- más reciente
- pone en marcha
- Liderazgo
- aprendizaje
- Nivel
- apalancamientos
- Biblioteca
- lingüística
- Lista
- literatura
- carga
- Ubicación
- máquina de aprendizaje
- máquina traductora
- máscara
- medir
- Métrica
- ML
- modelo
- modelos
- monitoreo
- más,
- Lenguaje natural
- Procesamiento natural del lenguaje
- del sistema,
- nlp
- .
- Ofertas
- solicite
- para las fiestas.
- Otro
- actuación
- fotografía
- Precisión
- predicción
- Predicciones
- presente
- Problema
- Producción
- proyecto
- proporcionar
- proporciona un
- Python
- piñón
- calidad
- distancia
- en tiempo real
- Realidad
- grabar
- reporte
- Informes
- respuesta
- Resultados
- reentrenamiento
- devoluciones
- marcha atrás
- una estrategia SEO para aparecer en las búsquedas de Google.
- Ejecutar
- correr
- sabio
- Escala
- la ampliación
- Ciencia:
- Sdk
- Servicios
- servicio
- set
- Turno
- similares
- sencillos
- So
- Soluciones
- Espacio
- espacios
- correo no deseado (spam)
- se especializa
- Zonas
- STORAGE
- tienda
- soportes
- Todas las funciones a su disposición
- Target
- test
- Pruebas
- pruebas
- el mundo
- pensamiento
- liderazgo de pensamiento
- equipo
- ficha
- Tokens
- parte superior
- antorcha
- tráfico
- Formación
- Traducción
- Estados Unidos de America
- Ver
- Virginia
- Virtual
- la visibilidad
- visión
- esperar
- web
- servicios web
- Wikipedia
- sin
- Actividades:
- flujo de trabajo
- mundo
- la escritura