エッジとクラウドの効果的な使い分け AWS Summit Tokyo 2019 re:Cap Day5

2019.07.05

AWSでの機械学習

機械学習とは

  • データに基づいて分類や予測などを行うための技術

    • 分類:カテゴリを推定する
    • 予測:数値を推定する
  • 機械学習の応用

    • レコメンデーション:推薦商品を推定
    • チャットボット:応答内容を推定
    • 製品の外観検査:異常個所を推定
    • 医療診断:健康状態を推定
  • 価値

    • 顧客体験の向上
    • 業務・製品の改善
    • 新サービスの開発

機械学習におけるハードル

  • 機械学習アルゴリズムの実装

    • アルゴリズム実装には数学、統計学などの知識が必要
  • 機械学習システムの構築

    • アプリ開発、セキュリティなどのシステム構築の知識が必要

AWSのミッション

  • Amazonにおける機械学習の経験をすべての開発者に届けること
  • 既に10,000以上の顧客が機械学習にAWSを利用

AWSが選ばれる理由

  • 成熟したサービスを幅広く提供
  • 機械学習の困難な課題を解決
  • 主要なフレームワークをサポート

    • TensorFlowのプロジェクトのうち85%がAWS上で稼働
  • 機械学習に最適化された環境

AWSの機械学習サービススタック

  • AIサービス
  • MLサービス
  • MLフレームワーク&インフラストラクチャ

AWSのAIサービス

  • データを用意するだけでAPIから機械学習を利用できる
  • 利用する機械学習は、AWSによって最適な実装がされている
  • 10種類のサービスを提供

    • 静止画・動画認識
    • 音声処理
    • テキスト処理
    • チャットボット
    • 時系列データ予測
    • レコメンデーション

静止画・動画認識

  • Amazon Rekognition & Amazon Rekognition Video

    • 静止画・動画の物体認識・顔分析など
  • Amazon Textract

    • 画像の英数字テキストを認識
    • 構造化されたデータをそのまま認識(表)

音声処理

  • Amazon Transcribe

    • 音声からテキストへ変換
    • 13言語対応、日本語非対応
  • Amazon Polly

    • テキストから音声へ変換

テキスト処理

  • Amazon Translate

    • 言語間の機会翻訳
    • 日本語含む25言語対応
  • Amazon Comprehend

    • 文章の解析
    • 6言語対応、日本語非対応
  • Amazon Comprehend Medical

    • 医療文章に特化

チャットボット

  • Amazon Lex

    • 英語の音声やテキストを利用して対話可能なボットを構築
    • 困難な音声認識や意味理解はLexが行う
    • GUIを利用して対話内容を開発可能

時系列データの予測

  • Amazon Forecast

    • 高精度な予測
    • 高速に予測可能
    • あらゆる履歴データに対応
    • 複数時系列データを利用可
    • 機械学習の自動化
    • 結果の可視化・アプリへの組み込み
    • 予測と再学習のスケジューリング

レコメンデーション

  • Amazon Personalize

    • 高精度なレコメンデーション
    • リアルタイム
    • 粒度は1日単位
    • 様々な商品・サービスに適用可
    • エンドユーザーの操作を逐次反映
    • 機械学習の自動化
    • 学習継続による性能改善
    • SageMakerからのアルゴリズム持ち込み

MLサービス:Amazon SageMaker

  • ニーズに合わせて独自の機械学習サービスを実装する場合
  • Amazon SageMakerがサービス実装に必要な環境を提供

MLフレームワーク・インフラストラクチャ

  • エッジデバイスも含め、機械学習の環境を自由に構築できる
  • フレームワーク + 計算環境 + 利用環境

機械学習の進め方

  • 機械学習のためのループを作る
  • データの管理
  • 機械学習のための組織を作る

機械学習のためのループ

  • 1ループを回して評価すれば、機械学習が役にたつかわかる
  • AIサービスを利用すれば、ループを効率よく回せる
  • ループのステップ

    • ビジネス課題
    • データ収集
    • 機械学習
    • 評価
  • よくない例

    • ビジネス課題ではなく、機械学習サービスありきで設計を始めてしまう

