Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Создавайте, обучайте и развертывайте модели Amazon Lookout for Equipment с помощью Python Toolbox.

Профилактическое обслуживание может быть эффективным способом предотвращения отказов промышленного оборудования и дорогостоящих простоев за счет упреждающего мониторинга состояния вашего оборудования, чтобы вы могли быть предупреждены о любых аномалиях до того, как произойдет отказ оборудования. Установка датчиков и необходимая инфраструктура для подключения данных, хранения, аналитики и оповещения являются основополагающими элементами для реализации решений профилактического обслуживания. Однако даже после установки специальной инфраструктуры многие компании используют базовую аналитику данных и простые подходы к моделированию, которые часто неэффективны для обнаружения проблем на достаточно раннем этапе, чтобы избежать простоев. Кроме того, внедрение решения машинного обучения (ML) для вашего оборудования может быть сложным и трудоемким.

Доступно Amazon Lookout для оборудования, вы можете автоматически анализировать данные датчиков для вашего промышленного оборудования, чтобы обнаруживать ненормальное поведение машины — без необходимости опыта машинного обучения. Это означает, что вы можете быстро и точно обнаруживать неисправности оборудования, быстро диагностировать проблемы и принимать меры для сокращения дорогостоящего простоя.

Lookout for Equipment анализирует данные от ваших датчиков и систем, такие как давление, скорость потока, число оборотов в минуту, температуру и мощность, чтобы автоматически обучать модель, специфичную для вашего оборудования, на основе ваших данных. Он использует вашу уникальную модель машинного обучения для анализа входящих данных датчиков в режиме реального времени и выявляет признаки раннего предупреждения, которые могут привести к сбоям в работе оборудования. Для каждого обнаруженного оповещения Lookout for Equipment определяет, какие именно датчики указывают на проблему, и степень воздействия на обнаруженное событие.

С миссией предоставить ML в руки каждого разработчика, мы хотим представить еще одно дополнение к Lookout for Equipment: набор инструментов Python с открытым исходным кодом который позволяет разработчикам и специалистам по данным создавать, обучать и развертывать модели Lookout for Equipment аналогично тому, к чему вы привыкли. Создатель мудреца Амазонки. Эта библиотека является надстройкой над API-интерфейсом Lookout for Equipment boto3 python и предоставляется для того, чтобы начать работу с этим сервисом. Если у вас есть какие-либо предложения по улучшению или ошибки, о которых нужно сообщить, сообщите о проблеме на панели инструментов. Репозиторий GitHub.

В этом посте мы представляем пошаговое руководство по использованию набора инструментов Python с открытым исходным кодом Lookout for Equipment из блокнота SageMaker.

Настройка среды

Чтобы использовать набор инструментов Lookout for Equipment с открытым исходным кодом из блокнота SageMaker, нам необходимо предоставить блокноту SageMaker необходимые разрешения для вызова API Lookout for Equipment. В этом посте мы предполагаем, что вы уже создали экземпляр блокнота SageMaker. Инструкции см. Начните работу с инстансами ноутбуков Amazon SageMaker. Экземпляр ноутбука автоматически связывается с ролью выполнения.

  1. Чтобы найти роль, прикрепленную к экземпляру, выберите экземпляр на консоли SageMaker.
    Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  2. На следующем экране прокрутите вниз, чтобы найти Управление идентификацией и доступом AWS (IAM), прикрепленная к экземпляру в Разрешения и шифрование .
  3. Выберите роль, чтобы открыть консоль IAM.
    Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Затем мы присоединяем встроенную политику к нашей IAM-роли SageMaker.

  1. На Разрешения... вкладке роли, которую вы открыли, выберите Добавить встроенную политику.
    Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
  2. На JSON вкладку введите следующий код. Мы используем подстановочное действие (lookoutequipment:*) для службы в демонстрационных целях. Для реальных случаев использования предоставьте только необходимые разрешения для выполнения соответствующих вызовов SDK API.
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. Выберите Обзор политики.
  4. Укажите имя для политики и создайте политику.

В дополнение к предыдущей встроенной политике для той же роли IAM нам необходимо установить доверительные отношения, чтобы позволить Lookout for Equipment взять на себя эту роль. Роль SageMaker уже имеет соответствующий доступ к данным. Простой сервис хранения Amazon (Амазон С3); позволяя Lookout for Equipment взять на себя эту роль, вы гарантируете, что у него будет такой же доступ к данным, как и у вашего ноутбука. В вашей среде у вас может уже быть определенная роль, обеспечивающая Lookout for Equipment доступ к вашим данным, и в этом случае вам не нужно настраивать доверительные отношения этой общей роли.

  1. Внутри нашей роли SageMaker IAM на Доверительные отношения , выберите Изменить доверительные отношения.
  2. В документе политики замените всю политику следующим кодом:
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lookoutequipment.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

  3. Выберите Обновить политику доверия.

