Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox

El mantenimiento predictivo puede ser una forma eficaz de evitar fallas en la maquinaria industrial y costosos tiempos de inactividad al monitorear de manera proactiva la condición de su equipo, para que pueda recibir alertas sobre cualquier anomalía antes de que ocurran fallas en el equipo. La instalación de sensores y la infraestructura necesaria para la conectividad, el almacenamiento, el análisis y las alertas de datos son los elementos fundamentales para permitir soluciones de mantenimiento predictivo. Sin embargo, incluso después de instalar la infraestructura ad hoc, muchas empresas utilizan análisis de datos básicos y enfoques de modelado simple que a menudo son ineficaces para detectar problemas con la suficiente antelación para evitar el tiempo de inactividad. Además, implementar una solución de aprendizaje automático (ML) para su equipo puede ser difícil y llevar mucho tiempo.

Con Amazon Lookout para equipos, puede analizar automáticamente los datos de los sensores de su equipo industrial para detectar el comportamiento anormal de la máquina, sin necesidad de experiencia en aprendizaje automático. Esto significa que puede detectar anomalías en los equipos con velocidad y precisión, diagnosticar problemas rápidamente y tomar medidas para reducir el costoso tiempo de inactividad.

Lookout for Equipment analiza los datos de sus sensores y sistemas, como la presión, el caudal, las RPM, la temperatura y la potencia, para entrenar automáticamente un modelo específico para su equipo en función de sus datos. Utiliza su modelo ML único para analizar los datos de los sensores entrantes en tiempo real e identifica las primeras señales de advertencia que podrían provocar fallas en la máquina. Para cada alerta detectada, Lookout for Equipment señala qué sensores específicos indican el problema y la magnitud del impacto en el evento detectado.

Con la misión de poner ML en manos de todos los desarrolladores, queremos presentar otro complemento para Lookout for Equipment: un caja de herramientas Python de código abierto que permite a los desarrolladores y científicos de datos crear, entrenar e implementar modelos de Lookout for Equipment de manera similar a lo que está acostumbrado Amazon SageMaker. Esta biblioteca es un envoltorio sobre la API de python de Lookout for Equipment boto3 y se proporciona para iniciar su viaje con este servicio. Si tiene alguna sugerencia de mejora o error para informar, presente un problema en la caja de herramientas Repositorio GitHub.

En esta publicación, proporcionamos una guía paso a paso para usar la caja de herramientas Python de código abierto Lookout for Equipment desde dentro de un cuaderno SageMaker.

Configuración del entorno

Para usar la caja de herramientas Lookout for Equipment de código abierto desde un cuaderno de SageMaker, debemos otorgar al cuaderno de SageMaker los permisos necesarios para llamar a las API de Lookout for Equipment. Para esta publicación, asumimos que ya ha creado una instancia de cuaderno de SageMaker. Para obtener instrucciones, consulte Introducción a las instancias de portátiles de Amazon SageMaker. La instancia del cuaderno se asocia automáticamente con un rol de ejecución.

  1. Para encontrar el rol asociado a la instancia, seleccione la instancia en la consola de SageMaker.
    Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  2. En la pantalla siguiente, desplácese hacia abajo para encontrar el Gestión de identidades y accesos de AWS (IAM) asociado a la instancia en el Permisos y cifrado .
  3. Elija el rol para abrir la consola de IAM.
    Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

A continuación, adjuntamos una política en línea a nuestro rol de SageMaker IAM.

  1. En Permisos pestaña del rol que abrió, elija Agregar política en línea.
    Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
  2. En JSON pestaña, ingrese el siguiente código. Usamos una acción comodín (lookoutequipment:*) para el servicio con fines de demostración. Para casos de uso reales, proporcione solo los permisos necesarios para ejecutar las llamadas a la API del SDK correspondientes.
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. Elige Política de revisión.
  4. Proporcione un nombre para la política y cree la política.

Además de la política en línea anterior, en el mismo rol de IAM, debemos establecer una relación de confianza para permitir que Lookout for Equipment asuma este rol. El rol de SageMaker ya tiene el acceso de datos apropiado para Servicio de almacenamiento simple de Amazon (Amazon S3); permitir que Lookout for Equipment asuma esta función garantiza que tenga el mismo acceso a los datos que su computadora portátil. En su entorno, es posible que ya tenga una función específica que garantice que Lookout for Equipment tenga acceso a sus datos, en cuyo caso no necesita ajustar la relación de confianza de esta función común.

  1. Dentro de nuestro rol de SageMaker IAM en el Relaciones de confianza pestaña, elegir Editar relación de confianza.
  2. En el documento de la política, reemplace toda la política con el siguiente código:
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lookoutequipment.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

  3. Elige Actualizar la política de confianza.

