Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
repro-tech-meetup-7
Search
Takeshi Kamada
April 04, 2019
Technology
0
990
repro-tech-meetup-7
Repro tech meetup #7の発表資料です
Takeshi Kamada
April 04, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
780
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
170
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
1
1.5k
ガバメントクラウド利用システムのライフサイクルについて
techniczna
0
190
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
130
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
800
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
1.9k
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
470
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
120
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
Web系SREの知らないGovTech・行政インフラの世界(前編)
jkkitakita
0
130
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Code Review Best Practice
trishagee
74
19k
Unsuck your backbone
ammeep
671
58k
What's in a price? How to price your products and services
michaelherold
246
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Done Done
chrislema
186
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Balancing Empowerment & Direction
lara
5
800
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Transcript
ReproのAI機能を支える技術 Repro AI Labs. 鎌田武志 (@take4_k)
自己紹介 • 鎌田武志 (@take4_k) • 2018 年 6 月 Repro
入社 • Repro AI Labs 所属 • WEB アプリケーションエンジニア (!?)
今日話すこと • Repro の ML 基盤について • 最速で AI 機能をリリースする技術からのリリース後安定化させ
るまでの軌跡 • アルゴリズムの話は出てきません
Reproとは
Reproでできること • アナリティクス ( 分析 ) • マーケティング ◦ プッシュ配信
◦ アプリ内メッセージ ◦ Web メッセージ
Smart Audience™ • Repro 初の AI 機能 • キャンペーン対象ユーザーを自動予測 ◦
現在はチャーン予測 ( 離脱しそうなユーザー ) に対応
Repro AI Labs. • データ分析 • PoC • ML Ops
• Repro 本体への機能追加
アーキテクチャ 最近の CTO の発表もご参照ください
ML基盤 • 予測結果を S3 に転送してクラウドの壁を超える • 本体とはなるべく粗結合にする
Composer(Airflow) • フルマネージドワークフローオーケストレーションサービス • GKE 上に Airflow を構築してくれる • Python
で DAG( 有向非巡回グラフ ) を使いワークフローを定義 ◦ DAG ファイルは GCS に置くだけ • スケジュール管理 • 様々な Operator • ( UI わかりずらいけど他よりまだマシな気がする)
DAG
Dataproc • Spark & Hadoop クラスタのフルマネージドサービス • GCS コネクタ •
Pyspark など様々な言語に対応 • Job API がある
Datalab • GCE 上にデータ分析、可視化、 ML のための環境を構築してく れるサービス • Notebook 形式で使いやすい
• BQ 、 GCS などと簡単に接続できる • Docker 化されている • Repro では PoC 用
最速リリースのポイント • 構築が楽なサービスを使った • Repro 本体の既存の仕組みに乗れた
最速でリリースしたツケ • 前処理・学習・予測全て 1 スクリプト 1 タスクで実行 ◦ 途中でコケた時に全て再実行 …
• 処理時間が線形に増加してスケールできない ◦ 一時期は 7 時間かかっていた … • 補足できてないエラーがあった ◦ コケていたことに気付かずインシデントに …
Dataprocアンチパターン • Jupyter notebook も scikit-learn もインストールできる • やろうと思えば ML
バッチ処理に使える?! • でもやらないほうがよい ◦ Python 側でマシンリソース使いすぎた時に Spark の Job が落 ちる
改善できた理由 • 今後の AI 機能開発を見据えたチーム増員 ◦ アプリケーション ◦ インフラ •
AI エンジニアに不足しがちな視点を補完 ( きっとアルゴリズムや 予測精度で頭いっぱいですよね ) ◦ システム負荷 ◦ 障害対応 ▪ 起き辛いコードを書くのも含む
推測するな 計測せよ • 適切にログを追加 • 通信に無駄に時間がかかっていたのがわかって改善につな がった ◦ Spark のキャッシュを使った
◦ 転送ファイル圧縮した
技術スタックの理解を深める • 知らないと使えない • 知ることで監視設定など追加できた ◦ Stackdriver Monitoring ▪ VM
とコンテナの死活監視 ◦ Airflow ▪ Timeout 設定 ▪ Retry の設定
雰囲気で運用をやらない • チームで SLO 設定 ◦ エラーだから ASAP で対応→心の余裕 •
Redash のダッシュボード作成 ◦ 定期的な振り返りを実施
リファクタリング • 前処理・学習・予測を分割した • 再実行しやすくなった • `SocketTimeoutException` がでなくなった
まとめ • アルゴリズムや予測精度だけでなくシステム開発の基本が改め て重要 • メンバーで補完しあえるチームを作ろう
今後やっていきたいこと • ML 基盤まだまだ伸びしろある ◦ Dataproc から ML を剥がしたい ◦
もっと良い感じの PoC 環境を作りたい • もっと AI 機能を作る ◦ 課金ユーザーを予測 ◦ ユーザー毎の最適なプッシュ配信時間を予測
We are hiring!! https://www.wantedly.com/companies/repro/projects