Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AI/MLシステムにおけるビッグデータとの付き合い方

1,308 views

Published on

JAWS DAYS 2019での資料です

Published in: Data & Analytics
  • Be the first to comment

AI/MLシステムにおけるビッグデータとの付き合い方

  1. 1. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI/MLシステムにおけるビッ グデータとの付き合い方 JAWS DAYS 2019 February 23, 2019 Shota Suzuki ML Engineering G DeNA Co., Ltd. 1
  2. 2. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 自己紹介  鈴木 翔太  株式会社ディー・エヌ・エー システム本部AIシステム部MLエンジニアリングG  MLエンジニア ⁃ AI/MLシステムの本番組み込み ⁃ データの前処理・データパイプライン ⁃ 分析、学習環境の構築 2
  3. 3. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Agenda  DeNAでのAI/MLへの取り組みの紹介 ⁃ 組織体制 ⁃ 交通事故低減に向けたAI技術活用の取り組み  研究開発を進めるためのビッグデータ処理 ⁃ データの保管方法 ⁃ 本番システムでのデータ処理 ⁃ 分析、学習環境 3
  4. 4. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. DeNA 事業ポートフォリオ  多種多様な領域でのビジネス・サービス展開  パートナー企業と共に社会影響の大きなサービス創出  大規模インターネットサービスプラットフォームの構築 4 ゲーム エンター テイメント 新領域スポーツ ヘルスケア オート モーティブ eコマース・ その他 ソーシャル LIVE
  5. 5. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI 技術の蓄積と活用 5 実用系 実験系 スピード パートナーシップ案件 自社サービス 基礎技術開発 実用価値提供 実証実験 実用価値提供 サービス内実験 最新論文の実装・実験 研究成果の外部発信 最新研究を自社 サービスデータを 活用して実験 先端技術の適用実績を スピーディーに蓄積 確度の高い技術を 活用した価値を提供 自社サービスでは 獲得できないデー タを活用した、 実験的取組みによ る技術力の向上と、 新しい価値の探求
  6. 6. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI サービス応用を実現するための組織体制 6 CV / NLP / 音声 / 強化学習等の 研究 上の専門技術を保有 日進月歩の先端研 究動向をウォッチし専門技術を活用し て事業貢献 高い専門性 サービス・事業の抱える分析課題を解 くことに燃えるスペシャリスト集団 手段を問わず最高の精度を出すことに 泥臭くコミット 幅広い引き出し ML エンジニア AI技術をサービス上に実装して安定運用を実現する データの収集、前処理やAPIの提供 高いエンジニアリング能力 AI 研究開発エンジニア データサイエンティスト
  7. 7. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 7 交通事故低減に向けた AI 技術活用の取り組み
  8. 8. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 行動変容に基づく交通事故低減 8  運転行動をモニタリングし潜在的な不安全行動を指摘→行動変容を促す 地図 ドライバー モニタリング 環境 モニタリング センサ解析 (GPS、加速度、ジャイロ)
  9. 9. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドライバーモニタリング 9  ランドマーク検出+顔姿勢推定 ⁃ 顔のランドマークを検出し、顔の3Dモデルとフィッティングすることで顔の3D姿勢を推定 ・・・ 左目 鼻 あご ランドマーク検出結果 顔の3Dモデル
  10. 10. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 車載カメラ画像認識による環境モニタリング 10
  11. 11. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 大規模の実走行データでの実証 11  実証実験を通して、大規模に実走行データを収集  アノテーション体制を構築し、AI研究開発に必要十分なラベル付きデータを いつでも作成・利用できる状態
  12. 12. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 危険運転行動検出アルゴリズムの開発 12  CVモデルからのデータをはじめ、車速/加速度/地図データから危険運転行 動の特徴を把握し、機械学習等を用いて検出アルゴリズムを開発 危険運転行動の特徴把握 ビジネス要件に合わせた アルゴリズムの開発 危険運転 行動 安全運転行動 CVモデルなどからデータを取得
  13. 13. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 独自のアルゴリズムによる危険運転行動検出 13 CV / NLP / 音声 / 強化学習等の 研究 上の専門技術を保有 日進月歩の先端研 究動向をウォッチし専門技術を活用し て事業貢献 高い専門性 サービス・事業の抱える分析課題を解 くことに燃えるスペシャリスト集団 手段を問わず最高の精度を出すことに 泥臭くコミット 幅広い引き出し ML エンジニア AI技術をサービス上に実装して安定運用を実現する データの収集、前処理やAPIの提供 高いエンジニアリング能力 AI 研究開発エンジニア データサイエンティスト 高精度な車間距離算出モデルの開発 危険運転行動検出アルゴリズムの開発 データ収集、本番環境へのデプロイ、運用 CVチーム(AI研究開発エンジニア)の作成した高品質なモデルを活用して DSチームが危険運転行動検出アルゴリズムを開発し ドライバー本人にも納得感のある危険運転行動検出を実現 あおり運転検出の例
  14. 14. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 14 AI研究開発を進めるため のビッグデータ処理
  15. 15. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 基本方針  MLエンジニア側でモデル開発部分以外はなんでもやる ⁃ 学習環境の整備、本番システムへの組み込みなど ⁃ 研究開発エンジニア、データサイエンティストに対してはクラウド利用の敷居を極力下げる  マネージドサービスをなるべく使う ⁃ 運用にかける工数を極力減らし本質的な開発に集中  生のデータをS3、EFSにおき研究開発に利用 ⁃ データサイズがかなり大きいのでデータ量と保管場所には注意する 15
  16. 16. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. システム構成 16 車載器通信用ALB Car API ALB Web API AWS IoT 社内PC 顧客Tablet/PC 車載器 Job Kicker Server AWS Batch AI処理 Map Match 位置情報処理 ALB SQS Webサービス用 SageMaker 学習用EC2 AWS Glue S3 SQS ELB リバプロ Kibana Elasticsearch Service CVエンジニア・データサイエンティスト分析 AI・危険運転解析処理 アプリログ分析 DynamoDB AuroraMemcache Argus(内製BI) 車載器データ処理・Webサービス CloudWatch CloudTrail Amazon SNS • AIの分析・解析・試験環境において、多種多様なAWSコンポーネントを活用 IGW DynamoDB EFS
  17. 17. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 17 ビッグデータの保管
  18. 18. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 大量データの保管方法  車載器からは一定間隔でデータをアップロード  車載器のデータはS3に保存し永続化 ⁃ 基本はKMS (SSE) で暗号化、MFA Delete On、Versioning On  頻繁に分析に扱うセンサーデータはEFSにもコピーし扱いやすくしておく  Digdag / Cronなどで毎週、毎日、毎時 S3 -> EFSのデータ同期 ⁃ 走行データは車載器が動いたタイミングで送信されるため、古いデータが飛んでくことがある ⁃ ネットワークの不調によって後から飛んでくることも • 過去のデータも同期できるように工夫している 18 S3は全データの元データ、必要なデータだけEFSに転送して分析するという運用スタイル
  19. 19. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.  コスト、コスト、コスト! ⁃ データサイズがけっこうな規模になりコストを圧迫 • S3: 1PB 〜 • EFS: 数十TB • Aurora: 数百GB 〜 ⁃ EFSは便利な反面容量単価がS3に比べてかなり高い • EFS : 0.36 USD/GB • S3 : 0.025USD/GB (最初の50TB) ⁃ 高いけど使うのはやめられない! • 大量に処理するときEFSにあるとかなり便利 19 大量データの保管方法のつらみ S3はコストが比較的安いが、解析する際はEFSの方が分析者として扱いやすい 利用者にはコスト感を理解してもらいつつ、必要データのみEFSに転送するようにしている
  20. 20. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.  KMSのLimit制限 ⁃ ThrottlingException の発生 ⁃ 大量にS3からデータを取得している時に発生 ⁃ アカウントごとに1 秒あたりのリクエスト数 5,500 件 (または 10,000 件) の制限を共有 • OKパターン: 1 秒あたり 3,000 件の GenerateDataKey 、1 秒あたり 1,000 件のDecrypt リクエスト • NGパターン: 1 秒あたり 5,000 件の GenerateDataKey 、1秒あたり 1,000 件の Encrypt のリクエスト ⁃ 制限緩和が基本できない ⁃ 代替案としてSSE-S3を使うなどをする 20 大量データの保管方法のつらみ 瞬間的に大量データをS3から取得する際には気をつけるべきLimit 制限緩和ができない箇所なので暗号化ソリューションを変更することで対応
  21. 21. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. データの削減検討  古いS3のデータGlacierに転送しコストダウン  生データに対して処理をすることがほとんどで中間データを作成して元データを 削除することが難しい  解析用途では必ずしも全期間のデータは必要ない ⁃ データセットを構築できればそこを保持していれば良い ⁃ データの特性を理解しておかないと必要なデータを落としてしまうことも • 時間、季節、地域  研究開発段階では新しい要件も次々に出てきて結局データはあればあるほど良い となり削減がしづらい ⁃ コストとのトレードオフは常に意識する 21
  22. 22. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. S3以外のデータ管理 - Aurora 22  Auroraで管理するデータ ⁃ 用途としてはS3で管理できないリレーショナルなデータ ⁃ AI処理結果のステータス ⁃ 動画・センサーデータのS3のpath ⁃ ユーザのマスターデータ  対策と運用の工夫 ⁃ 特別なことはせずにシンプルに利用 ⁃ Master(Write) + Read Replica ⁃ データ量が増える今後のサービス展開時に性能向上、機能を期待
  23. 23. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. システム間連携 23 車載器通信用ALB Car API ALB Web API 車載器 Job Kicker Server AWS Batch AI処理 Map Match 位置情報処理 ALB SQS Webサービス用 S3 SQS AI・危険運転解析処理 DynamoDB AuroraMemcache 車載器データ処理・Webサービス IGW DynamoDB 自動車のデータの収集とAI系処理はそれぞれ部門を分けて開発 部門間に跨る処理はSQSで住み分け、結果はS3, Auroraで共有 AI側処理に失敗したとしても収集したデータは残るので再処理可能
  24. 24. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. SQSでのジョブ連結  AI側処理は各Task間をSQSで繋げる ⁃ データ整形・前処理 -> SQS <- 位置情報処理 -> SQS <- 危険運転検知 ⁃ SQSはコスト安いので気軽に使用できて便利 ⁃ 耐障害性も高い (一度SQSの障害で接続できずにエラーまみれに) ⁃ 順序保証の必要がなかったのでSQS FIFOは使わず標準キュー ⁃ 再処理時はSQSにメタデータをエンキューするのみ ⁃ 複数回実行しても大丈夫なよう冪等にジョブは作っておく 24
  25. 25. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Glueの活用 25 Aurora AWS Glue S3: db snapshot ユーザ・デバイス情報 Embulk経由でBQへ  DBに溜まった各種生データをBIで分析する際にGlueを活用  Glueで必要なテーブルだけ加工してS3へ保存、 最終的にBigQueryヘ転送して BIで解析  Glue Job / Trigger をTableごとに設定し、Crawlerで定期実行 S3: Glue Script Trigger (Cron ) 個人情報を抜いた状態のデータを解析したいときなどに活用 BigQueryにデータ投入してBIするという定番の流れに利用できる Argus(内製BI)
  26. 26. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Glueのつらみ 26  Glue JobによるIPアドレスの枯渇が発生 ⁃ DPU(Data Processing Unit) の数分の ENIが必要になる ⁃ そのため計算量、同時実行のJobが増えるとその分発生確率が高くなる ⁃ 失敗したジョブを再実行が必要になる(つらみ)  対策と運用の工夫 ⁃ --enable-metrics をONにし、実行中のDPU 数から消費IPを管理 • DPUのモニタリング ⁃ Subnetは分析環境として分割して管理 ⁃ 同時実行は避け、実行時刻を調整 ⁃ Subnetも大きめに取る ⁃ ENI Limitなどのリソース制限も注意する https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-debug-capacity.html
  27. 27. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 27 AI/MLの研究開発部分
  28. 28. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 28 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  29. 29. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 29 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  30. 30. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. センサーデータの収集、保管、加工  車載器からアップロードされた各種センサーファイルを収集 ⁃ 前半のスライドで話した内容 ⁃ GPS、加速度、カメラの解析結果、生の映像データなど ⁃ S3とEFSに各ドライビング毎にまとめて配置  生データをデータサイエンティストが扱いやすいよう前処理 ⁃ 分割されたファイルの結合 ⁃ 欠損値の補間 ⁃ タイムスタンプ揃え 30
  31. 31. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Computer Vision用データの準備  データの収集 ⁃ 実証実験で収集した動画から専用のアノテーションツールを使い、ドライバーや道路の画像 をアノテーション  データのクレンジング ⁃ SageMakerのNotebookで可視化分析し異常値を省く  データセットの構築 ⁃ hdf5に変換しデータはEFSに配置 • データが巨大で学習インスタンス立てるたびにコピーするのは面倒 • 圧縮したままEFSにおき学習評価に使える 31
  32. 32. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 32 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  33. 33. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習、分析環境の構築、運用  AI研究開発エンジニア、データサイエンティストが安全になるべく自由に使える 学習、分析環境を構築、運用 ⁃ データサイエンティスト • Jupyterは必須 ⁃ AI研究開発エンジニア • 学習用に大量のGPU使いたい ⁃ 共通要件 • AWSの扱いはそこまで慣れていない人が多い • セキュリティ周りの扱いも気をつける 33
  34. 34. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 分析環境 SageMaker 34 S3 taro-tanaka-notebook-01 hanako-yamada-notebook-01 taro-tanaka-lifecycle-conf hanako-yamada-lifecycle-conf EFS lifecycle configurations KMSで暗号化 DSチーム IAM Role SageMakerのNotebookにEFSをmountし、チーム内でデータ共有 lifecycle configurationsとNotebookを紐づけて管理することで個々にカスタムした環境を構築可能 分析者のアクセス制御 S3->EFSへ片方向データ転送 EFSは分析データの共有に便利 CVチーム
  35. 35. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習環境 EC2 35 Step Server 学習用EC2① (Ondemand Instance) 学習用EC2② (Spot Instance) ・EC2インスタンス管理ツール(弊社開発) ・監視設定、Spot設定、DNS紐付け、Role管理などを制御する ・開発者が管理しやすい aws-tools Lambda Slack aws-toolsで各EC2インスタンスを生成し、インフラ管理から外れないようにチェック Spot Instanceの積極的な活用でコスト削減しつつ、停止したときの通知等の工夫をしている 停止 作成者にアラート通知 作成 EFS 分析データ共有 作成
  36. 36. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. SageMakerの利用範囲 36  SageMakerで開発、学習、推論までやろうと思えば全てできるが、本プロジェク トではデータの分析、可視化がメイン用途  少人数でMLプロジェクトに取り組むときには大変有用だと思うが、大規模プロ ジェクトで色々なスキルを持った人がいる場面では必要性が薄く感じる ⁃ 金銭面 • SageMakerではSpot Instanceが使えないのでGPU処理のコストがかさむ ⁃ 学習コスト • SageMaker独自の扱いを覚えてもらう必要がある ⁃ 最近はかなり改善されてきている ⁃ 推論API • モデル作成者以外にソフトウェアエンジニアも同じプロジェクトに関わっているのでわざわざ SageMakerのものを使う必要もない
  37. 37. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 高速に大量に推論を回す仕組み 37  AWS Batchを使い大規模に推論、特徴量作成などを実行 ⁃ 新モデル作成時には過去データに対して推論を回しデータを作り直す ⁃ 推論は安いCPUのスポットインスタンスを利用しコスト削減 ⁃ 自動でスケールアウトするので処理対象をSQSにエンキューするだけ AWS Batch 元データ センサ、動画 推論結果、特徴量SQS DSチーム データの解析 推論、データ の前処理
  38. 38. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのメリット  低コストで大量のインスタンスを立ち上げられる ⁃ Spot Fleet + Auto Scaling + ECSを簡単に構築できる ⁃ AWS Batchがよしなに準備してくれる  側さえ用意すれば、アプリケーションチームはDockerで自由にリソースを使用で きる ⁃ Deployも基本はECSと同様の方法なので、ECS/Fargate 利用者はアプローチしやすい ⁃ Job Queue に実行数を指定してリクエストをすれば必要な台数をよしなに起動 • アプリケーションチームはインスタンス数を管理しなくてよい ⁃ 処理が終了すれば自動的にBatchがContainer Instanceを停止してくれる  全体の処理状況をチェックするDashboardがついている(重要ポイント) 38
  39. 39. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  API回数制限 ⁃ 大量のBatch処理を並行してSubmitしていると突如API制限に引っかかり処理停止 ⁃ APIの制限緩和をしたい! • API Limit制限緩和はありません ⁃ AWS BatchのDashboardさえ見れなくなる • AWS Batch Dashboard見れないんだけど ⁃ AWS Batch Dashboardは使用しないでください(!?) • これもAPIを使用するので逆効果らしい 39
  40. 40. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  Auto Scalingが遅い ⁃ AWS BatchはJob QueueのJob件数をチェックして自動的にContainer Instanceを増やす • Job Queueに溜まった件数と間隔でスケールアウトさせたいなぁ ⁃ Auto Scalingの設定を変えればいけるだろ! • 設定はあるが変更等ができない • この箇所は利用者側でチューニングできない(つらみ) • ひたすら待つ(つらみ)  稀にJobが滞留し続け、稼働中のContainer Instanceが自動的に停止されない ⁃ 発生要因はいろいろ(docker-agentの問題等) ⁃ 異常に長い時間動作しているContainer Instanceを監視する仕組みが必要(つらみ) ⁃ Container Instanceも場合によっては利用者側でマネージドしなきゃいけない(つらみ) 40
  41. 41. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  /aws/batch/job にログが集約される ⁃ Job Queue / Job Container / Job definitionを分割したのにもかかわらず ⁃ Metric Filterの設定が面倒 ⁃ Job Definitionで指定できると助かる  Job Queueの中身の一括削除ができない ⁃ 不要なJobを削除したい ⁃ SQSにはPurgeという素晴らしい機能が! • だがBatchにはないので ⁃ list-jobs でstatusごとにjob idを取得、一覧を作成 -> terminate-jobで一つ一つ停止 ⁃ StatusとはJobの実行状態で、RUNNING、FAILED等を指す 41
  42. 42. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 42 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  43. 43. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. デプロイ・モニタリング  学習したCVモデルはエッジ用に変換しデプロイ  データサイエンティストの作ったモデルはMLエンジニアが本番用に一部変換し サーバにデプロイ  Stage環境に簡易的なデータセットを作り、システムとしての動作、モデルの検出 精度を比較  危険運転行動検出数の推移をBIツールでモニタリング 43 Inference Batch 元データ センサ、動画 推論結果、特徴量SQS Analyze Batch 他モデルの結果 モデル間の精度比較
  44. 44. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 今後サービスで使用検討中の機能  Secrets Manager ⁃ Parameter Storeの拡張、パスワードローテーション機能付き ⁃ DBのユーザ、credentialsの管理用 ⁃ API Limitsがあるので叩きすぎ注意  Fargate ⁃ ECS Spot / Reserved Instance VS Fargate • 2019年1月にコストダウンしたがやはりちょっと高い • Task起動が遅い – awsvpc modeとFargate 特有の事象 • コスト・性能がシビアではない箇所にFargateを採用 44
  45. 45. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. まとめ  AI/MLプロジェクトではモデル開発部分以外にもエンジニアリングタスクはいっぱ いある  AWSのマネージドサービスを使えるところは使い運用コストの削減  データサイズと保管場所には注意し適切なコスト管理を行う ⁃ EFSでのデータ共有は非常に便利だがコスト注意  大規模に使用すると思わぬところでRate Limitに引っかかることがあるのでドキュ メントをよく読むのと、一度大きな負荷をかけてみること大事 45
  46. 46. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 46 We’re hiring!  https://career.dena.jp/job.phtml  AI研究開発エンジニア、データサイエンティスト(Kaggler)と一緒 にAI/MLプロジェクトに取り組みたいエンジニア
  47. 47. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 47 ご静聴ありがとうございました

×