Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Crea, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox

La manutenzione predittiva può essere un modo efficace per prevenire guasti ai macchinari industriali e costosi tempi di fermo monitorando in modo proattivo le condizioni delle apparecchiature, in modo da poter essere avvisati di eventuali anomalie prima che si verifichino guasti alle apparecchiature. L'installazione dei sensori e dell'infrastruttura necessaria per la connettività dei dati, l'archiviazione, l'analisi e gli avvisi sono gli elementi fondamentali per abilitare soluzioni di manutenzione predittiva. Tuttavia, anche dopo aver installato l'infrastruttura ad hoc, molte aziende utilizzano l'analisi dei dati di base e semplici approcci di modellazione che spesso sono inefficaci nel rilevare i problemi con sufficiente anticipo per evitare tempi di inattività. Inoltre, l'implementazione di una soluzione di machine learning (ML) per le tue apparecchiature può essere difficile e richiedere molto tempo.

Con Amazon Lookout per le attrezzature, puoi analizzare automaticamente i dati dei sensori per le tue apparecchiature industriali per rilevare il comportamento anomalo della macchina, senza che sia richiesta alcuna esperienza di machine learning. Ciò significa che puoi rilevare anomalie delle apparecchiature con velocità e precisione, diagnosticare rapidamente i problemi e agire per ridurre i costosi tempi di fermo.

Lookout for Equipment analizza i dati dei tuoi sensori e sistemi, come pressione, portata, RPM, temperatura e potenza, per addestrare automaticamente un modello specifico per la tua attrezzatura in base ai tuoi dati. Utilizza il tuo modello ML unico per analizzare i dati dei sensori in ingresso in tempo reale e identifica i primi segnali di allarme che potrebbero causare guasti alla macchina. Per ogni avviso rilevato, Lookout for Equipment individua quali sensori specifici stanno indicando il problema e l'entità dell'impatto sull'evento rilevato.

Con la missione di mettere il ML nelle mani di ogni sviluppatore, vogliamo presentare un altro componente aggiuntivo per Lookout for Equipment: un cassetta degli attrezzi Python open source che consente a sviluppatori e data scientist di creare, addestrare e distribuire modelli Lookout for Equipment in modo simile a quello a cui sei abituato Amazon Sage Maker. Questa libreria è un wrapper in cima all'API boto3 python Lookout for Equipment e viene fornita per iniziare il tuo viaggio con questo servizio. Se hai suggerimenti di miglioramento o bug da segnalare, segnala un problema con la casella degli strumenti Repository GitHub.

In questo post, forniamo una guida passo passo per l'utilizzo del toolbox Python open source Lookout for Equipment da un notebook SageMaker.

Configurazione dell'ambiente

Per utilizzare il toolbox open source Lookout for Equipment da un notebook SageMaker, è necessario concedere al notebook SageMaker le autorizzazioni necessarie per chiamare le API Lookout for Equipment. Per questo post, presupponiamo che tu abbia già creato un'istanza notebook SageMaker. Per istruzioni, fare riferimento a Inizia con le istanze notebook Amazon SageMaker. L'istanza notebook viene automaticamente associata a un ruolo di esecuzione.

  1. Per trovare il ruolo collegato all'istanza, seleziona l'istanza sulla console SageMaker.
    Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  2. Nella schermata successiva, scorri verso il basso per trovare il Gestione dell'identità e dell'accesso di AWS (IAM) allegato all'istanza in Permessi e crittografia .
  3. Scegli il ruolo per aprire la console IAM.
    Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Successivamente, alleghiamo una policy inline al nostro ruolo IAM SageMaker.

  1. Sulla Permessi scheda del ruolo che hai aperto, scegli Aggiungi la politica in linea.
    Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  2. Sulla JSON scheda, immettere il codice seguente. Usiamo un'azione jolly (lookoutequipment:*) per il servizio a scopo dimostrativo. Per casi d'uso reali, fornisci solo le autorizzazioni necessarie per eseguire le chiamate API SDK appropriate.
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. Scegli Politica di revisione.
  4. Fornire un nome per la politica e creare la politica.

