Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。

Python Toolboxを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします

予知保全は、機器の状態をプロアクティブに監視することで産業機械の故障や高額なダウンタイムを防ぐ効果的な方法であり、機器の故障が発生する前に異常を警告できます。 センサーと、データ接続、ストレージ、分析、アラートに必要なインフラストラクチャの設置は、予知保全ソリューションを実現するための基本要素です。 ただし、アドホック インフラストラクチャをインストールした後でも、多くの企業は基本的なデータ分析や単純なモデリング アプローチを使用していますが、これらは多くの場合、ダウンタイムを回避するのに十分な早期に問題を検出するのに効果的ではありません。 また、機器に機械学習 (ML) ソリューションを実装するのは難しく、時間がかかる場合があります。

機器のAmazonルックアウトを使用すると、機械学習の経験がなくても、産業用機器のセンサー データを自動的に分析して異常な機械の動作を検出できます。 つまり、機器の異常を迅速かつ正確に検出し、問題を迅速に診断し、高価なダウンタイムを削減するための措置を講じることができます。

Lookout for Equipment は、圧力、流量、RPM、温度、電力などのセンサーやシステムからのデータを分析し、データに基づいて機器に固有のモデルを自動的にトレーニングします。 独自の ML モデルを使用して受信センサー データをリアルタイムで分析し、機械の故障につながる可能性のある警告の兆候を早期に特定します。 Lookout for Equipment は、検出されたアラートごとに、問題を示している特定のセンサーと、検出されたイベントに対する影響の大きさを特定します。

ML をすべての開発者の手に届けるという使命のもと、私たちは Lookout for Equipment に別のアドオンを提供したいと考えています。 オープンソースの Python ツールボックス これにより、開発者やデータ サイエンティストは、これまでと同じように Lookout for Equipment モデルを構築、トレーニング、デプロイできるようになります。 アマゾンセージメーカー。 このライブラリは Lookout for Equipment boto3 Python API のラッパーであり、このサービスの利用を開始するために提供されています。 改善提案や報告すべきバグがある場合は、ツールボックスに対して問題を提出してください。 GitHubリポジトリ.

この投稿では、SageMaker ノートブック内から Lookout for Equipment オープンソース Python ツールボックスを使用するためのステップバイステップのガイドを提供します。

環境設定

SageMaker ノートブックからオープンソースの Lookout for Equipment ツールボックスを使用するには、Lookout for Equipment API を呼び出すために必要な権限を SageMaker ノートブックに付与する必要があります。 この投稿では、SageMaker ノートブック インスタンスがすでに作成されていることを前提としています。 手順については、を参照してください。 AmazonSageMakerNotebookインスタンスの使用を開始する。 ノートブック インスタンスは、実行ロールに自動的に関連付けられます。

  1. インスタンスにアタッチされているロールを見つけるには、SageMaker コンソールでインスタンスを選択します。
    Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。
  2. 次の画面で、下にスクロールして、 AWS IDおよびアクセス管理 インスタンスにアタッチされた (IAM) ロール 権限と暗号化 のセクションから無料でダウンロードできます。
  3. ロールを選択して IAM コンソールを開きます。
    Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。

次に、インライン ポリシーを SageMaker IAM ロールにアタッチします。

  1. ソフトウェア設定ページで、下図のように 権限 開いたロールのタブで、選択します インラインポリシーを追加.
    Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。
  2. ソフトウェア設定ページで、下図のように JSONの タブに次のコードを入力します。 ワイルドカードアクションを使用します(lookoutequipment:*) デモ目的のサービス。 実際の使用例では、適切な SDK API 呼び出しを実行するために必要な権限のみを提供します。
     { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lookoutequipment:*" ], "Resource": "*" } ] }

  3. 選択する レビューポリシー.
  4. ポリシーの名前を指定し、ポリシーを作成します。

前述のインライン ポリシーに加えて、同じ IAM ロールで、Lookout for Equipment がこのロールを引き受けられるように信頼関係を設定する必要があります。 SageMaker ロールには、すでに適切なデータ アクセス権があります。 Amazon シンプル ストレージ サービス (Amazon S3); 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. 選択する 信頼ポリシーの更新.

これで、SageMaker ノートブック環境で Lookout for Equipment ツールボックスを使用する準備がすべて整いました。 Lookout for Equipment ツールボックスは、データ サイエンティストやソフトウェア開発者が Lookout for Equipment を使用して時系列異常検出モデルを簡単に構築および展開できるようにするオープンソース Python パッケージです。 ツールボックスのおかげで、より簡単に何を達成できるかを見てみましょう。

依存関係

執筆時点では、ツールボックスには以下がインストールされている必要があります。

これらの依存関係を満たした後、Jupyter ターミナルから次のコマンドを使用して Lookout for Equipment ツールボックスをインストールして起動できます。

pip install lookoutequipment

これでツールボックスを使用する準備が整いました。 この投稿では、異常検出モデルをトレーニングしてデプロイすることによってツールボックスを使用する方法を示します。 一般的な ML 開発ライフサイクルは、トレーニング用のデータセットの構築、モデルのトレーニング、モデルのデプロイ、モデルでの推論の実行で構成されます。 このツールボックスは、提供する機能という点で非常に包括的ですが、この投稿では次の機能に焦点を当てます。

  • データセットを準備する
  • 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 オブジェクトは、以下を含む辞書を表します。

    • トレーニングデータのデータフレーム
    • データフレームにラベルを付ける
    • トレーニングの開始日時と終了日時
    • 評価の開始日時と終了日時
    • タグの説明 データフレーム

トレーニングとラベルのデータは、ターゲット ディレクトリからバケット/プレフィックスの場所にある 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 バケットにアクセスできる必要があります。 以前の SageMaker ノートブック インスタンスのロール ARN を取得できます。 環境設定 セクションを開き、S3 バケットへのアクセスを許可する IAM ポリシーを追加します。 詳細については、「」を参照してください。 IAMポリシーの記述:Amazon S3バケットへのアクセスを許可する方法.

  component_root_dir パラメータは、トレーニング データが保存される Amazon S3 内の場所を示す必要があります。

前述の API を起動すると、データセットが作成されます。

  1. データをデータセットに取り込みます。
    response = lookout_dataset.ingest_data(bucket, prefix + 'training-data/')

データが Amazon S3 で利用できるようになったので、データセットの作成とそこへのデータの取り込みは、わずか XNUMX 行のコードの問題です。 長い 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 ドキュメントを構築する必要がなくなります。

モデルがトレーニングされた後、評価期間中の結果を確認するか、ツールボックスを使用して推論スケジューラーを構成できます。

訓練されたモデルを評価する

モデルがトレーニングされた後、 モデルの説明 Lookout for Equipment の API は、トレーニングに関連付けられたメトリクスを記録します。 この API は、評価結果をプロットするための XNUMX つの対象フィールドを含む 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 に範囲を読み込む利点は、元の時系列信号の XNUMX つをプロットすることで優れた視覚化を作成し、ラベルを付けて予測された異常イベントのオーバーレイを追加できることです。 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()

これらの数行のコードにより、次の機能を備えたプロットが生成されます。

  • 選択した信号の折れ線グラフ。 モデルのトレーニングに使用される部分は青色で表示され、評価部分は灰色で表示されます
  • 移動平均は、時系列の上に重ねられた細い赤い線として表示されます。
  • ラベルは「既知の異常」というラベルの付いた緑色のリボンに表示されます (デフォルト)。
  • 予測されたイベントは、「検出されたイベント」というラベルの付いた赤いリボンで表示されます。

Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。

このツールボックスは、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 つのファイルを処理するスケジューラーを作成します (スケジューラーの構成時に設定されたアップロード頻度と一致します)。 XNUMX 分ほど経つと、結果が表示されるはずです。 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)

