catch-img

CONEXIOBlackBearで機械学習モデルを動かす(3) SageMaker Studioで学習させたモデルをAWS Greengrassでデプロイ

はじめに

こんにちは。コネクシオIoTブログ 技術記事担当のHです。

前回はAWS IoT Greengrassを用いて、クラウドからCONEXIOBlackBearにデプロイし、動作させてみました。

今回は、SageMakerで機械学習モデルを学習させ、前回と同様GreengrassでCONEXIOBlackBearにデプロイし、動作させてみることにします。


実施環境

基本的に、前回と同じ学習データとモデルの構成を使用し、学習環境をSageMakerにします。ですので、CONEXIOBlackBear側は同じです。

  • - CONEXIOBlackBear OSバージョン 1.1.5
  • - Python3.7
  • - tensorflow 2.0.0(keras 2.2.4)
  • - USB接続のWebカメラ

SageMakerの環境は、後述しますが、

  • - Python3.6
  • - tensorflow 2.1(keras 2.3.0)

です。


1. SageMaker Studioを起動

Amazon SageMakerは、こちらにある通り、完全マネージドの機械学習サービスと謳われており、非常に多くのサービスから構成されていることがわかります。

では、この中で、今回どれを使用すればいいのかということですが、今回やりたいのは、


自前の学習用のプログラムコードが既にあって、それをクラウド上で動かしたい


ということなので、最も基本的なSageMaker StudioというWebブラウザ上で使えるIDEで直接コードを書いて実行すればよさそうだということがわかりました。

なので、SageMaker Studioを起動していきます。


今回使用したAWSアカウントで、SageMaker Studioが一度も使用されていなかったので、ユーザーの作成が必要でした。以下のような画面で、ユーザー名とロールを設定して、送信ボタンを押しました。


ロールは、以下のように自動作成であってもいろいろ選択肢がありますが、任意のS3バケットとしています。


しばらくすると、SageMaker Studio コントロールパネルという画面が開きます。


先ほど作成したユーザー名が表示され、右端の Studioを開く というボタンを押すと、SageMaker Studioが開きます。

UIの詳細は、公式ドキュメントにある通りなので割愛しますが、Pythonの機械学習系開発環境としてお馴染みのJupyterLabの画面ですので、慣れている方も多いかと思います。


2. SageMaker Studioで学習

2.1 ノートブックを作成

ノートブックを作成にあたり、まずSageMaker StudioのLauncher中ほどにあるNotebooks and compute resourcesという項目で、SageMakerImageを選択しますが、最終的にデプロイしたいエッジ側と環境を合わせる必要があるため、


Tensorflow 2.1 Python 3.6 (Optimized for CPU)


というイメージを選択しました。(実は、はじめTensorflow 2.3を使用したところ、エッジ側のTensorflowとのバージョン不整合により、モデルデータの読み込みができませんでした。そのため、上記のバージョンにしています。)


2.2 学習

学習のためのコードは、以前の記事と同様です。

次に、コードの実行に使用するインスタンスタイプですが、こちらを参考にいくつか試したところ、1エポック分の所要時間が

  • ml.t3.medium 約146秒
  • ml.c5.large 約96秒
  • ml.c5.xlarge 約60秒

となりました。ml.t3.mediumだと、手元のPCよりも遅かったのですが、ml.c5だと速くなり、クラウド上のリソースの恩恵が受けられることになります。

したがって、ここではml.c5.xlargeを選択しました。50エポックの所要時間は、およそ50分でした。


3. Greengrassでデプロイ

3.1 S3に学習済みモデルデータを置く

先ほど学習させたモデルは、SageMaker Studio内のディレクトリに出力してあるので、前回と同じ手順で、zip圧縮したデータを所定のバケット/パスにアップロードしました。

そして、前回の記事の3.3.2 機械学習リソースの設定と同様の手順で、モデルソースとして今回学習させたモデルデータを選択します。

3.2 CONEXIOBlackBear

CONEXIOBlackBear側についても、前回の記事の3.5, 3.6の手順を実施します。


この状態でデプロイをしたところ、成功しました。


4. 動作確認

AWS IoTコンソールのテスト用デバイスゲートウェイ画面で、hello/worldトピックをサブスクライブすると、以下のようなメッセージを受信しました。CONEXIOBlackBearから推論した結果が届いています。


というわけで、SageMakerで学習させた機械学習モデルデータをGreengrassでCONEXIOBlackBearにデプロイして動かすことができました。


まとめ

これまで3回にわたって、機械学習モデルで推論を行うプログラムをCONEXIOBlackBearで動かしてきました。今回は比較的簡単な例を取り上げていますが、同様にしてクラウド上の大規模なコンピューティングリソースを使って大量の学習を行ったモデルを作成してエッジにデプロイすることで、様々な高度なアプリケーションが実現できると思います。今後、もっと色々チャレンジしたいと思います。


5分で理解できる!
Smart Ready IoTソリューションセット
ご質問やご要望はこちらから
お気軽にお問い合わせください

予知保全にAI技術を導入するメリットと活用法

2021-08-30

生産工程で発生するさまざまなデータを蓄積して、AIが持つ学習技術・解析機能を活用することで、設備保全体制の強化につながると期待されています。この記事では、製造現場における予知保全の目的を踏まえ、AI技術の活用方法やメリットなどを解説します。

製造現場の予知保全CBMとは? TBMとの違いやメリットを解説

2021-08-30

モノづくりを行う製造現場では、IoT技術を取り入れた次世代の予知保全であるCBMが登場しています。従来のTBMに比べて、より効率的な設備保全ができると期待されています。本記事では、CBMの基礎知識をはじめ、従来のTBMとの違い、CBM導入のメリットなどをまとめて解説します。

製造業が直面する課題と人材難・IT化・技術継承の解決策

2021-07-28

新型コロナウイルス感染症(以下、コロナ)の感染拡大によってテレワークが徐々に定着しつつあるなか、製造業もまた時代の変化に適応しなければならない時期にさしかかっています。少子高齢化による人手不足やIT化の遅れ、移り変わる社会情勢に対応しきれていないことなど、製造業が抱える課題と解決策について解説します。

ローカル5Gとは? メリット・デメリットと活用法を解説

2021-07-28

2020年3月、国内で次世代の通信規格として新たに商用化した5G。そうしたなか、通信キャリアが展開する5Gとは別に、企業や自治体などが独自に5Gネットワークを構築できるローカル5Gが登場しました。この記事では、ローカル5Gの仕組みをはじめ、メリット・デメリット、製造業における活用法などを解説します。

プライベートLTE導入の課題と活用シーン

2021-07-28

プライベートLTEは、有線でのネットワーク構築が難しい大規模な工場、遠隔制御装置や監視装置を使用するなど、安定した通信が求められる状況において活用が期待されています。この記事では、プライベートLTEのメリットや導入のために押さえておきたい点、活用が期待できる事業などを解説します。