Oltre alla precedente policy inline, nello stesso ruolo IAM, è necessario impostare una relazione di trust per consentire a Lookout for Equipment di assumere questo ruolo. Il ruolo SageMaker dispone già dell'accesso ai dati appropriato Servizio di archiviazione semplice Amazon (Amazon S3); consentire a Lookout for Equipment di assumere questo ruolo assicura che abbia lo stesso accesso ai dati del tuo notebook. Nel tuo ambiente, potresti già avere un ruolo specifico per garantire che Lookout for Equipment abbia accesso ai tuoi dati, nel qual caso non è necessario modificare la relazione di fiducia di questo ruolo comune.

  1. All'interno del nostro ruolo IAM SageMaker sul Relazioni di fiducia scheda, scegliere Modifica relazione di fiducia.
  2. Sotto il documento della politica, sostituire l'intera politica con il seguente codice:
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lookoutequipment.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

  3. Scegli Aggiorna la politica di fiducia.

Ora siamo pronti per utilizzare la casella degli strumenti Lookout for Equipment nel nostro ambiente notebook SageMaker. Lookout for Equipment toolbox è un pacchetto Python open source che consente ai data scientist e agli sviluppatori di software di creare e distribuire facilmente modelli di rilevamento delle anomalie di serie temporali utilizzando Lookout for Equipment. Diamo un'occhiata a cosa puoi ottenere più facilmente grazie alla cassetta degli attrezzi!

dipendenze

Al momento della scrittura, il toolbox necessita di quanto segue installato:

Dopo aver soddisfatto queste dipendenze, puoi installare e avviare la casella degli strumenti Lookout for Equipment con il seguente comando da un terminale Jupyter:

pip install lookoutequipment

La cassetta degli attrezzi è ora pronta per l'uso. In questo post, dimostriamo come utilizzare il toolbox addestrando e distribuendo un modello di rilevamento delle anomalie. Un tipico ciclo di vita di sviluppo del machine learning consiste nella creazione del set di dati per l'addestramento, l'addestramento del modello, la distribuzione del modello e l'esecuzione di inferenze sul modello. La cassetta degli attrezzi è abbastanza completa in termini di funzionalità che fornisce, ma in questo post ci concentriamo sulle seguenti capacità:

  • Prepara il set di dati
  • Addestra un modello di rilevamento delle anomalie utilizzando Lookout for Equipment
  • Crea visualizzazioni per la valutazione del tuo modello
  • Configura e avvia uno scheduler di inferenza
  • Visualizza i risultati delle inferenze dello scheduler

Capiamo come possiamo utilizzare la casella degli strumenti per ciascuna di queste capacità.

Prepara il set di dati

Lookout for Equipment richiede la creazione e l'importazione di un set di dati. Per preparare il set di dati, completare i seguenti passaggi:

  1. Prima di creare il set di dati, è necessario caricare un set di dati di esempio e caricarlo in un file Servizio di archiviazione semplice Amazon Secchio (Amazon S3). In questo post, utilizziamo il expander set di dati:
    from lookoutequipment import dataset data = dataset.load_dataset(dataset_name='expander', target_dir='expander-data')
    dataset.upload_dataset('expander-data', bucket, prefix)

Il restituito data oggetto rappresenta un dizionario contenente quanto segue:

    • Un DataFrame di dati di allenamento
    • A etichetta DataFrame
    • Le date di inizio e fine della formazione
    • Le datetime di inizio e fine della valutazione
    • Una descrizione dei tag DataFrame

I dati di addestramento ed etichetta vengono caricati dalla directory di destinazione su Amazon S3 nella posizione del bucket/prefisso.

  1. Dopo aver caricato il set di dati in S3, creiamo un oggetto di LookoutEquipmentDataset classe che gestisce il dataset:
    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()

I access_role_arn fornito deve avere accesso al bucket S3 in cui sono presenti i dati. È possibile recuperare l'ARN del ruolo dell'istanza notebook SageMaker dalla precedente Configurazione dell'ambiente sezione e aggiungi una policy IAM per concedere l'accesso al tuo bucket S3. Per ulteriori informazioni, vedere Scrittura di policy IAM: come concedere l'accesso a un bucket Amazon S3.

