Виявляйте аномалії у виробничих даних за допомогою Amazon SageMaker Canvas | Веб-сервіси Amazon

Виявляйте аномалії у виробничих даних за допомогою Amazon SageMaker Canvas | Веб-сервіси Amazon

З використанням хмарних обчислень, великих даних і інструментів машинного навчання (ML), таких як Амазонка Афіна or Amazon SageMaker стали доступними та придатними для використання будь-ким без особливих зусиль у створенні та підтримці. Промислові компанії все більше звертають увагу на аналітику даних і прийняття рішень на основі даних, щоб підвищити ефективність використання ресурсів у всьому своєму портфоліо, від операцій до виконання прогнозного обслуговування або планування.

Через швидкість змін в ІТ клієнти в традиційних галузях стикаються з дилемою набору навичок. З одного боку, аналітики та експерти в області мають дуже глибокі знання про дані, про які йде мова, і їх інтерпретацію, але часто не мають доступу до інструментів науки про дані та мов програмування високого рівня, таких як Python. З іншого боку, фахівцям з обробки даних часто не вистачає досвіду, щоб інтерпретувати вміст машинних даних і фільтрувати їх за релевантністю. Ця дилема перешкоджає створенню ефективних моделей, які використовують дані для створення важливих для бізнесу ідей.

Canvas Amazon SageMaker вирішує цю дилему, надаючи експертам домену безкодовий інтерфейс для створення потужної аналітики та моделей машинного навчання, таких як прогнози, класифікація або регресійні моделі. Це також дозволяє розгортати та ділитися цими моделями зі спеціалістами з ML і MLOps після створення.

У цій публікації ми покажемо вам, як використовувати SageMaker Canvas для курування та вибору правильних функцій у ваших даних, а потім навчити модель прогнозування для виявлення аномалій, використовуючи функцію без коду SageMaker Canvas для налаштування моделі.

Виявлення аномалій для обробної промисловості

На момент написання статті SageMaker Canvas зосереджується на типових бізнес-випадках використання, таких як прогнозування, регресія та класифікація. У цій публікації ми демонструємо, як ці можливості також можуть допомогти виявити складні аномальні точки даних. Цей варіант використання доречний, наприклад, для визначення несправностей або незвичних операцій промислових машин.

Виявлення аномалій є важливим у галузевій сфері, оскільки машини (від поїздів до турбін) зазвичай дуже надійні, а час між відмовами охоплює роки. Більшість даних із цих машин, як-от показники датчика температури або повідомлення про стан, описують нормальну роботу та мають обмежене значення для прийняття рішень. Інженери шукають аномальні дані під час дослідження основних причин несправності або як індикатори попередження про майбутні несправності, а менеджери з продуктивності перевіряють ненормальні дані, щоб визначити потенційні покращення. Тому типовий перший крок у переході до прийняття рішень на основі даних залежить від пошуку відповідних (ненормальних) даних.

У цьому дописі ми використовуємо SageMaker Canvas, щоб курувати та вибирати правильні функції в даних, а потім навчаємо модель прогнозування для виявлення аномалій, використовуючи функцію без коду SageMaker Canvas для налаштування моделі. Потім ми розгортаємо модель як кінцеву точку SageMaker.

Огляд рішення

Для нашого випадку використання виявлення аномалій ми навчаємо модель прогнозування, щоб передбачати характерну характеристику нормальної роботи машини, таку як температура двигуна, що вказується в автомобілі, на основі впливаючих характеристик, таких як швидкість і останній крутний момент, застосований в автомобілі . Для виявлення аномалії на новій вибірці вимірювань ми порівнюємо прогнози моделі для характерної ознаки з наданими спостереженнями.

Для прикладу автомобільного двигуна експерт у галузі отримує вимірювання нормальної температури двигуна, останнього крутного моменту двигуна, температури навколишнього середовища та інших потенційних факторів впливу. Це дозволяє навчити модель передбачати температуру на основі інших функцій. Потім ми можемо використовувати модель для регулярного прогнозування температури двигуна. Коли прогнозована температура для цих даних подібна до спостережуваної температури в цих даних, двигун працює нормально; невідповідність вкаже на аномалію, наприклад, на несправність системи охолодження або дефект двигуна.

Наступна діаграма ілюструє архітектуру рішення.

Огляд процесу: модель створюється в SageMaker Canvas, розгортається та отримує доступ із AWS Lambda Funcino.