Ahora estamos listos para usar la caja de herramientas Lookout for Equipment en nuestro entorno de notebook SageMaker. La caja de herramientas de Lookout for Equipment es un paquete Python de código abierto que permite a los científicos de datos y desarrolladores de software crear e implementar fácilmente modelos de detección de anomalías de series temporales mediante Lookout for Equipment. ¡Veamos qué puedes lograr más fácilmente gracias a la caja de herramientas!

Dependencias

Al momento de escribir, la caja de herramientas necesita lo siguiente instalado:

Después de satisfacer estas dependencias, puede instalar e iniciar la caja de herramientas Lookout for Equipment con el siguiente comando desde una terminal Jupyter:

pip install lookoutequipment

La caja de herramientas ya está lista para usar. En esta publicación, demostramos cómo usar la caja de herramientas entrenando e implementando un modelo de detección de anomalías. Un ciclo de vida típico de desarrollo de ML consiste en crear el conjunto de datos para el entrenamiento, entrenar el modelo, implementar el modelo y realizar inferencias en el modelo. La caja de herramientas es bastante completa en cuanto a las funcionalidades que proporciona, pero en esta publicación nos centramos en las siguientes capacidades:

  • Preparar el conjunto de datos
  • Entrene un modelo de detección de anomalías usando Lookout for Equipment
  • Cree visualizaciones para la evaluación de su modelo
  • Configurar e iniciar un programador de inferencia
  • Visualice los resultados de las inferencias del programador

Comprendamos cómo podemos usar la caja de herramientas para cada una de estas capacidades.

Preparar el conjunto de datos

Lookout for Equipment requiere que se cree e integre un conjunto de datos. Para preparar el conjunto de datos, complete los siguientes pasos:

  1. Antes de crear el conjunto de datos, necesitamos cargar un conjunto de datos de muestra y subirlo a un Servicio de almacenamiento simple de Amazon (Amazon S3) cubeta. En esta publicación, usamos el expander conjunto de datos:
    from lookoutequipment import dataset data = dataset.load_dataset(dataset_name='expander', target_dir='expander-data')
    dataset.upload_dataset('expander-data', bucket, prefix)

El retorno data object representa un diccionario que contiene lo siguiente:

    • Un DataFrame de datos de entrenamiento
    • Un marco de datos de etiquetas
    • Las fechas y horas de inicio y finalización del entrenamiento
    • Las fechas y horas de inicio y finalización de la evaluación
    • Una descripción de etiquetas DataFrame

Los datos de capacitación y etiqueta se cargan desde el directorio de destino a Amazon S3 en la ubicación del depósito/prefijo.

  1. Después de cargar el conjunto de datos en S3, creamos un objeto de LookoutEquipmentDataset clase que gestiona el conjunto de datos:
    lookout_dataset = dataset.LookoutEquipmentDataset( dataset_name='my_dataset', access_role_arn=role_arn, component_root_dir=f's3://{bucket}/{prefix}training-data'
    ) # creates the dataset
    lookout_dataset.create()

El access_role_arn suministrado debe tener acceso al depósito S3 donde están presentes los datos. Puede recuperar el ARN de la función de la instancia del cuaderno de SageMaker de la anterior Configuración del entorno y agregue una política de IAM para otorgar acceso a su depósito S3. Para más información, ver Redacción de políticas de IAM: cómo otorgar acceso a un bucket de Amazon S3.

El component_root_dir El parámetro debe indicar la ubicación en Amazon S3 donde se almacenan los datos de entrenamiento.

Después de lanzar las API anteriores, se ha creado nuestro conjunto de datos.

  1. Ingerir los datos en el conjunto de datos:
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

Ahora que sus datos están disponibles en Amazon S3, crear un conjunto de datos e ingerir los datos en él es solo una cuestión de tres líneas de código. No necesita crear manualmente un esquema JSON largo; la caja de herramientas detecta la estructura de su archivo y la crea para usted. Después de ingerir sus datos, ¡es hora de pasar a la capacitación!

Entrenar un modelo de detección de anomalías

Una vez que los datos se han ingerido en el conjunto de datos, podemos comenzar el proceso de entrenamiento del modelo. Ver el siguiente código:

from lookoutequipment import model lookout_model = model.LookoutEquipmentModel(model_name='my_model', dataset_name='my_dataset') lookout_model.set_time_periods(data['evaluation_start'],data['evaluation_end'],data['training_start'],data['training_end'])
lookout_model.set_label_data(bucket=bucket,prefix=prefix + 'label-data/',access_role_arn=role_arn)
lookout_model.set_target_sampling_rate(sampling_rate='PT5M') #trigger training job
response = lookout_model.train() #poll every 5 minutes to check the status of the training job
lookout_model.poll_model_training(sleep_time=300)

