多角型事業組織におけるMLOps/AI基盤 ~マイクロチームでの機械学習PoC~ ShibuyaSynapse #4
Copyright © DeNA Co.,Ltd. All Rights Reserved.多角型事業組織におけるMLOps/AI基盤~マイクロチームでの機械学習PoC~Shibuya Synapse #4confidential
View Slide
Copyright © DeNA Co.,Ltd. All Rights Reserved.2@yurfuwaDeNASystem Unit,AI System Dept.ML Engineering Gr.
Copyright © DeNA Co.,Ltd. All Rights Reserved.Agenda (15min)■ DeNAにおける機械学習案件と事業部■ マイクロチームでの機械学習PoC■ 機械学習案件のPoCはレポートレベルで良いのか?■ フィージビリティスタディを加速させながらサービスを作る■ What should I do?3
Copyright © DeNA Co.,Ltd. All Rights Reserved.前提情報: DeNAにおける機械学習案件と事業部■ DeNAは多角型事業組織であり、ドメインを定めない大小多数のサービスと事業で成立している。■ オンプレミスからAWS,GCPに主戦場が移り、数百のアカウントを持ち、エグゼクティブサポートを受けている。■ AIシステム部は機械学習特化型集団として、リサーチャーとMLエンジニア、データサイエンティスト約50名で構成。■ リサーチャーはエキスパート寄り、MLエンジニアはゼネラリスト寄り。MLエンジニアはデータエンジニアリングからサーバーサイド、アルゴリズムまで広く書けるスキルセット。■ 事業部及び横断部と密に連携し、機械学習で事業貢献を推進。4
Copyright © DeNA Co.,Ltd. All Rights Reserved.マイクロチームで最大化するための機械学習PoC5©Alejandro Lopezhttps://creativecommons.org/licenses/by-sa/2.0/
Copyright © DeNA Co.,Ltd. All Rights Reserved.6この先は実案件における紹介ですが、秘匿性が高いため’何を’機械学習して’何を’達成すのかなど詳細は非公開となります
Copyright © DeNA Co.,Ltd. All Rights Reserved.マイクロチームでの機械学習案件7極少人数 成果主義コスト意識 短納期
Copyright © DeNA Co.,Ltd. All Rights Reserved.PoCはレポートレベルでいいのか?8機械学習案件の
Copyright © DeNA Co.,Ltd. All Rights Reserved.■ 期待値調整によるが、大抵否。■ その案件は、本当にフィージビリティスタディだけで終わるとお思いですか?■ レポートレベルで上げても、運用に落とすリソースが現場に無い場合、シビアな意思決定は避けられない■ サービスとして提供されたほうが、目に見えてわかりやすい■ 非エンジニアの現場の巻き込みが圧倒的にしやすい■ 成果はコトとスピードを尊ぶ。■ ならそれを踏まえて、最初からサービスレベルで動いたほうが良い。(予算掌握を忘れてはならない)PoCはレポートレベルでいいのか?9
Copyright © DeNA Co.,Ltd. All Rights Reserved.機械学習案件の10フィージビリティスタディを加速させながらサービスを作るhttps://commons.wikimedia.org/wiki/File:The_Z_Machine_(8056998596).jpg
Copyright © DeNA Co.,Ltd. All Rights Reserved.112ヶ月
Copyright © DeNA Co.,Ltd. All Rights Reserved.12あるPoCの初期開発に当てられた開発期間
Copyright © DeNA Co.,Ltd. All Rights Reserved.2ヶ月で運用まで持っていく13Nov Dec Jan Feb Mar On Seasons承認フィージビリティスタディコア開発 サービス品質改善・運用リアルタイムデータ導入によるCDとアルゴリズム改善評価評価 評価
Copyright © DeNA Co.,Ltd. All Rights Reserved.2ヶ月で運用まで持っていく■ 結局の所、実データで、実サービスで触ってみないと何もわからないことが多い■ 過去データも重要だが、PoCでもいかにリアルタイムなデータに触れて、リアルタイムなフィードバックから導いたアルゴリズムとサービス改善が大切■ とある事情で3月に生データが大量に来る案件では、企画承認から2ヶ月しかなかった■ とある事情で3月からの1日1日は、データ的にあまりに価値が高く、一日とて遅れるわけには行かなかった■ それまでにPoCでフィージビリティスタディと、形作りを行うことで、生データの運用開始時点でステークホルダーからのフィードバックが返ってくるだけでなく、チームも計画段階では気づかない課題を積むことができた14
Copyright © DeNA Co.,Ltd. All Rights Reserved.開発体制(※極端なケース)15・クラウドインフラ・データパイプライン・データウェアハウス構築・バックエンド・フロントエンド・サービス設計・IA,UI,UX・CD/CI・AutomationMLEPO,ResearcherResearcher・コアコンセプト・データサイエンス・リサーチ・アルゴリズム・データエンジニアリング・CV(前処理,後処理)・Automation
Copyright © DeNA Co.,Ltd. All Rights Reserved.MLOpsでMLエンジニアが主に取り組む課題■ E2Eでのデータフローとシステムアーキテクチャ⁃ データウェアハウスの整備、設計、実装⁃ セキュアなデータのやり取り、ネットワーキング⁃ 機械学習フレームワークにロックされないシステム構成⁃ 非同期的な学習プロセスとパイプライン⁃ 学習用/サービス用APIの開発⁃ アノテーションシステム⁃ CI/CD⁃ 自動化⁃ 可視化• IA,UI/UX• フロントエンド16
Copyright © DeNA Co.,Ltd. All Rights Reserved.17全部やる※全部やれと上から言われたわけではないことに注意DeNAはあらゆる裁量がエンジニアに任される。コトをなすために我々がすべきことをやるまで。
Copyright © DeNA Co.,Ltd. All Rights Reserved.18What should I do?
Copyright © DeNA Co.,Ltd. All Rights Reserved.19クラウドをシンプルにフル活用するシンプルな答え 1
Copyright © DeNA Co.,Ltd. All Rights Reserved.マイクロチームでのPoCにおけるクラウドをフル活用■ AWS/GCPは案件によって異なる。■ 事業部側とAI側でマルチアカウントとなることが多い■ データレイクからクレンジングされたデータをウェアハウスに、APIと共に用意■ 安易な潮流に乗るのではなく、案件の要件によって確実な構成と技術選択を行う■ ミッションクリティカル以外は速度を優先する■ セキュリティ要件を踏まえ、VPCダイレクトコネクトや専用線、データ暗号化(SSE-KMS)を徹底的に活用する■ エグゼクティブサポートを有効活用する⁃ フルスイングを参照20
Copyright © DeNA Co.,Ltd. All Rights Reserved.あるPoCでのシステム構成例21
Copyright © DeNA Co.,Ltd. All Rights Reserved.機械学習PoCにおけるAWSでの最小MLOpsシステム例 1/2■ 学習環境⁃ 自社共通基盤に乗り、土固め。■ API 環境⁃ k8sのないtokyoにおいてECSよりもさらに小回りの効くEBという選択肢⁃ ElasticBeanstalk Multiple Docker Container⁃ docker-compose like なECR+ECS+ALBコンテナオーケストレーション⁃ マイクロサービスとして展開し、学習環境とは非同期/疎結合を維持⁃ GAE,k8sなどを利用した競合システムに乗り換えが比較的簡単■ Datastore⁃ S3 + Dynamodb⁃ Dynamodbには学習に利用するメタデータを格納⁃ トラフィックのない小規模案件の場合、従量課金はオンデマンドRDSより割安22これらはマイクロチームでの機械学習PoCに当てはまるレイアウトであることに注意!最初からタフなチーム構成で、シビアなトラフィック、スケーラビリティを要求される事業適応にはもちろん別のレイアウトが適応される。この後のセッションをお楽しみに!
Copyright © DeNA Co.,Ltd. All Rights Reserved.ElastickBeanstalk Docker Multiple Container23
Copyright © DeNA Co.,Ltd. All Rights Reserved.機械学習PoCにおけるAWSでの最小MLOpsシステム例 2/2■ パイプラインはSQSで組む⁃ 比較的安く、圧倒的に手軽。⁃ SQS監視でキックされた学習ワーカが処理のシンプル構成⁃ 但し、一定規模が見込まれる複雑なワークフローは素直にStepfunctionやAirflowを使ったほうが後に幸せだが、速度優先のPoCでやる必要はないと考える■ モデル・特徴量管理を煩雑にしない⁃ リアルタイム推論が必要な場合、モデルをcontainer imageに閉じ込めバージョン管理。特徴量を外出しさせる。⁃ リアルタイム推論が不要な場合は、学習後推論結果をDB/cacheに格納。⁃ PoCではサービングサーバは用意しない。Internal APIに入れ込む。⁃ モデル・特徴のバージョニングは学習と非同期で更新できる設計にする⁃ CircleCI以上のCDは、PoC段階では必要ない⁃ Deployment,BlueGreenDeployはEBが担保■ フロントエンドに銀の弾丸はない⁃ ドメインによって、機械学習ではカバーできない部分(ブラックボックス)をサービスがUIUXで解決することで、両輪の駆動となる。24
Copyright © DeNA Co.,Ltd. All Rights Reserved.AWSにおけるシンプルな自動学習モデルデプロイ例25SQSS3 TrainAPI onDockeron EBAnnotatein modelcontainerenqueue
Copyright © DeNA Co.,Ltd. All Rights Reserved.AWSにおけるシンプルな自動学習+事前推論例26SQSS3Train andinferenceAPI onDockeron EBAnnotate inferenced resultsdynamodbenqueue
Copyright © DeNA Co.,Ltd. All Rights Reserved.27共通基盤をフル活用するシンプルな答え 2
Copyright © DeNA Co.,Ltd. All Rights Reserved.機械学習PoCにおける共通基盤のフル活用■ クラウド環境基盤⁃ 環境セットアップ前に基盤部とMLEが迅速に連携する機械学習用構成ツール⁃ 基盤部が提供する謹製の共通基盤(aws-tools/gcp-tools)⁃ 小規模~大規模まで柔軟に対応⁃ 学習用インスタンス管理、Spotの自動選択など便利機能満載⁃ spotinstanceの死活監視や、GPU不使用起動をSlack報告⁃ 学習用インスタンス向けAMI⁃ コストアラート⁃ 事前にセキュリティ要件を満たしたネットワーク、セキュリティグループが提供⁃ sagemaker / jupiter nootebook 環境もセットアップが簡便⁃ 共通アノテーション環境(nota)との連携(内製アノテーションチーム利用)■ 機械学習用共通ミドルウェアの開発導入検討(進行中)⁃ 共通利用可能なモデルデプロイメント、サービング、パイプライン、モデル実験管理、ハイパラ調整などを統合した機械学習ミドルウェアパッケージの開発と導入を検討28
Copyright © DeNA Co.,Ltd. All Rights Reserved.ところでGCPやk8sは?■ もちろんDeNAは、共通基盤でも実案件でも利用している■ k8sを利用した大規模MLOps案件も多数。さらにAWS+GCPハイブリットなプロジェクトもある。⁃ DeNA TechCon 2019!■ AWSはk8s対応しているものの、AWS独自のオーケストレーションでMLOpsを強く推しているのはre:Inventの通り■ 技術選択は各案件の複雑な要件、時流、コンテキストに依存するため、一概にどちらが良いとは言えない。■ ただし、SPOFを排除するのはもちろん、どの選択肢も把握しておくことは非常に大切。29
Copyright © DeNA Co.,Ltd. All Rights Reserved.30
Copyright © DeNA Co.,Ltd. All Rights Reserved.31まとめ
Copyright © DeNA Co.,Ltd. All Rights Reserved.まとめ32PoC=サービス提供ロック回避シンプル抽象化された共通基盤
Copyright © DeNA Co.,Ltd. All Rights Reserved.フルスピードで機械学習案件をドライブする■ モデルアルゴリズムもMLOpsも物凄い勢いで変化する■ 最小構成は最小構成の、大規模構成は大規模構成の、GCPとAWSの強みをそれぞれを上手く活用して技術ロックを相互に回避する■ 学習実験・共通基盤の抽象度を高める■ 他社事例含め、大小様々な構成を横断グループで議論することで、人的SPOFを排除33
Copyright © DeNA Co.,Ltd. All Rights Reserved.34ありがとうございました@yurfuwa