Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイクロチームでの機械学習PoC / ShibuyaSynapse #4,
Search
yurfuwa
December 11, 2018
Technology
5
4.2k
マイクロチームでの機械学習PoC / ShibuyaSynapse #4,
多角型事業組織におけるMLOps/AI基盤
~マイクロチームでの機械学習PoC~
ShibuyaSynapse #4
yurfuwa
December 11, 2018
Tweet
Share
More Decks by yurfuwa
See All by yurfuwa
AI Project Management Flow and Build Trap Review
yurfuwa
17
14k
AI Project Management Anti Pattern
yurfuwa
26
9.1k
Other Decks in Technology
See All in Technology
Terraform CI/CD パイプラインにおける AWS CodeCommit の代替手段
hiyanger
1
240
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
340
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
190
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
複雑なState管理からの脱却
sansantech
PRO
1
140
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.2k
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Six Lessons from altMBA
skipperchong
27
3.5k
A Philosophy of Restraint
colly
203
16k
Faster Mobile Websites
deanohume
305
30k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Scaling GitHub
holman
458
140k
Rails Girls Zürich Keynote
gr2m
94
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Designing for Performance
lara
604
68k
Become a Pro
speakerdeck
PRO
25
5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Transcript
Copyright © DeNA Co.,Ltd. All Rights Reserved. 多角型事業組織における MLOps/AI基盤 ~マイクロチームでの機械学習PoC~
Shibuya Synapse #4 confidential
Copyright © DeNA Co.,Ltd. All Rights Reserved. 2 @yurfuwa DeNA
System 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. マイクロチームで 最大化するための 機械学習PoC
5 ©Alejandro Lopez https://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. 11 2ヶ月
Copyright © DeNA Co.,Ltd. All Rights Reserved. 12 あるPoCの初期開発に当てられた 開発期間
Copyright © DeNA Co.,Ltd. All Rights Reserved. 2ヶ月で運用まで持っていく 13 Nov
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 ・Automation MLE PO, Researcher Researcher ・コアコンセプト ・データサイエンス ・リサーチ ・アルゴリズム ・データエンジニアリング ・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. 18 What 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
Container 23
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におけるシンプルな自動学習モデルデプロイ例 25 SQS
S3 Train API on Docker on EB Annotate in model container enqueue
Copyright © DeNA Co.,Ltd. All Rights Reserved. AWSにおけるシンプルな自動学習+事前推論例 26 SQS
S3 Train and inference API on Docker on EB Annotate inferenced results dynamodb enqueue
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. まとめ 32 PoC=
サービス提供 ロック回避 シンプル 抽象化された 共通基盤
Copyright © DeNA Co.,Ltd. All Rights Reserved. フルスピードで機械学習案件をドライブする ▪ モデルアルゴリズムもMLOpsも物凄い勢いで変化する
▪ 最小構成は最小構成の、大規模構成は大規模構成の、GCPとAWS の強みをそれぞれを上手く活用して技術ロックを相互に回避する ▪ 学習実験・共通基盤の抽象度を高める ▪ 他社事例含め、大小様々な構成を横断グループで議論することで、 人的SPOFを排除 33
Copyright © DeNA Co.,Ltd. All Rights Reserved. 34 ありがとうございました @yurfuwa