I component_root_dir il parametro dovrebbe indicare la posizione in Amazon S3 in cui sono archiviati i dati di addestramento.

Dopo aver lanciato le API precedenti, il nostro set di dati è stato creato.

  1. Integra i dati nel set di dati:
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

Ora che i tuoi dati sono disponibili su Amazon S3, creare un set di dati e importare i dati in esso contenuti è solo questione di tre righe di codice. Non è necessario creare manualmente un lungo schema JSON; la casella degli strumenti rileva la struttura del tuo file e la crea per te. Dopo che i tuoi dati sono stati acquisiti, è ora di passare alla formazione!

Addestrare un modello di rilevamento delle anomalie

Dopo che i dati sono stati inseriti nel set di dati, possiamo avviare il processo di addestramento del modello. Vedere il codice seguente:

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)

Prima di avviare la formazione, è necessario specificare i periodi di formazione e valutazione all'interno del set di dati. Impostiamo anche la posizione in Amazon S3 in cui vengono archiviati i dati etichettati e impostiamo la frequenza di campionamento su 5 minuti. Dopo aver lanciato la formazione, il poll_model_training interroga lo stato del lavoro di formazione ogni 5 minuti fino a quando la formazione ha esito positivo.

Il modulo di formazione del toolbox Lookout for Equipment consente di addestrare un modello con meno di 10 righe di codice. Crea per tuo conto tutte le stringhe di richiesta di creazione della lunghezza necessarie all'API di basso livello, eliminando la necessità di creare documenti JSON lunghi e soggetti a errori.

Dopo che il modello è stato addestrato, possiamo controllare i risultati durante il periodo di valutazione o configurare uno scheduler di inferenza utilizzando la casella degli strumenti.

Valuta un modello addestrato

Dopo che un modello è stato addestrato, il DescriviModello L'API di Lookout for Equipment registra le metriche associate alla formazione. Questa API restituisce un documento JSON con due campi di interesse per tracciare i risultati della valutazione: labeled_ranges ed predicted_ranges, che contengono rispettivamente le anomalie note e previste nell'intervallo di valutazione. La casella degli strumenti fornisce invece utilità per caricarli in un Pandas DataFrame:

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)

Il vantaggio di caricare gli intervalli in un DataFrame è che possiamo creare belle visualizzazioni tracciando uno dei segnali di serie temporali originali e aggiungendo una sovrapposizione degli eventi anomali etichettati e previsti utilizzando il TimeSeriesVisualization classe della cassetta degli attrezzi:

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()

Queste poche righe di codice generano una trama con le seguenti caratteristiche:

  • Un grafico a linee per il segnale selezionato; la parte utilizzata per addestrare il modello appare in blu mentre la parte di valutazione è in grigio
  • La media mobile appare come una sottile linea rossa sovrapposta alla serie storica
  • Le etichette sono visualizzate in un nastro verde etichettato "Anomalie note" (per impostazione predefinita)
  • Gli eventi previsti sono mostrati in un nastro rosso etichettato "Eventi rilevati"

Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

La casella degli strumenti esegue tutte le operazioni pesanti di individuazione, caricamento e analisi dei file JSON fornendo al contempo visualizzazioni pronte per l'uso che riducono ulteriormente il tempo per ottenere informazioni dettagliate dai modelli di rilevamento delle anomalie. In questa fase, il toolbox ti consente di concentrarti sull'interpretazione dei risultati e di intraprendere azioni per fornire valore commerciale diretto ai tuoi utenti finali. Oltre a queste visualizzazioni di serie temporali, l'SDK fornisce altri grafici come un confronto dell'istogramma dei valori dei segnali tra tempi normali e anormali. Per ulteriori informazioni sulle altre funzionalità di visualizzazione che puoi utilizzare immediatamente, consulta il Cerca la documentazione della cassetta degli attrezzi dell'attrezzatura.

Programma inferenza

Vediamo come possiamo programmare le inferenze utilizzando la casella degli strumenti:

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()