Рішення складається з чотирьох ключових кроків:

  1. Експерт домену створює початкову модель, включаючи аналіз даних і коригування функцій за допомогою SageMaker Canvas.
  2. Експерт домену ділиться моделлю через Реєстр моделей Amazon SageMaker або розгортає його безпосередньо як кінцеву точку реального часу.
  3. Експерт MLOps створює інфраструктуру висновків і код, що перетворює вихідні дані моделі з прогнозу в індикатор аномалії. Цей код зазвичай виконується всередині AWS Lambda функції.
  4. Коли програма потребує виявлення аномалії, вона викликає функцію Lambda, яка використовує модель для висновку та надає відповідь (незалежно від того, чи є це аномалією).

Передумови

Щоб продовжити цю публікацію, ви повинні відповідати таким умовам:

Створіть модель за допомогою SageMaker

Процес створення моделі виконується за стандартними кроками для створення регресійної моделі в SageMaker Canvas. Для отримання додаткової інформації див Початок роботи з Amazon SageMaker Canvas.

По-перше, експерт домену завантажує відповідні дані в SageMaker Canvas, наприклад часові ряди вимірювань. Для цієї публікації ми використовуємо файл CSV, що містить (згенеровані штучно) вимірювання електродвигуна. Детальніше див Імпортуйте дані в Canvas. Використані зразки даних доступні для завантаження як a CSV.

Малюнок, на якому показано перші рядки csv. Крім того, для моделі швидкого попереднього перегляду показано гістограму та контрольні показники.

Опрацюйте дані за допомогою SageMaker Canvas

Після завантаження даних експерт домену може використовувати SageMaker Canvas, щоб керувати даними, які використовуються в остаточній моделі. Для цього експерт вибирає ті стовпці, які містять характерні вимірювання для розглянутої проблеми. Точніше кажучи, експерт вибирає стовпці, які пов’язані один з одним, наприклад, фізичним співвідношенням, таким як крива тиску та температури, і де зміна цього співвідношення є відповідною аномалією для їхнього випадку використання. Модель виявлення аномалій вивчатиме нормальний зв’язок між вибраними стовпцями та вказуватиме, коли дані їм не відповідають, наприклад аномально висока температура двигуна з огляду на поточне навантаження на двигун.

На практиці експерт домену повинен вибрати набір відповідних вхідних стовпців і цільовий стовпець. Вхідні дані зазвичай являють собою набір величин (числових або категорійних), які визначають поведінку машини, від налаштувань попиту до навантаження, швидкості або температури навколишнього середовища. Вихідні дані, як правило, є числовою величиною, яка вказує на ефективність роботи машини, таку як розсіювання енергії для вимірювання температури або інший показник продуктивності, що змінюється, коли машина працює в неоптимальних умовах.

Щоб проілюструвати концепцію того, які величини вибрати для введення та виведення, розглянемо кілька прикладів:

  • Для обертового обладнання, такого як модель, яку ми створюємо в цій публікації, типовими вхідними даними є швидкість обертання, крутний момент (поточний і попередній) і температура навколишнього середовища, а цільовими значеннями є результуюча температура підшипника або двигуна, що вказує на хороші робочі умови обертання.
  • Для вітряної турбіни типовими вхідними даними є поточна та нещодавня історія швидкості вітру та налаштувань лопаті ротора, а цільовою величиною є вироблена потужність або швидкість обертання
  • Для хімічного процесу типовими вхідними даними є відсоток різних інгредієнтів і температура навколишнього середовища, а цільовими показниками є виділене тепло або в’язкість кінцевого продукту.
  • Для рухомого обладнання, такого як розсувні двері, типовими вхідними даними є вхідна потужність двигунів, а цільовим значенням є швидкість або час завершення руху
  • Для системи HVAC типовими вхідними даними є досягнута різниця температур і налаштування навантаження, а цільовою величиною є виміряне споживання енергії

Зрештою, правильні вхідні дані та цілі для даного обладнання залежатимуть від варіанту використання та аномальної поведінки, яку потрібно виявити, і найкраще відомі фахівцеві в галузі, який знайомий із тонкощами конкретного набору даних.

У більшості випадків вибір відповідних вхідних і цільових кількостей означає вибір лише правих стовпців і позначення цільового стовпця (для цього прикладу, bearing_temperature). Однак експерт із домену також може використовувати функції без коду SageMaker Canvas для трансформації стовпців і уточнення чи агрегування даних. Наприклад, ви можете витягнути або відфільтрувати конкретні дати чи позначки часу з даних, які не є актуальними. SageMaker Canvas підтримує цей процес, показуючи статистику вибраних кількостей, що дає змогу зрозуміти, чи кількість має викиди та розкид, який може вплинути на результати моделі.

Тренуйте, налаштовуйте та оцінюйте модель

