Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JAWS DAYS 2024 MLOpsの旅 - AWS IoTとSageMakerでリアルタ...

Y.Kimura
March 13, 2024

JAWS DAYS 2024 MLOpsの旅 - AWS IoTとSageMakerでリアルタイム検出に挑む

Y.Kimura

March 13, 2024
Tweet

Other Decks in Technology

Transcript

  1. JAWS DAYS 2024 ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c JAWS DAYS 2024 AWS

    IoTとSageMakerでリアルタイム検出に挑む フェンリル株式会社 髙芝 葵 木村 裕亮 MLOpsの旅 1
  2. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 機械学習とMLOps 14 機械学習のおおまかな流れ
 学習用データの準 備 学習モデル の作成

    学習モデル の評価 推論 年度 給与平均 2015 420.4 万円 2016 422.0 万円 2017 430.0 万円 2018 433.3 万円 学習アルゴリズムはいろいろ ・線形回帰 ・決定木 ・CNN ・etc… 学習アルゴリズムごとにいろんな パラメータが存在。。。 このモデルの予測 精度は 97% ! 2019 年度は多分 436 万円!! 納得がいくまで 繰り返し実施!
  3. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 機械学習とMLOps 16 Amazon SageMaker
 • Amazon の機械学習サービス

    • SageMaker Studio で学習モデルの作 成やデプロイ作業を実施 • 作成した学習モデルは、エンドポイント にデプロイして API のように利用する • SageMaker Pipeline による自動化が 可能
  4. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c こんなの作ってみました! 21 セイコーNPC 製
 赤外線アレイセンサモジュール [SMH-01B01]
 仕様


    • 8×8構成 64画素 • フレーム計測速度:4/2/1FPS(ソフト切替え) • Siレンズ光学系搭載:全視野角35度(両端素子ピーク間) • 10bitADCによるデジタル出力(I2C) • 20〜200倍の倍率可変プリアンプの倍率切替えにより計測温度を約250℃まで拡大 (25℃環境) • バンドギャップ型温度センサによる環境温度検出機能、温度補正係数内臓 • 放射温度分解能:±1.5℃ • 電流電圧:5.0V±5%、消費電流:5mA(typ.) • 保存温度:-40〜100℃、動作温度:-20〜100℃(温度特性確認範囲:5〜45℃) https://www.npc.co.jp/products/437
  5. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 39 デバイスとAWSでの通信の確立 IoTデバイスからのデータ送信で実施したこと
 リアルタイム検出に至るまでに 立ちはだかった壁 • AWS

    IoT CoreにM5Stackをモノとして登録 • 登録時に生成されるX.509クライアント証明書をM5Stackに初期設定として書き込み ◦ Wi-Fiの接続情報、NTPサーバー、MQTTエンドポイント、デバイスIDも書き込み • IoTポリシーを作成し、証明書にアタッチ
  6. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 40 MQTTの通信インターフェース設計 リアルタイム検出に至るまでに 立ちはだかった壁 • トピック ◦

    「AWS IoT Core の MQTT トピックの設計」というホワイトペーパーを参考に設計 IoTデバイスからのデータ送信で実施したこと
 data/sensor/infrared/npc/{製品名}/{センサーID}
  7. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 41 リアルタイム検出に至るまでに 立ちはだかった壁 • ペイロード ◦ JSON形式で、デバイスID、タイムスタンプ、データそのものを含む形で送信

    IoTデバイスからのデータ送信で実施したこと
 {"sensorUnitId": "xxxxxxxx", "measurementTime": "2023-03-02T16:01:01.000Z", "position": "up", "height": "1.0", "ambientTemperature": 21.9, "radiationTemperature": [18.5, 18.7, 18.6, 18.3, 19.3, 18.7, 18.6, 19.3, 18.6, 18.0, 18.6, 18.6, 19.2, 20.3, 19.5, 18.5, 18.4, 18.2, 19.0, 18.8, 24.5, 28.8, 22.7, 18.6, 18.1, 18.3, 18.5, 18.8, 28.1, 28.8, 25.8, 19.4, 19.1, 17.5, 18.0, 18.7, 24.4, 24.8, 22.7, 18.8, 17.8, 17.8, 19.4, 23.8, 26.1, 28.8, 24.9, 21.1, 18.5, 18.2, 23.5, 25.3, 26.6, 26.5, 26.3, 25.9, 18.9, 19.6, 24.4, 26.0, 25.7, 25.9, 25.9, 26.4]} MQTTの通信インターフェース設計
  8. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 53 データ取得の問題
 リアルタイム検出に至るまでに 立ちはだかった壁 • データは屋内で取る?屋外で取る? •

    赤外線センサーの高さどうする? • 赤外線センサーと対象者との距離どうする? • 服装は?何 FPS で取ろうか? etc… • 対象としたい物の熱源以外のものが入り込んでしまうと、判 定が難しくなる可能性がある
  9. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 54 対応
 リアルタイム検出に至るまでに 立ちはだかった壁 条件を絞ること • 屋内であること

    • 窓が写り込まないこと • 部屋の明かりも写り込まないこと • 対象者は 1 人であること
  10. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 61 リアルタイム検出に至るまでに 立ちはだかった壁 全期間のデータはKinesis Data Firehose で

    zip 圧縮後、S3 に格納し、必 要な時はAthenaでクエリして取得 • Kinesis Data Firehose から S3 への出力周期は1分毎 • 費用削減のため、センサーごとにファイルが分かれない想定 • ファイル数が多すぎるとAthenaでのクエリが効率的ではないためまとめた 改善策 2

  11. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 70 改善策 2
 リアルタイム検出に至るまでに 立ちはだかった壁 一定時間のデータをまとめて取得することでリクエスト数を削減 •

    データを毎回DynamoDBから読み込むことでコストが嵩んでいた • 速度に影響しない範囲でリクエストをまとめることでコスト削減を実現
  12. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 71 改善策 3
 リアルタイム検出に至るまでに 立ちはだかった壁 少しバッファを持たせてデータ取得することで、確実にデータを表示 •

    API の実行タイミングで、最新のデータを常に取得できるかわからない • 8秒前のデータから取得することで、確実にデータを取得して表示 • 少し遅延しながらも、ある程度滑らかに表示させることができた
  13. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 74 時間指定表示画面
 リアルタイム検出に至るまでに 立ちはだかった壁 ユーザーが⽇時を指定し、⾒たい時間のデータを選択して表⽰ • 再⽣/停⽌ボタン

    • コマ送りボタン • 先頭/最終コマへのジャンプボタン • プログレスバー • 判定結果の種別を選択できるセレクトボックスなど 設置した機能
  14. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 81 結果
 リアルタイム検出に至るまでに 立ちはだかった壁 • SageMaker Pipeline

    により、納品後もお客様が学習データを変えなが ら学習モデルを作成できる環境を構築できた • CodePipeline を活用し、作成した学習モデルをアプリケーションに自動 でデプロイできる環境を構築できた。 MLOps の環境を構築できた!
  15. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 83 反省点、次はこうしたい 01 リアルタイム性を上げたい     より早く判定できる環境を... (エッジで推論しないと難しそう) 02 性能改善

        学習モデル改良 03 インフラ構成の⾒直し     パイプラインと学習モデルデプロイ周りをもっとうまく作りたかった
  16. ハッシュタグ:#jawsdays2024 #jawsug #jawsdays2024_c 85 まとめ • MLOpsの構築事例紹介でした • 今回のような粒度の荒いデータでも人の姿勢検知をすることができた •

    IoTデータの取り込みと推論エンドポイントはコストに注意 • 次は精度向上に向けて、時系列の判定などを実施予定 皆さんも MLOps を取り入れてみてください!