Теперь все готово для использования набора инструментов Lookout for Equipment в среде нашего ноутбука SageMaker. Набор инструментов Lookout for Equipment — это пакет Python с открытым исходным кодом, который позволяет специалистам по данным и разработчикам программного обеспечения легко создавать и развертывать модели обнаружения аномалий временных рядов с помощью Lookout for Equipment. Давайте посмотрим, чего вы можете достичь более легко благодаря набору инструментов!

Зависимости

На момент написания для набора инструментов необходимо установить следующее:

После того, как вы удовлетворите эти зависимости, вы можете установить и запустить набор инструментов Lookout for Equipment с помощью следующей команды из терминала Jupyter:

pip install lookoutequipment

Теперь набор инструментов готов к использованию. В этом посте мы покажем, как использовать набор инструментов, обучая и развертывая модель обнаружения аномалий. Типичный жизненный цикл разработки машинного обучения состоит из создания набора данных для обучения, обучения модели, развертывания модели и выполнения выводов по модели. Набор инструментов довольно обширен с точки зрения предоставляемых им функций, но в этом посте мы сосредоточимся на следующих возможностях:

  • Подготовьте набор данных
  • Обучите модель обнаружения аномалий с помощью Lookout for Equipment
  • Создание визуализаций для оценки вашей модели
  • Настройте и запустите планировщик логических выводов
  • Визуализируйте результаты выводов планировщика

Давайте разберемся, как мы можем использовать набор инструментов для каждой из этих возможностей.

Подготовьте набор данных

Lookout for Equipment требует создания и загрузки набора данных. Чтобы подготовить набор данных, выполните следующие шаги:

  1. Перед созданием набора данных нам нужно загрузить образец набора данных и загрузить его в Простой сервис хранения Amazon (Amazon S3) ведро. В этом посте мы используем expander Набор данных:
    from lookoutequipment import dataset data = dataset.load_dataset(dataset_name='expander', target_dir='expander-data')
    dataset.upload_dataset('expander-data', bucket, prefix)

Вернувшийся data объект представляет собой словарь, содержащий следующее:

    • DataFrame обучающих данных
    • Метки DataFrame
    • Дата начала и окончания обучения
    • Дата начала и окончания оценки
    • Описание тегов DataFrame

Данные обучения и метки загружаются из целевого каталога в Amazon S3 в местоположении корзины/префикса.

  1. После загрузки набора данных в S3 мы создаем объект LookoutEquipmentDataset класс, который управляет набором данных:
    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()

Ассоциация access_role_arn предоставленный должен иметь доступ к корзине S3, в которой находятся данные. Вы можете получить ARN роли экземпляра записной книжки SageMaker из предыдущего Настройка среды и добавьте политику IAM, чтобы предоставить доступ к вашей корзине S3. Для получения дополнительной информации см. Написание политик IAM: как предоставить доступ к корзине Amazon S3.

Ассоциация component_root_dir Параметр должен указывать место в Amazon S3, где хранятся обучающие данные.

После того, как мы запустили предыдущие API, наш набор данных был создан.

  1. Вставьте данные в набор данных:
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

Теперь, когда ваши данные доступны на Amazon S3, для создания набора данных и загрузки данных в него достаточно написать всего три строки кода. Вам не нужно создавать длинную схему JSON вручную; набор инструментов определяет вашу файловую структуру и строит ее для вас. После того, как ваши данные получены, пришло время перейти к обучению!

Обучите модель обнаружения аномалий

После того, как данные были загружены в набор данных, мы можем начать процесс обучения модели. См. следующий код:

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)

Прежде чем мы начнем обучение, нам нужно указать периоды обучения и оценки в наборе данных. Мы также указываем место в Amazon S3, где хранятся размеченные данные, и устанавливаем частоту дискретизации на 5 минут. После того, как мы начнем обучение, poll_model_training опрашивает статус задания обучения каждые 5 минут до тех пор, пока обучение не будет успешным.

Учебный модуль набора инструментов Lookout for Equipment позволяет обучить модель, написав менее 10 строк кода. Он создает все строки запроса на создание длины, необходимые для низкоуровневого API, от вашего имени, избавляя вас от необходимости создавать длинные, подверженные ошибкам документы JSON.

После обучения модели мы можем либо проверить результаты за период оценки, либо настроить планировщик вывода с помощью набора инструментов.

Оценить обученную модель

После того, как модель обучена, ОписатьМодель API от Lookout for Equipment записывает показатели, связанные с обучением. Этот API возвращает документ JSON с двумя интересующими полями для отображения результатов оценки: labeled_ranges и predicted_ranges, которые содержат известные и предсказанные аномалии в диапазоне оценок соответственно. Вместо этого набор инструментов предоставляет утилиты для загрузки их в 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)

Преимущество загрузки диапазонов в DataFrame заключается в том, что мы можем создавать приятные визуализации, отображая один из исходных сигналов временных рядов и добавляя наложение помеченных и прогнозируемых аномальных событий с помощью TimeSeriesVisualization класс инструментария:

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

