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
repro-tech-meetup-7
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takeshi Kamada
April 04, 2019
Technology
0
1k
repro-tech-meetup-7
Repro tech meetup #7の発表資料です
Takeshi Kamada
April 04, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
640
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.4k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
220
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
150
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
130
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
180
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
配列に見る bash と zsh の違い
kazzpapa3
1
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
Facilitating Awesome Meetings
lara
57
6.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
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