機器の異常動作を機械学習で検出する「Lookout for Equipment」がプレビューリリースされました #reinvent

センサーデータを元に異常動作を検知するサービス「Lookout for Equipment」が登場しました。利用できるようになるのが待ち遠しいですね。
2020.12.03

すでに本ブログで紹介している「Amazon Lookout for Vision」の他に、センサーデータを元に異常動作を検知するサービス「Lookout for Equipment」が登場しました。

Lookout for Equipment とは

温度やモーターの回転数、温度、水の流量、圧力など、様々なセンサーデータを機械学習により、リアルタイムに分析します。
しかも機械学習で必要となるモデルの構築といった、機械学習の専門知識は不要で利用することができます。

Lookout for Vision との違い

似た名前に「Lookout for Vision」というサービスも新規に発表されています。こちらは名前の通り、画像から「傷や変形」を認識して欠陥品を判別するというものになります。
それに対して「Lookout for Equipment」は、画像ではなくデバイスから送られくる「センサーデータから異常動作を判別」するサービスになります。

「Amazon Lookout for Vision」の速報はこちらです。

Amazon Monitron との違い

個人的に最初に気になったのは「Amazon Monitron」との違いです。
「Amazon Monitron」も機械学習で機器の異常動作を検出することができますが、Monitron は専用のデバイス(専用のセンサーと専用のゲートウェイ)を現地に設置して「振動数」と「温度」をAWSに送ります。
Monitron は、AWS製の専用のデバイスを利用するので、AWSへ接続するための認証設定やファームウェアの管理などが不要で、簡単に設置してすぐに利用できるというのが特徴の1つかと思います。

一方で「Lookout for Equipment」は、ユーザー側の環境から AWSに対してセンサーデータを送信します。その際のデータの中身に指定はなく所定のフォーマットや制限内のものであればどんな内容でも問題ありません。
送ることができるデータの自由度が高い分、センサーからAWSへ送信する設定はユーザー側で行う必要があります。

下記の記事で「Amazon Monitron」 を紹介していますので、こちらも合わせてご覧ください。

使い方

利用するにはプレビュー申請が必要です。その申請にパスした後に使えるようになるので、今回はドキュメントベースで分かった大まかな点をご紹介します。

事前のトレーニング用データセットの準備と送信

機械学習なので、事前にトレーニング用のデータセットが必要となります。このデータセットはCSVで任意のS3バケットに保存します。
CSVのデータセットの定義は、別途「データスキーマ」で指定します。データスキーマの内容については下記ドキュメントが詳しいです。

Data schema - Amazon Lookout for Equipment (Preview)

データセットの準備

一般的な機械学習の場合、単にデータを集めるだけではなく、集まったデータを機械学習用に前処理する必要があります。「Lookout for Equipment」を利用する場合も、トレーニング用のデータセットはユーザー側で用意する必要があります。
下記ドキュメントにて、データセットを用意する上でのベストプラクティスが記載されているので、詳細はこちらをご確認頂ければと思いますが、本記事でも何点かご紹介したいと思います。

データサイズ

このデータセットには、「300個のセンサーからのデータ」を含めることができますが、モデルで利用できるのは7GB までとなっています。データの内容次第で判定の精度が変わるので、その妥当性については「機器の対象分野の専門家(SME)」と連携することが推奨されています。

トレーニング用のデータセットは少なくとも6ヶ月分のデータが必要ですが、季節の変化でデータが変わるような場合は更に長期間のデータが望ましいです。

Failure ラベルの利用

また、異常動作の情報として過去の障害とメンテナンスイベントの時刻を記載した CSV ファイルを S3に置いて取り込むことができます。これにより、さらに正確で効率的なトレーニングを行うことができるようになります。
異常時のデータは上記で指定できるので、データセットには「正常データ」のみを含める必要があります。

このデータは下記のような形のCSVファイルとして S3に保存します。1つ目のタイムスタンプは「異常な動作が発生したと思われる時間」で、2つ目のタイムスタンプは「メンテナンスイベントまたは、障害が最初に通知された時間」です。

01-failure-label

モデルの作成

S3からデータセットの取り込みが完了したらトレーニングを開始します。データ量に応じて時間がかかります。

スケジュール設定

次にスケジュール設定です。ここでは「Data upload frequency」と「Offset delay time」を設定可能です。
「Data upload frequency」はデータのアップロード頻度のことで「推論が実行される頻度」のことです。「Offset delay time」は「データをアップロードする時間バッファの量」の指定です。

「Offset delay time」のことがよく分からなかったのですが、デバイスや通信の状況によってはデータのアップロードが遅れる場合があり得るので、遅延した場合に推論の実行を待機させるための時間指定ではないかと思います。

推論の実行

ここまでで事前設定が完了です。
準備が整ったらセンサーデータを実際にS3に保存することで、上記で指定したタイミングで推論が実行されて、その結果が任意のS3バケットに出力されます。

アクション

ドキュメントでは「推論結果がS3バケットに出力される」ところまでの記載があったので、「Lookout for Equipment」では「推論結果をS3に出力するところまでを行ってくれる」ものだと思われます。
そのため、推論の結果をトリガーに何らかの処理を実行させるためには、ユーザー側で実装する必要がありそうです。 パッと思いつくのは、「結果がS3に保存されたら イベントドリブンで Lambda を実行して通知する」などでしょうか。

実際の構成例としては、下記のようなものになると思います。

  • センサーデータをMQTTで送り、AWS IoT Core 経由でS3に保存
  • S3にデータ保存したら Lambda で処理を実行 など

IoT Sitewise Monitor と連携することもできるようなので、製造業での導入が進みそうですね!

クォータ

「Lookout for Equipment」を利用する上でも制限事項があるので、利用の際は事前に下記ページを確認して制限にかかるようであれば随時、制限緩和の申請を行います。
緩和申請には、「service quotas」が既に対応しているとのことですが、私のアカウントでは確認できませんでした。おそらくプレビュー申請が通れば選択できるようになるかと思います。

価格

料金体系は以下のとおりです。無料利用枠もあるようです。
個人的には思ったよりも低価格な印象ですが、料金ページに価格例も掲載されているので参考にしてみてください。

課金対象 価格
データの取り込み 1GBあたり0.20ドル
モデルトレーニング トレーニング時間あたり0.24ドル
スケジュールされた推論 推論時間あたり0.25ドル

利用可能リージョン

プレビュー申請をパスすることが前提になりますが、プレビュー利用できるのは下記のリージョンとなります。

  • N.Virginia
  • Seoul
  • Ireland

早くTokyoリージョンにも来てほしいですね。

最後に

とりいそぎドキュメントから、その仕様や使い方を大まかにご紹介してみました。再トレーニングの方法など実際に試してみないと分からない部分も多いので、今後何か分かれば改めてご紹介したいと思います。

なお、予定されていた「Lookout for Equipment」のセッションはすでに終了してしまいましたが、また新たにセッションが追加されることがあるかもしれませんので、ぜひ re:Invent 2020 のページをチェックしてみてください!!