Antes de lanzar la capacitación, debemos especificar los períodos de capacitación y evaluación dentro del conjunto de datos. También establecemos la ubicación en Amazon S3 donde se almacenan los datos etiquetados y establecemos la frecuencia de muestreo en 5 minutos. Después de que lanzamos la capacitación, el poll_model_training sondea el estado del trabajo de entrenamiento cada 5 minutos hasta que el entrenamiento sea exitoso.

El módulo de entrenamiento de la caja de herramientas Lookout for Equipment le permite entrenar un modelo con menos de 10 líneas de código. Crea todas las cadenas de solicitud de creación de longitud que necesita la API de bajo nivel en su nombre, lo que elimina la necesidad de que cree documentos JSON largos y propensos a errores.

Después de entrenar el modelo, podemos verificar los resultados durante el período de evaluación o configurar un programador de inferencias usando la caja de herramientas.

Evaluar un modelo entrenado

Después de entrenar un modelo, el DescribirModelo La API de Lookout for Equipment registra las métricas asociadas al entrenamiento. Esta API devuelve un documento JSON con dos campos de interés para trazar los resultados de la evaluación: labeled_ranges y predicted_ranges, que contienen las anomalías conocidas y previstas en el rango de evaluación, respectivamente. La caja de herramientas proporciona utilidades para cargarlos en un Pandas DataFrame en su lugar:

from lookoutequipment import evaluation LookoutDiagnostics = evaluation.LookoutEquipmentAnalysis(model_name='my_model', tags_df=data['data']) predicted_ranges = LookoutDiagnostics.get_predictions()
labels_fname = os.path.join('expander-data', 'labels.csv')
labeled_range = LookoutDiagnostics.get_labels(labels_fname)

La ventaja de cargar los rangos en un DataFrame es que podemos crear bonitas visualizaciones trazando una de las señales de series de tiempo originales y agregar una superposición de los eventos anómalos etiquetados y predichos usando el TimeSeriesVisualization clase de la caja de herramientas:

from lookoutequipment import plot TSViz = plot.TimeSeriesVisualization(timeseries_df=data['data'], data_format='tabular')
TSViz.add_signal(['signal-001'])
TSViz.add_labels(labeled_range)
TSViz.add_predictions([predicted_ranges])
TSViz.add_train_test_split(data['evaluation_start'])
TSViz.add_rolling_average(60*24)
TSViz.legend_format = {'loc': 'upper left', 'framealpha': 0.4, 'ncol': 3}
fig, axis = TSViz.plot()

Estas pocas líneas de código generan un gráfico con las siguientes características:

  • Un gráfico de líneas para la señal seleccionada; la parte utilizada para entrenar el modelo aparece en azul mientras que la parte de evaluación está en gris
  • El promedio móvil aparece como una delgada línea roja superpuesta sobre la serie temporal
  • Las etiquetas se muestran en una cinta verde con la etiqueta "Anomalías conocidas" (por defecto)
  • Los eventos pronosticados se muestran en una cinta roja etiquetada como "Eventos detectados"

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

La caja de herramientas realiza todo el trabajo pesado de ubicar, cargar y analizar los archivos JSON mientras proporciona visualizaciones listas para usar que reducen aún más el tiempo para obtener información de sus modelos de detección de anomalías. En esta etapa, la caja de herramientas le permite concentrarse en interpretar los resultados y tomar medidas para brindar valor comercial directo a sus usuarios finales. Además de estas visualizaciones de series temporales, el SDK proporciona otros gráficos, como una comparación de histogramas de los valores de sus señales entre tiempos normales y anormales. Para obtener más información sobre las otras capacidades de visualización que puede usar de forma inmediata, consulte la Búsqueda de la documentación de la caja de herramientas del equipo.

Programar inferencia

Veamos cómo podemos programar inferencias usando la caja de herramientas:

from lookout import scheduler #prepare dummy inference data
dataset.prepare_inference_data( root_dir='expander-data', sample_data_dict=data, bucket=bucket, prefix=prefix
) #setup the scheduler
lookout_scheduler = scheduler.LookoutEquipmentScheduler(scheduler_name='my_scheduler',model_name='my_model')
scheduler_params = { 'input_bucket': bucket, 'input_prefix': prefix + 'inference-data/input/', 'output_bucket': bucket, 'output_prefix': prefix + 'inference-data/output/', 'role_arn': role_arn, 'upload_frequency': 'PT5M', 'delay_offset': None, 'timezone_offset': '+00:00', 'component_delimiter': '_', 'timestamp_format': 'yyyyMMddHHmmss' } lookout_scheduler.set_parameters(**scheduler_params)
response = lookout_scheduler.create()

