中川 裕太
@僕らの遊び場ABEJA
機械学習における AWS を用いた
マイクロサービスアーキテクチャ
Agenda
2
機械学習を用いたシステムのポイント
Insight for Retail での実装
未来へ向かうBE2.0構想
3
中川 裕太
Research Engineer @ ABEJA
4
VISION
VISION
イノベーションで世界を変える
5
TAG LINE
ゆたかな世界を、実装する
6
MISSION
テクノロジーの力で産業構造を変革する
7
8
PRODUCT
Insight for Retail
9
10
ABEJA Platform
11
12
AWS
様々な検証⇒プロダクション適用
13
14
15
遊び
日本初の Machine Learning Competency 取得
16
17
18
MYSELF
19
学生時代はロボット研究
20
大手 SIer で
インフラ部隊
21
ABEJA では全プロダクトにかかわる
22
23
機械学習を用いた
システムのポイント
24
Deep Learning の研究速度はえげつなく早い
25
多くのモデルはすでに公開されている
26
ただし、実装フレームワークはさまざま
27
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_FastCallDict+0x18e) [0x7f24df4ad10e]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyObject_CallMethodIdObjArgs+0xea) [0x7f24df4ec5ca]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyImport_ImportModuleLevelObject+0x27c) [0x7f24df41ec4c]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x703e) [0x7f24df4a164e]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x22543c) [0x7f24df4de43c]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e) [0x7f24df4deebe]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b) [0x7f24df49a36b]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x1ecb3d) [0x7f24df4a5b3d]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyCFunction_Call+0xc9) [0x7f24df348eb9]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x6a51) [0x7f24df4a1061]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x22543c) [0x7f24df4de43c]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x2259c7) [0x7f24df4de9c7]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x469f) [0x7f24df49ecaf]
2018-10-02T15:20:52+09:00: /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x2236c0) [0x7f24df4dc6c0]
しかも、フレームワークが競合することも
28
マイクロサービスで最新の技術を
素早く安全に取り込む
29
機械学習のモデルは金食い虫
30
データの量と特性によって原価が変動する
31
データの量と特性に合わせて
リソースをオートスケールさせる
32
Insight for Retail での実装
33
1年前のアーキテクチャ
34
camera
camera
aggregator dashboard
analysis core
analysis core
35
camera
camera
aggregator dashboard
analysis core
analysis core
モノリス
全体アーキテクチャの刷新
36
camera
camera
queue
model A
model B
model C
model D
aggregator dashboard
analysis DAG
今日、話す部分
37
camera
camera
queue
model A
model B
model C
model D
aggregator dashboard
analysis DAG
マイクロサービスで最新の技術を
素早く安全に取り込む
38
最新の技術の取り込み
39
queue
model A
model B
model C
model D
model B と同じ機能を持った model B+ が開発される
40
model B model B+
model B を取り換える
41
queue
model A
model B+
model C
model D
model Cよりもmodel E と Fを組み合わせた方がよいと知る
42
model C model E model F
DAG を組み替える
43
queue
model A
model B
model E
model D
model F
データの量と特性に合わせて
リソースをオートスケールさせる
44
リソースのオートスケール
45
queue
model A
model B
model C
model D
動画が queue に溜まり始める
46
queue
model A
model B
model C
model D
model A をオートスケールさせる
47
queue
model A
model B
model C
model D
model A
model の負荷に合わせてオートスケールを伝播させる
48
queue
model A
model B
model C
model D
model A
model B
model D
model D
49
アーキテクチャの振り返り
50
queue
model A
model B
model C
model D
queue の実装は S3 + AWS Batch
51
model A
model B
model C
model D
model の実装は ECS
52
model
Service Discovery を DynamoDB で実装
53
model GW model
インフラは Spotinst で原価削減
54
model GW model
アーキテクチャ刷新の効果
55
精度の高い最新のモデルを組み合わせられるように
大幅に原価削減し8万円/月で提供可能に
未来へ向かうBE2.0構想
56
必要最低限のデータデリバリー
57
から
58
データを用いた価値創造
59
サービスレイヤーの再整理
60
Maintenance
Monitoring
Device
Data
Analysis
Dashboard
ありとあらゆるものを可視化したい
61
実装を見直して遊んでみたいサービスもいっぱい
62
63
64
https://six.abejainc.com
まとめ
66
MLシステムのポイントはマイクロサービスとオートスケール
AWSではBatchとECSで実装
一緒に遊びながら夢を追いかける仲間を募集中
ABEJA という場所で
一緒に遊びましょう 67

[AI/ML] 機械学習における AWS を用いたマイクロサービスアーキテクチャ