Questo codice crea uno scheduler che elabora un file ogni 5 minuti (corrispondente alla frequenza di caricamento impostata durante la configurazione dello scheduler). Dopo circa 15 minuti, dovremmo avere alcuni risultati disponibili. Per ottenere questi risultati dallo scheduler in un Pandas DataFrame, dobbiamo solo eseguire il seguente comando:

results_df = lookout_scheduler.get_predictions()

Da qui, possiamo anche tracciare l'importanza della funzionalità per una previsione utilizzando le API di visualizzazione della casella degli strumenti:

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

Produce la seguente visualizzazione dell'importanza delle funzionalità sui dati di esempio.

Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

La casella degli strumenti fornisce anche un'API per arrestare lo scheduler. Vedi il seguente frammento di codice:

scheduler.stop()

ripulire

Per eliminare tutti gli artefatti creati in precedenza, possiamo chiamare il delete_dataset API con il nome del nostro set di dati:

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

Conclusione

Quando parliamo con clienti industriali e manifatturieri, una sfida comune che sentiamo riguardo all'utilizzo di IA e ML è l'enorme quantità di personalizzazione e sviluppo specifico e lavoro di scienza dei dati necessari per ottenere risultati affidabili e attuabili. La formazione di modelli di rilevamento delle anomalie e l'ottenimento di avvisi attuabili per molti diversi macchinari industriali è un prerequisito per ridurre gli sforzi di manutenzione, ridurre le rilavorazioni o gli sprechi, aumentare la qualità del prodotto e migliorare l'efficienza complessiva delle apparecchiature (OEE) o le linee di prodotti. Finora, ciò richiedeva un'enorme quantità di lavoro di sviluppo specifico, difficile da scalare e mantenere nel tempo.

I servizi di intelligenza artificiale applicata di Amazon come Lookout for Equipment consentono ai produttori di creare modelli di intelligenza artificiale senza avere accesso a un team versatile di data scientist, ingegneri di dati e ingegneri di processo. Ora, con il toolbox Lookout for Equipment, i tuoi sviluppatori possono ridurre ulteriormente il tempo necessario per esplorare le informazioni dettagliate nei dati delle serie temporali e agire. Questo toolbox fornisce un'interfaccia facile da usare e di facile utilizzo per gli sviluppatori per creare rapidamente modelli di rilevamento delle anomalie utilizzando Lookout for Equipment. La cassetta degli attrezzi è open source e tutto il codice SDK può essere trovato su amazon-lookout-per-attrezzature-python-sdk repository GitHub. È disponibile anche come Pacchetto PyPi.

Questo post copre solo alcune delle API più importanti. I lettori interessati possono consultare il documentazione della cassetta degli attrezzi per esaminare le funzionalità più avanzate della casella degli strumenti. Provalo e facci sapere cosa ne pensi nei commenti!


Informazioni sugli autori

Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Vikesh Pandey è uno specialista in Machine Learning Specialist Solutions Architect presso AWS, che aiuta i clienti nel Regno Unito e nella più ampia regione EMEA a progettare e creare soluzioni ML. Al di fuori del lavoro, a Vikesh piace provare diverse cucine e praticare sport all'aria aperta.

Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Ioan Catana è un architetto specializzato in soluzioni di intelligenza artificiale e machine learning presso AWS. Aiuta i clienti a sviluppare e ridimensionare le loro soluzioni di machine learning nel cloud AWS. Ioan ha oltre 20 anni di esperienza, principalmente nella progettazione di architetture software e nell'ingegneria del cloud.

Costruisci, addestra e distribuisci modelli Amazon Lookout for Equipment utilizzando Python Toolbox PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Michael Hoarau è un AI/ML Specialist Solutions Architect presso AWS che alterna tra data scientist e machine learning architect, a seconda del momento. È appassionato di portare la potenza dell'IA/ML nelle officine dei suoi clienti industriali e ha lavorato su un'ampia gamma di casi d'uso di ML, che vanno dal rilevamento delle anomalie alla qualità predittiva del prodotto o all'ottimizzazione della produzione. Quando non aiuta i clienti a sviluppare le prossime migliori esperienze di apprendimento automatico, gli piace osservare le stelle, viaggiare o suonare il piano.

Timestamp:

Di più da Apprendimento automatico di AWS