Este código crea un programador que procesa un archivo cada 5 minutos (que coincide con la frecuencia de carga establecida al configurar el programador). Después de unos 15 minutos, deberíamos tener algunos resultados disponibles. Para obtener estos resultados del programador en un Pandas DataFrame, solo tenemos que ejecutar el siguiente comando:

results_df = lookout_scheduler.get_predictions()

Desde aquí, también podemos trazar la importancia de la característica para una predicción utilizando las API de visualización de la caja de herramientas:

event_details = pd.DataFrame(results_df.iloc[0, 1:]).reset_index()
fig, ax = plot.plot_event_barh(event_details)

Produce la siguiente visualización de importancia de características en los datos de muestra.

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

La caja de herramientas también proporciona una API para detener el programador. Consulte el siguiente fragmento de código:

scheduler.stop()

Limpiar

Para eliminar todos los artefactos creados anteriormente, podemos llamar al delete_dataset API con el nombre de nuestro conjunto de datos:

dataset.delete_dataset(dataset_name='my_dataset', delete_children=True, verbose=True)

Conclusión

Cuando hablamos con clientes industriales y de fabricación, un desafío común que escuchamos con respecto a aprovechar AI y ML es la gran cantidad de personalización y desarrollo específico y trabajo de ciencia de datos necesarios para obtener resultados confiables y procesables. La capacitación de modelos de detección de anomalías y la obtención de advertencias procesables para muchas maquinarias industriales diferentes es un requisito previo para reducir el esfuerzo de mantenimiento, reducir el reproceso o el desperdicio, aumentar la calidad del producto y mejorar la eficiencia general del equipo (OEE) o las líneas de productos. Hasta ahora, esto requería una gran cantidad de trabajo de desarrollo específico, que es difícil de escalar y mantener a lo largo del tiempo.

Los servicios de IA aplicada de Amazon, como Lookout for Equipment, permiten a los fabricantes crear modelos de IA sin tener acceso a un equipo versátil de científicos de datos, ingenieros de datos e ingenieros de procesos. Ahora, con la caja de herramientas Lookout for Equipment, sus desarrolladores pueden reducir aún más el tiempo necesario para explorar los conocimientos en sus datos de series temporales y tomar medidas. Esta caja de herramientas proporciona una interfaz fácil de usar y amigable para los desarrolladores para construir rápidamente modelos de detección de anomalías utilizando Lookout for Equipment. La caja de herramientas es de código abierto y todo el código SDK se puede encontrar en el amazon-lookout-para-equipos-python-sdk repositorio de GitHub. También está disponible como Paquete PyPi.

Esta publicación cubre solo algunas de las API más importantes. Los lectores interesados ​​pueden consultar el documentación de la caja de herramientas para ver capacidades más avanzadas de la caja de herramientas. ¡Pruébalo y déjanos saber lo que piensas en los comentarios!


Acerca de los autores

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.vikesh pandey es un especialista en aprendizaje automático, especialista en soluciones, arquitecto en AWS, que ayuda a los clientes en el Reino Unido y en la región EMEA más amplia a diseñar y crear soluciones de aprendizaje automático. Fuera del trabajo, a Vikesh le gusta probar diferentes cocinas y practicar deportes al aire libre.

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.ioan catana es Arquitecto de Soluciones Especializado en Inteligencia Artificial y Aprendizaje Automático en AWS. Ayuda a los clientes a desarrollar y escalar sus soluciones de aprendizaje automático en la nube de AWS. Ioan tiene más de 20 años de experiencia, principalmente en diseño de arquitectura de software e ingeniería en la nube.

Cree, entrene e implemente modelos de Amazon Lookout for Equipment con Python Toolbox PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Michael Hoarau es un arquitecto de soluciones especialista en IA/ML en AWS que alterna entre científico de datos y arquitecto de aprendizaje automático, según el momento. Le apasiona llevar el poder de AI/ML a los talleres de sus clientes industriales y ha trabajado en una amplia gama de casos de uso de ML, que van desde la detección de anomalías hasta la calidad predictiva del producto o la optimización de la fabricación. Cuando no está ayudando a los clientes a desarrollar las próximas mejores experiencias de aprendizaje automático, le gusta observar las estrellas, viajar o tocar el piano.

Sello de tiempo:

Mas de Aprendizaje automático de AWS