AWSによるデータの管理

  • AWSの機械学習は様々なサービスと連携可能
  • オブジェクトストレージAmazon S3によるデータ管理

事例からの学習

機械学習の実践

認定とトレーニング

  • AWS Certified Machine Learning - Specialty

AWS DeepLens

  • カメラ

AWS DeepRacer

  • 自動運転のレーシングカー
  • 学習と評価のためのシミュレーター
  • DeepRacerリーグ

Amazon SageMaker Deep Dive

Amazon SageMaker

  • あらゆる規模で機械学習・深層学習モデルを構築・トレーニング・デプロイ
  • 学習データの収集と準備

    • Amazon SageMaker Ground Truthでアノテーション
  • MLアルゴリズムの選択と最適化

    • AWS Marketplace for Machine Learning
  • トレーニング環境の整備と運用

    • Amazon EC2 P3 Instances
    • Amazon SageMaker RL
  • トレーニングとパラメーターチューニング
  • 本番環境へのデプロイ

    • Amazon SageMaker Neo
  • 本番環境での運用とスケーリング

    • Amazon Elastic Inference

ワークフロー構築を助けるツール

  • 多くのサンプルノートブック
  • SageMaker Python SDK / AWS SDK for Python(boto3)

    • データサイエンティストが使い慣れたインターフェースが提供されている
  • Dockerコンテナによる環境統一

    • トレーニングスクリプト
    • Deep Learning Framework
    • CUDA / cuDNN

機械学習の一般的なワークフロー

  • データ収集
  • クリーンアップ
  • データ変換・ラベル付け
  • トレーニング
  • モデル評価
  • 本番環境にデプロイ
  • 推論・監視

継続的な機械学習のワークフロー

  • トレーニングからデプロイまでのワークフローを自動化

    • Step Functions / Apache Airflow
  • 継続的なモデルのアップデートを実現

    • スケジュール / イベントトリガーによる増分学習
  • とにかく自動化 / 自動化しきれないところは半自動化

    • Human-in-the-Loop

AWS Step Functions

  • JSONベースの言語でステートマシンを記述できるマネージドサービス
  • AWS Lambdaを始めとした各サービスに対応
  • CloudWatch Eventsでスケジュール実行やイベントトリガーが可能

Apache Airflow

  • Pythonで記述したDAG(有向非巡回グラフ)でワークフローを記述
  • Amazon SageMakerとのインテグレーションも

トレーニングジョブとモデルの管理

  • トレーニングジョブには以下の情報が記録

    • ジョブ名
    • 作成時間
    • トレーニング時間
    • インスタンスタイプ・数
    • コンテナイメージ
    • 入力データ
    • 出力
    • ハイパーパラメーター
    • メトリクス
  • ジョブを検索可能

    • アルゴリズム名
    • イメージ
    • データURI
    • 開始・終了時刻

データ収集・アノテーション

  • 集まったデータで再学習をしたい
  • 教師データの質は、その後のモデルの質を決定する
  • 自動化されたワークフローの中でも制度を担保できるよう、時には人でのラベル付けが必要

Amazon SageMaker Ground Truth

  • 4種類の組み込みツール + カスタムジョブ

    • 画像分類
    • 物体検出
    • セマンティックセグメンテーション
    • 文章分類
  • 3種類のワーカー

    • パブリック(クラウドソーシング)
    • 3rd パーティーベンダー
    • プライベート(自社)

推論コストを抑えるための選択肢

  • Batch Transform Job

    • 必要なとkだけエンドポイントを立てて大規模データをバッチで推論
  • Amazon Elastic Inference

    • 推論に必要な分だけ適切な量の計算リソースをアタッチ
  • Amazon SageMaker Neo

    • エッジ推論のためのモデルのコンパイルによる軽量化と高速化

IoT / ML Deep Dive on AWS

IoTシステムの進化のステップ

  • 接続
  • モニタリング・可視化
  • 分析・制御
  • 自律化・最適化

    • このステップが機械学習のカバーする領域

