データレイクを基盤とした
AWS上での機械学習サービス構築
Makoto Shimura
Data Science SA, Amazon Web Services Japan
2016/12/18
自己紹介
• 志村 誠
Amazon Web Services Japan
Data Science SA
• ビッグデータやデータサイエンスに関する案件を担当
• 好きなAWSのサービス: S3とRedshift
2
Agenda
• AWSにおける機械学習の取り組み
• データレイクアーキテクチャ
• データレイクをさらに便利にする新サービス
• AWS上での機械学習モデルの構築
• re:Invent 2016: Machine Learning Track
3
AWSにおける機械学習の取り組み
4
世界中に広がるデータセンタ群
5
16のリージョンと42のAZ
1. AWS GovCloud (2)
2. オレゴン (3)
3. 北カリフォルニア (3)
4. バージニア北部 (5)
5. オハイオ (3)
6. サンパウロ (3)
7. アイルランド (3)
8. フランクフルト (2)
9. シンガポール (2)
10. シドニー (3)
11. 東京 (3)
12. ソウル (2)
13. ムンバイ (2)
14. 北京 (2)
15. モントリオール (2)
16. ロンドン(2)
2リージョンを追加予定
1. パリ
2. 寧夏
2
2
2016/12/18時点
AWSのイノベーションの速度
6
24 48 61 82
159
280
516
722
2008 2009 2010 2011 2012 2013 2014 2015
2015年には722のメジャーな新機能や
新サービスがリリースされました
Amazonでの機械学習の取り組み
画像/音声認識を活用したサービス
8
• Amazon Go
– レジのないコンビニ
– シアトルにてテスト出店
– 各種認識技術で購入商品を判定
• Amazon Echo / Amazon Fire TV
– 音声認識 / 音声検索
– 自然言語理解
物流倉庫の自動化
• Amazon Picking Challenge
– ロボットアームを自動制御するコンテスト
– 物体判別や物体の状態認識
• 配送業務の効率化
– ロボットを活用して作業の効率化
9
Amazon Rekognition
• 深層学習の技術を利用した画像認識のマネージドサービス
• 学習済みモデルを使って画像の「状況」「人物の顔」「物体」を検出
Amazon Polly
• フルマネージド型の”Text-to-speech”機能を提供する新サービス
• 発音の強弱や速度調整,辞書の追加などが可能
Amazon Lex
• 音声またはテキストメッセージに応答するチャットボット開発を
容易にするサービス
AWSを活用して効果的に機械学習サービスを
構築する方法をご紹介します
13
データレイクアーキテクチャ
機械学習サービスの話ではない?
いえ,そんなことはありません
機械学習で大事なのは,継続的な改善サイクル
• 機械学習は,それ単体では完結しない
– 必要なデータを収集
– さまざまな前処理
– データの可視化や集計
– モデルの構築
– モデルのサービスへの適用
– 適用結果に基づいたモデルおよびサービスの改善
• サイクルを高速に回すためには
大規模データの適切なハンドリングが重要
既存のアーキテクチャ
データウェアハウスにデータを蓄積
18
Databases
Logs
Data Warehouse
BI
Report
データウェアハウスの利点と欠点
• スキーマが定義されて
いる
• データの型が強制され
ている
• 安定的なエコシステム
が構築されており,
簡単にアクセスできる
• すべてのデータに対し
て,あらかじめスキー
マと型が必要
• 事業環境の変化に対応
するコストが非常に高
い
• 非定型データを扱うの
が困難
19
利点 欠点
入出力の質と量が大きく変化した結果…
20
Databases
Logs
Data Warehouse
Events
Media
BI
Report
Lab
Realtime
Machine
Learning
Hadoopクラスタにデータを蓄積
21
Databases
Logs
BI Report
ETL
Machine
Learning
さまざまな運用上の問題が生まれる
• CPUとストレージのいずれかのみが不足しているの
に,不足分だけを追加することができない
• さまざまなワークロードが走り,かつ時間とともに
変化するため,適切なクラスタスペックの選定が困
難
• ミドルウェアアップデートやハードウェア故障対応
など,クラスタの運用コストが高い
22
既存のアーキテクチャの問題を
どうやって解決するか
23
データレイクアーキテクチャ
24
IoT API GW lambda
KinesisLogs
Databases
S3
EMR (ETL)
EMR (ML)
Redshift
Elasticsearch
Service
BI
Dynamo DB
データレイクのポイント
• すべてのデータを一箇所に集めて保存
• コンピュートとストレージの分離
• データと用途に応じた適切な処理方法の選択
25
すべてのデータを一箇所に集めて保存
• 分析する内容が,データを集める段階で完璧に
わかっていることはありえない
• まずは,すべてのデータを一箇所に集めておく
– サイロ化を防ぐ
• メタデータを付与して管理
– 後から再加工できるようにするため
26
コンピュートとストレージの分離
• CPUとストレージ,足りない分だけを追加する
ことが可能
• ワークロードに応じた,適切なコンピューティ
ングリソースの確保
• 実質無限の容量を持つ,S3というストレージ
27
データと用途に応じた適切な処理方法の選択
• HiveによるETLバッチ
– I/Oスループットを重視したワークロード
• Sparkによる機械学習
– CPU/メモリ重視でイテレーションを高速化
• Elasticsearch & Kibanaによる可視化
– モデルの適用結果をクイックに確認
28
Amazon S3
• 何でも保存できる (オブジェクトストレージ)
• スケール可能 / 弾力的
• 99.999999999% の耐久性 (イレブン・ナイン)
• 低コスト(月額 $0.025/GB* )
• 全てのAWSサービスにとって仮想的なデータレイヤ
29
*2016/12時点
EMR
30
• フルマネージドのHadoopクラスタ
• 必要なときに立ち上げて,ジョブを実行したら落とす
• データはS3から読み込んで,S3に書き出す
• ETLから機械学習,ストリーム処理まで様々な用途
• アップデートの頻度が高く,最新バージョンのOSSを
利用可能
• Auto Scalingで負荷に応じてノード数を増減可能
データレイクを活用した事例
31
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scott Donaldson, Senior Director
Clayton Kovar, Principal Architect
EMR と
対話的な分析
最大で
750億件の
イベントが
毎日
5 PBを超える
ストレージ
投資家を
保護する
マーケットを
清廉に保つ
アメリカの
99%の株取引と
70%のオプション
を監視している
マーケットの
再構築は
10兆もの
ノードとエッジが
含まれる
大きく
考える
S3を中心としてEMRでさまざまな処理を行う
データマート
(Amazon
Redshift)
クエリクラスタ
(EMR)
クエリクラスタ
(EMR)
Auto
Scaled
EC2
分析
アプリ
正規化ETL
クラスタ
(EMR)
バッチ分析
クラスタ
(EMR)
アドホック
クエリクラスタ
(EMR)
Auto
Scaled
EC2
分析
アプリ
ユーザ データ
提供者
Auto
Scaled
EC2
データ
投入
サービス
最適化ETL
クラスタ
(EMR)
共有Metastore
(RDS)
クエリ最適化
(S3)
Auto Scaled EC2
データ
カタログ
&派生
サービス
参照データ
(RDS)
共有データサービス
Auto Scaled
EC2
クラスタ管理
&ワークフロー
サービス
生データ
(S3)
35
36
毎週21億以上のセンサデータを取得
自動運転用の地図に反映
37
モバイルアプリ
データ処理
データ保存
データレイクをさらに便利にする新サービス
38
39
IoT API GW lambda
KinesisLogs
Databases
S3
EMR (ETL)
EMR (ML)
Redshift
QuickSight
Dynamo DB
Athena
AWS Batch
Glue
Amazon Machine Learning
EC2
Amazon Athena
• Amazon S3 に置いたデータをインタラクティブに
SQLで直接クエリできるサービス
• ペタバイト級のデータに対するクエリをサポート
• 標準のANSI-SQLで表現でき,JOINやWindow関数も
サポート.Prestoベースの実装なので,Prestoのクエ
リも大部分が利用可能
• CSV/TSV/JSON/Apache logだけでなく,Parquet,
ORCもサポート
• 既存BIツールにJDBCで接続可能
AWS Glue
41
• データカタログの作成と,データの加工・ロード
(ETL)が実現可能なマネージドサービス
• データソースを自動で探索し,データフォーマッ
トを認識してスキーマや変換ロジックを提示
• S3, RDS, Redshift その他 JDBC対応データスト
アをサポート
• Pythonで変換ロジックを編集したり,
他のユーザーと共有することも可能
• インフラを自動でスケーリング
• プリアナウンスサービス
AWS上での機械学習モデルの構築
機械学習のモデル構築において
AWSはどのように活用できるか
43
ディープラーニングを中心とした
最新の機械学習は…
• 高速なGPUを搭載したマシンを使わないと,計算に
非常に時間がかかる
• GPUを使うためのドライバや,ディープラーニング
フレームワークのインストールが手間
• 複数のマシンを使って計算させるために,ネット
ワーク等の設定が必要
44
• NVIDIA K80を最大16GPU搭載
• 計192GBのGPUメモリと 約40,000 CUDAコアを搭載
• 1台で70TFlops(単精度浮動小数点演算)を実現
• 1台で23TFlops(倍精度浮動小数点演算)を実現
• GPUDirect™によるpeer-to-peer 接続をサポート
Instance
Name
GPU
Count
vCPU
Count
Memory Parallel
Processing
Cores
GPU
Memory
Network
Performance
P2.xlarge 1 4 61GiB 2,496 12 GiB High
P2.8xlarge 8 32 488GiB 19,968 96 GiB 10 Gigabit
P2.16xlarge 16 64 732GiB 39,936 192 GiB 20 Gigabit
GPU搭載:P2インスタンス
バージニア・オレゴン・アイルランド
の3リージョンで提供中
ディープラーニング向けのAMI
46
NVIDIA製AMI
• Windows Server + Driver
• CUDA7.5 + Amazon Linux
• DIGITS4 + Ubuntu 14.04
AWS製AMI
• 各種ディープラーニングフレームワーク
• MXNet / Caffe / Tensorflow / Theano / Torch / CTNK
• その他コンポーネント
• Nvidia drivers / CUDA / cuDNN
• Anaconda / Jupyter / Python2 and Python3
AWSのディープラーニングAMIは随時更新中
47
Oregon Region / 2016/12/6時点
MXNet向けのCloudFormationテンプレート
48
AWSではMXNetを
ディープラーニングフレームワークとして選択
49
http://aws.typepad.com/sajp/2016/11/mxnet-default-framework-deep-learning-aws.html
http://www.allthingsdistributed.com/2016/11/mxnet-default-framework-deep-learning-aws.html
• 画像分析アルゴリズムInception v3 をMXNetで実装しP2インスタンスで実行
• スケーリング効率85%
MXNetのコミッターも社内にいます
50
re:Invent Machine Learning Track
51
まとめ
60
61
IoT API GW lambda
KinesisLogs
Databases
S3
EMR (ETL)
EMR (ML)
Redshift
QuickSight
Dynamo DB
Athena
AWS Batch
Glue
Amazon Machine Learning
EC2
Summary
• Amazon S3にデータレイクを構築
– あらゆるデータを保存して必要に応じて処理
– ワークロードに合わせた適切なリソースの選択
– 大規模データの活用サイクルを高速に回す
• 機械学習サービスの開発サイクル
– AWSのリソースを活用して環境構築コストを低減
– インスタンスタイプを柔軟に変えて高速で学習
– 本来やりたかった機械学習モデルの構築に集中
62
63

データレイクを基盤としたAWS上での機械学習サービス構築