サンプル データに対して次のような特徴重要度の視覚化が生成されます。

Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。

このツールボックスは、スケジューラを停止するための API も提供します。 次のコード スニペットを参照してください。

scheduler.stop()

クリーンアップ

以前に作成したすべてのアーティファクトを削除するには、 delete_dataset データセットの名前を含む API:

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

まとめ

産業および製造業の顧客と話すとき、AI と ML の活用に関してよく聞かれる課題は、信頼性が高く実用的な結果を得るために必要な膨大な量のカスタマイズ、特定の開発、およびデータ サイエンスの作業です。 異常検出モデルをトレーニングし、さまざまな産業機械に対して実用的な事前警告を取得することは、メンテナンスの労力を削減し、やり直しや無駄を削減し、製品の品質を向上させ、設備全体の効率 (OEE) や製品ラインを改善するための前提条件です。 これまでは、これには膨大な量の特定の開発作業が必要であり、長期にわたって拡張したり維持したりするのが困難でした。

Lookout for Equipment などの Amazon Applied AI サービスを使用すると、メーカーはデータ サイエンティスト、データ エンジニア、プロセス エンジニアの多才なチームにアクセスすることなく AI モデルを構築できます。 Lookout for Equipment ツールボックスを使用すると、開発者は時系列データの洞察を調査してアクションを実行するために必要な時間をさらに短縮できます。 このツールボックスは、Lookout for Equipment を使用して異常検出モデルを迅速に構築するための、使いやすく開発者に優しいインターフェイスを提供します。 ツールボックスはオープンソースであり、すべての SDK コードは次の場所にあります。 amazon-lookout-for-equipment-python-sdk GitHub リポジトリ。 としても利用可能です PyPiパッケージ.

この投稿では、最も重要な API のいくつかのみを取り上げます。 興味のある読者はチェックしてください ツールボックスのドキュメント ツールボックスのより高度な機能を確認します。 ぜひ試してみて、コメントでご意見をお聞かせください。


著者について

Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。ヴィケシュ・パンディ AWS の機械学習スペシャリスト ソリューション アーキテクトとして、英国および EMEA 地域の顧客の ML ソリューションの設計と構築を支援しています。 仕事以外でも、ヴィケシュはさまざまな料理を試したり、アウトドア スポーツを楽しんでいます。

Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。イオアンカタナ AWS の人工知能と機械学習のスペシャリスト ソリューション アーキテクトです。 彼は、顧客が AWS クラウドで ML ソリューションを開発および拡張できるよう支援しています。 Ioan は、主にソフトウェア アーキテクチャ設計とクラウド エンジニアリングにおいて 20 年以上の経験があります。

Python Toolbox PlatoBlockchain Data Intelligenceを使用して、Amazon Lookout for Equipmentモデルを構築、トレーニング、およびデプロイします。 垂直検索。 愛。ミハエル・ホアラウ は、AW​​S の AI/ML スペシャリスト ソリューション アーキテクトであり、その時々に応じてデータ サイエンティストと機械学習アーキテクトを行き来しています。 彼は、産業界の顧客の作業現場に AI/ML の力をもたらすことに情熱を持っており、異常検出から製品品質の予測や製造の最適化に至るまで、幅広い ML のユースケースに取り組んできました。 顧客が次に最適な機械学習エクスペリエンスの開発を支援していないときは、星空の観察、旅行、ピアノの演奏を楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習