Эти несколько строк кода генерируют график со следующими функциями:

  • Линейный график для выбранного сигнала; часть, используемая для обучения модели, отображается синим цветом, а часть оценки — серым цветом.
  • Скользящее среднее отображается в виде тонкой красной линии, наложенной на временной ряд.
  • Метки отображаются на зеленой ленте с надписью «Известные аномалии» (по умолчанию).
  • Прогнозируемые события отображаются на красной ленте с надписью «Обнаруженные события».

Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Набор инструментов выполняет всю тяжелую работу по поиску, загрузке и анализу файлов JSON, а также предоставляет готовые к использованию визуализации, которые еще больше сокращают время на получение информации из ваших моделей обнаружения аномалий. На этом этапе набор инструментов позволяет вам сосредоточиться на интерпретации результатов и принятии мер, которые принесут непосредственную пользу вашим конечным пользователям. В дополнение к этим визуализациям временных рядов SDK предоставляет другие графики, такие как гистограмма сравнения значений ваших сигналов между нормальным и аномальным временем. Чтобы узнать больше о других возможностях визуализации, которые вы можете использовать прямо из коробки, см. Документация по набору инструментов Lookout for Equipment.

Вывод расписания

Давайте посмотрим, как мы можем запланировать выводы с помощью панели инструментов:

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

Этот код создает планировщик, который обрабатывает один файл каждые 5 минут (в соответствии с частотой загрузки, установленной при настройке планировщика). Через 15 минут или около того у нас должны быть результаты. Чтобы получить эти результаты от планировщика в Pandas DataFrame, нам просто нужно выполнить следующую команду:

results_df = lookout_scheduler.get_predictions()

Отсюда мы также можем построить график важности функции для прогноза, используя API визуализации набора инструментов:

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

Он создает следующую визуализацию важности функции для выборочных данных.

Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Набор инструментов также предоставляет API для остановки планировщика. См. следующий фрагмент кода:

scheduler.stop()

Убирать

Чтобы удалить все созданные ранее артефакты, мы можем вызвать метод delete_dataset API с названием нашего набора данных:

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

Заключение

Говоря с промышленными и производственными клиентами, мы слышим общую проблему, связанную с использованием преимуществ искусственного интеллекта и машинного обучения, — это огромное количество настроек и специальных разработок и работы с данными, необходимых для получения надежных и действенных результатов. Обучение моделям обнаружения аномалий и получение действенных предупреждений для многих различных промышленных машин является необходимым условием для сокращения усилий по техническому обслуживанию, сокращения переделок или отходов, повышения качества продукции и повышения общей эффективности оборудования (OEE) или производственных линий. До сих пор это требовало огромного объема специальной работы по разработке, которую трудно масштабировать и поддерживать с течением времени.

Сервисы прикладного ИИ Amazon, такие как Lookout for Equipment, позволяют производителям создавать модели ИИ, не имея доступа к разносторонней команде специалистов по данным, инженеров по данным и инженеров-технологов. Теперь, благодаря набору инструментов Lookout for Equipment, ваши разработчики могут еще больше сократить время, необходимое для анализа ваших данных временных рядов и принятия мер. Этот набор инструментов предоставляет простой в использовании и удобный для разработчиков интерфейс для быстрого создания моделей обнаружения аномалий с помощью Lookout for Equipment. Набор инструментов с открытым исходным кодом, и весь код SDK можно найти на Amazon-поиск-оборудования-Python-SDK Репозиторий GitHub. Он также доступен как Пакет PyPi.

В этом посте рассматриваются лишь некоторые из наиболее важных API. Заинтересованные читатели могут ознакомиться с документация по набору инструментов чтобы посмотреть на более продвинутые возможности панели инструментов. Попробуйте и дайте нам знать, что вы думаете в комментариях!


Об авторах

Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Викеш Пандей является специалистом по машинному обучению, специалистом по архитектуре решений в AWS, помогая клиентам в Великобритании и других странах региона EMEA разрабатывать и создавать решения машинного обучения. Вне работы Викеш любит пробовать разные кухни и заниматься спортом на открытом воздухе.

Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Иоан Катана является специалистом по искусственному интеллекту и машинному обучению, архитектором решений в AWS. Он помогает клиентам разрабатывать и масштабировать решения машинного обучения в облаке AWS. Йоан имеет более чем 20-летний опыт работы, в основном в области проектирования архитектуры программного обеспечения и облачной инженерии.

Создавайте, обучайте и развертывайте модели оборудования Amazon Lookout с помощью Python Toolbox PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Михаэль Хорау является специалистом по архитектуре решений AI/ML в AWS, который в зависимости от момента чередует специалистов по данным и архитекторов машинного обучения. Он увлечен внедрением возможностей AI/ML в цеха своих промышленных клиентов и работал над широким спектром вариантов использования ML, начиная от обнаружения аномалий и заканчивая прогнозированием качества продукции или оптимизацией производства. Когда он не помогает клиентам в разработке следующего лучшего опыта машинного обучения, он любит наблюдать за звездами, путешествовать или играть на пианино.

Отметка времени:

Больше от Машинное обучение AWS