IoTと機械学習で実現するビジネス成果

  • 新しいサービスやビジネスモデル
  • 改善され続ける製品
  • 顧客との良好な関係の構築
  • 効率の向上
  • インテリジェントな意思決定
  • データ・ドリブン

IoTと機械学習のユースケース

  • 異常検知
  • コンテキスト解析
  • 予知保全
  • 需要予測
  • 外観検査
  • 来客分析
  • 行動分析
  • 顔認証・商品検索

どういったデータを扱うか

  • IoTに機械学習を導入する際、入力のデータは時系列データか画像データに分類されるケースが多い

どこで推論を行うべきか

  • 以下の要件がある場合はエッジでの機械学習を検討する必要がある

    • 低レイテンシ
    • ネットワークコスト
    • オフライン
    • セキュリティ

IoTと機械学習の活用で必要なサイクル

  • データ集約・拡張・クレンジング

    • AWS IoT Analytics
    • Amazon S3
  • 機械学習 & モデルの生成 / クラウドでの機械学習推論

    • Amazon SageMaker
  • ローカルでのデータ収集 / エッジでの機械学習推論

    • AWS IoT Greengrass
  • クラウドでのデータ収集 / データ変換とルーティング

    • AWS IoT Core
    • Amazon Kinesis Video Streams

Amazon SageMaker Neo

  • TensorflowやPyTorchなどのモデルを、EC2インスタンス等に最適化された形に変換

AWS IoT Greengrass

  • AWS IoTの各種機能をエッジデバイスに拡張
  • クラウドのメリットを受けつつローカルでのデータ処理を可能にする
  • AWS IoT Greengrass ML Inference

    • クラウドで学習したモデルを簡単にデプロイし、エッジで機械学習の推論を行う

AWS IoT Analytics

  • スケーラブルに時系列データの収集、前処理、拡張、保存、分析、可視化を可能にするマネージドサービス
  • AWS IoT Analytics Continuous Analysis

    • Jupyter Notebookによる分析をコンテナ化して定期的に実行できる

Amazon Kinesis Video Streams

  • 分析、機械学習、再生のために美デーストリームをキャプチャ、処理、保存するマネージドサービス

シナリオ別デザインパターン:時系列データをエッジで推論

  • 要求されるケース

    • 高頻度なデータをリアルタイムに推論してアクションしたい
    • 秒以下くらい
  • 入力となるデータ

    • 最新、もしくは直近収集された短期間の時系列データ
    • 1Hz以上の高頻度な時系列データ
  • 設計のポイント

    • 高頻度な入力をエッジで推論
    • 再学習のため、高頻度の入力データをまとめて非同期でアップロード

シナリオ別デザインパターン:時系列データをクラウドで推論

  • 要求されるケース

    • 長時間のデータから推論して今後のアクションを決めたい
    • 複数拠点のデータを束ねて推論したい
  • 入力されるデータ

    • 長期間、複数拠点の時系列データ
  • 設計のポイント

    • ワンタイムの解析だけではなく、継続的に解析を行えるシステムの構築

シナリオ別デザインパターン:画像データをエッジで推論

  • 要求されるケース

    • コスト効率やコンプライアンス対応のため、画像をエッジで推論して結果のみクラウドで利用したい
  • 入力されるデータ

    • 画像データ

シナリオ別デザインパターン:画像データをクラウドで推論

  • 要求されるケース

    • 動画を高フレームレートで詳細に分析したい
    • 画像分類において、分類したいoutputの種類が多い

感想

一週間に及ぶre:Cap終了!

AWSのホットなサービスについて幅広く学ぶことができた。

機械学習にしても、データレイクの構築やデータ分析にしても、結局それを利用できるようにするためのアプリケーションの構築が欠かせないとわかった。

連携やセキュリティの部分ではIAMに関する知識も欠かせない。

ビジネスの課題を解決するようなシステムをBuilding Block的に組み立てるためにも、使えるサービスを広げつつ基礎となる部分をよりしっかり固めておきたい。