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

JAWS-UG AI/ML #17 サーバレスAIMLシステムを構築してコスト・運用の手間を削減した事例の紹介

JAWS-UG AI/ML #17 サーバレスAIMLシステムを構築してコスト・運用の手間を削減した事例の紹介

JAWS-UG AI/ML #17 「サーバレスAI/MLシステムを構築してコスト・運用の手間を削減した事例の紹介」LTの資料です。
https://jawsug-ai.connpass.com/event/286453/

toru hosokawa

March 27, 2024
Tweet

Other Decks in Programming

Transcript

  1. © 2023 Simplex Inc. 自己紹介 2 ◼ 名前 細川 暢(ほそかわ

    とおる) ◼ 所属 シンプレクス株式会社 ◼ 出身 徳島県 ◼ 業務内容 • リモートワーク業務における「情報セキュリティ対策ソリューション」開発 • 物体検出モデル • 顔認証モデル • アクション検出モデル • テーマパークの来場者数予測アプリ開発 • データ分析基盤構築 ◼ 好きなAWSサービス • S3 • SageMaker • Lambda
  2. © 2023 Simplex Inc. アジェンダ 3 1. 今回のプロジェクトの概要 2. 今回構築したシステムの概要

    3. Lambdaで学習・推論を動かすメリット・デメリット・制約 4. Lambdaで学習・推論を動かすに当たって困ったことと、どう解決したか
  3. © 2023 Simplex Inc. 今回のプロジェクト概要 4 ◼ 顧客 • テーマパーク運営企業

    ◼ 業務課題 • 最適なチケット価格を決定したい • 人員のシフトや食材の発注数量などを最適化したい • 収益見通しの精度を向上させたい • 動員予測を担当者のみが行っている ◼ プロジェクトゴール • 精度の高い動員予測モデルを構築する • 過去の動員実績等のデータから動員予測を自動的に行う
  4. © 2023 Simplex Inc. 今回構築したシステムの概要 5 ◼ 業務要件 • 低コスト・短納期。(約4ヶ月・開発者3名)

    • 1日1回データを取り込み、予測結果を出力する。 ◼ アーキテクチャ全体図
  5. © 2023 Simplex Inc. 今回構築したシステムの概要 6 ◼ アーキテクチャ 1日1回EventBridgeから学習・推論が定期実行される。 S3にファイルを配置すると、それをトリガーとして学習・推論が実行される。(実行回数は1日1回程

    度) ◼ データサイズ 30万行程度のテーブルデータ。 1バッチで学習と推論の両方を実行している。 ◼ 推論アルゴリズム LightGBMとKNNのアンサンブルモデル。 ◼ 本システムの要件の特徴 学習・推論処理の頻度は低く、比較的軽い。
  6. © 2023 Simplex Inc. Lambdaで学習・推論を動かすメリット 7 • コスト削減効果 • 1日のLambda実行時間は20分程度。

    • 本番環境のLambdaのコストは安い金額に抑えられている。 • 利用しているLambdaとスペックの近いEC2インスタンスのコストと比較し100分の1以下。 • 冗長化構成・スケーリングの設定がほぼ不要 • 「メモリ」「タイムアウト」などいくつかの項目だけ意識すればよいので簡単。
  7. © 2023 Simplex Inc. Lambdaで学習・推論を動かすデメリット・制約 8 • コールドスタート問題 • コンテナの起動に時間がかかってしまい処理結果を素早く返せないという問題。

    • 本PJのコンテナのイメージサイズは約700MB、コンテナの起動時間は7秒程度。 • 一度処理が実行されたらしばらくはホットスタンバイ状態(コンテナが起動したままの状態) になる。 • Lambdaのスペックについて • 制約 • 実行時間上限:15分 • メモリサイズ上限:10GB • vCPU数上限:6 • GPU:使用できない • 推論処理の実行環境としては性能があまり高くない。 • Deep LearningモデルをLambdaで実行したい場合はOpenVINO等でモデルの軽量 化・高速化アプローチが必要となる可能性がある。 • マルチプロセス処理の実現が困難 • 共有メモリが使えないため、共有メモリ経由でプロセス間通信を行う ProcessPoolExecutor等を使ったマルチプロセスができない。 • 共有メモリ以外の手段でプロセス間通信をすればマルチプロセスは可能だがやや難しい。
  8. © 2023 Simplex Inc. Lambdaで学習・推論を動かすに当たって困ったことと、どう解決したか 9 • 推論実行Lambda単独ではハンドリングできないエラーを以下の方法で解決した。 • 対象エラー

    • Lambdaの同時実行数が上限を超えた場合 • Lambdaの処理がタイムアウトエラーになった場合 • 解決策 • Lambda DestinationsのOn Failureにアラート通知Lambdaを設定した。
  9. © 2023 Simplex Inc. まとめ 10 • 推論処理の実行基盤としてLambdaを使うことでコスト削減や開発・運用の工数削減ができた。 • 性能問題のためLambdaが使えないケースも多いので、Lambdaが要件に適合するか確認する必要

    がある。主な性能上の制約は以下。 • CPU・メモリ・実行時間の上限が比較的低い • コールドスタート問題 • 結論 • 機械学習タスクにおいてもLambdaは有用なので積極的に利用していき ましょう!