Після того як експерт домену вибере відповідні стовпці в наборі даних, він може навчити модель вивчати зв’язок між вхідними та вихідними даними. Точніше, модель навчиться прогнозувати цільове значення, вибране з вхідних даних.

Зазвичай ви можете використовувати полотно SageMaker Попередній перегляд моделі варіант. Це забезпечує швидку індикацію очікуваної якості моделі та дозволяє досліджувати вплив різних вхідних даних на вихідну метрику. Наприклад, на наступному скріншоті модель найбільше постраждала від motor_speed та ambient_temperature метрики при прогнозуванні bearing_temperature. Це розумно, оскільки ці температури тісно пов’язані. У той же час додаткове тертя або інші засоби втрати енергії можуть впливати на це.

Що стосується якості моделі, RMSE моделі є індикатором того, наскільки добре модель змогла вивчити нормальну поведінку в навчальних даних і відтворити зв’язки між вхідними та вихідними показниками. Наприклад, у наведеній нижче моделі модель повинна мати можливість передбачити правильне motor_bearing температура в межах 3.67 градусів за Цельсієм, тому ми можемо розглядати відхилення реальної температури від прогнозу моделі, яке перевищує, наприклад, 7.4 градуса, як аномалію. Однак реальний поріг, який ви використовуватимете, залежатиме від чутливості, необхідної в сценарії розгортання.

Графік, що показує фактичну та прогнозовану швидкість двигуна. Зв'язок лінійний з деяким шумом.

Нарешті, після завершення оцінювання та налаштування моделі ви можете розпочати повне навчання моделі, яке створить модель для використання для висновків.

Розгортання моделі

Хоча SageMaker Canvas може використовувати модель для висновків, продуктивне розгортання для виявлення аномалій вимагає розгортання моделі за межами SageMaker Canvas. Точніше, нам потрібно розгорнути модель як кінцеву точку.

У цій публікації для простоти ми розгортаємо модель як кінцеву точку безпосередньо з SageMaker Canvas. Інструкції див Розгорніть свої моделі до кінцевої точки. Обов’язково запам’ятайте назву розгортання та врахуйте ціну типу інсталяції, на якій ви розгортаєте (для цієї публікації ми використовуємо ml.m5.large). Потім SageMaker Canvas створить кінцеву точку моделі, яку можна викликати для отримання прогнозів.

Вікно програми, що показує конфігурацію розгортання моделі. Показані параметри – це розмір машини ml.m5.large та ім’я розгортання sample-anomaly-model.

У промислових умовах модель має пройти ретельне тестування, перш ніж її можна буде розгорнути. Для цього експерт домену не розгортатиме її, а натомість надасть модель реєстру моделей SageMaker. Тут може взяти на себе експерт з операцій MLOps. Як правило, цей експерт перевірить кінцеву точку моделі, оцінить розмір обчислювального обладнання, необхідного для цільової програми, і визначить найбільш економічно ефективне розгортання, наприклад розгортання безсерверного висновку або пакетного висновку. Ці кроки зазвичай автоматизовані (наприклад, за допомогою Трубопроводи Amazon Sagemaker або Amazon SDK).

Зображення, на якому показано кнопку для надання спільного доступу до моделі з Amazon Sgemaker до реєстру моделей.

Використовуйте модель для виявлення аномалій

На попередньому кроці ми створили розгортання моделі в SageMaker Canvas під назвою canvas-sample-anomaly-model. Ми можемо використовувати його для отримання прогнозів a bearing_temperature значення на основі інших стовпців у наборі даних. Тепер ми хочемо використовувати цю кінцеву точку для виявлення аномалій.

Щоб виявити аномальні дані, наша модель використовуватиме кінцеву точку моделі прогнозування, щоб отримати очікуване значення цільової метрики, а потім порівняти прогнозоване значення з фактичним значенням у даних. Прогнозоване значення вказує на очікуване значення для нашої цільової метрики на основі даних навчання. Таким чином, різниця цього значення є показником ненормальності фактичних спостережуваних даних. Ми можемо використовувати такий код:

# We are using pandas dataframes for data handling
import pandas as pd import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime') # Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' def do_inference(data, endpoint_name): # Example Code provided by Sagemaker Canvas body = data.to_csv(header=False, index=True).encode("utf-8") response = sm_runtime_client.invoke_endpoint(Body = body, EndpointName = endpoint_name, ContentType = "text/csv", Accept = "application/json", ) return json.loads(response["Body"].read()) def input_transformer(input_data, drop_cols = [ TARGET_COL ] ): # Transform the input: Drop the Target column return input_data.drop(drop_cols,axis =1 ) def output_transformer(input_data,response): # Take the initial input data and compare it to the response of the prediction model scored = input_data.copy() scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index )['score'] scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs() return scored # Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

Попередній код виконує такі дії:

  1. Вхідні дані фільтруються до потрібних функцій (функція «input_transformer).
  2. Кінцева точка моделі SageMaker викликається з відфільтрованими даними (функція "do_inference“), де ми обробляємо форматування введення та виведення відповідно до зразка коду, який надається під час відкриття сторінки деталей нашого розгортання в SageMaker Canvas.
  3. Результат виклику приєднується до вихідних вхідних даних, а різниця зберігається в стовпці помилок (функція “output_transform).

Знайдіть аномалії та оцініть аномальні події

У типовій установці код для отримання аномалій виконується у функції Лямбда. Функцію Lambda можна викликати з програми або API -шлюз Amazon. Основна функція повертає оцінку аномалії для кожного рядка вхідних даних — у цьому випадку часовий ряд оцінки аномалії.

Для тестування ми також можемо запустити код у блокноті SageMaker. Наступні графіки показують вхідні та вихідні дані нашої моделі при використанні вибіркових даних. Піки у відхиленні між прогнозованими та фактичними значеннями (оцінка аномалії, показана на нижньому графіку) вказують на аномалії. Наприклад, на графіку ми можемо побачити три чіткі піки, де оцінка аномалії (різниця між очікуваною та реальною температурою) перевищує 7 градусів Цельсія: перший після тривалого простою, другий під час різкого зниження температури. bearing_temperature, а останнє де bearing_temperature висока порівняно з motor_speed.

Два графіки для часових рядів. У верхній частині показано часові ряди для температур двигуна та швидкості двигуна. На нижньому графіку показано оцінку аномалії з часом із трьома піками, які вказують на аномалії.

У багатьох випадках вже достатньо знати часові ряди оцінки аномалії; ви можете встановити порогове значення, коли потрібно попереджати про значну аномалію, виходячи з потреби в чутливості моделі. Тоді поточна оцінка вказує на те, що машина має ненормальний стан, який потребує дослідження. Наприклад, для нашої моделі абсолютне значення показника аномалії розподілено, як показано на наступному графіку. Це підтверджує, що більшість показників аномалії є нижчими (2xRMS=)8 градусів, знайдених під час навчання для моделі як типова помилка. Графік може допомогти вам вибрати порогове значення вручну, щоб потрібний відсоток оцінених зразків позначався як аномалії.

Гістограма появи значень для оцінки аномалії. Крива спадає від x=0 до x=15.

Якщо бажаним виходом є події аномалій, тоді оцінки аномалій, надані моделлю, потребують уточнення, щоб бути актуальними для використання в бізнесі. Для цього експерт з ML зазвичай додає постобробку, щоб усунути шум або великі піки на оцінці аномалії, наприклад додавання змінного середнього. Крім того, експерт зазвичай оцінює бал аномалії за логікою, подібною до підвищення Amazon CloudWatch тривога, наприклад моніторинг перевищення порогового значення протягом певного періоду. Додаткову інформацію про налаштування будильників див Використання будильників Amazon CloudWatch. Запуск цих оцінок у функції Lambda дозволяє надсилати попередження, наприклад, шляхом публікації попередження на Служба простих сповіщень Amazon (Amazon SNS) тема.

Прибирати

Після завершення використання цього рішення вам слід очистити, щоб уникнути непотрібних витрат:

  1. У SageMaker Canvas знайдіть розгортання кінцевої точки моделі та видаліть її.
  2. Вийдіть із SageMaker Canvas, щоб уникнути стягнення плати за його бездіяльну роботу.

Підсумки

У цій публікації ми показали, як експерт домену може оцінити вхідні дані та створити модель ML за допомогою SageMaker Canvas без необхідності писати код. Потім ми показали, як використовувати цю модель для виявлення аномалій у реальному часі за допомогою SageMaker і Lambda через простий робочий процес. Ця комбінація дає змогу експертам із домену використовувати свої знання для створення потужних моделей машинного навчання без додаткового навчання в галузі даних, а також дозволяє експертам MLOps використовувати ці моделі та робити їх доступними для висновків гнучко та ефективно.

Для SageMaker Canvas доступний 2-місячний безкоштовний рівень, після чого ви платите лише за те, що використовуєте. Почніть експериментувати сьогодні та додайте машинне навчання, щоб максимально використати свої дані.


Про автора

Виявляйте аномалії у виробничих даних за допомогою Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Хельге Ауфдерхайде є ентузіастом створення даних, придатних для використання в реальному світі, з великим акцентом на автоматизації, аналітиці та машинному навчанні в промислових додатках, таких як виробництво та мобільність.

Часова мітка:

Більше від AWS Машинне навчання