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
Takeshi Kamada
April 04, 2019
Technology
0
980
repro-tech-meetup-7
Repro tech meetup #7の発表資料です
Takeshi Kamada
April 04, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
320
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
570
Create Ruby native extension gem with Go
sue445
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
670
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
会社紹介資料 / Sansan Company Profile
sansan33
PRO
7
380k
roppongirb_20250911
igaiga
1
250
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
280
いま注目のAIエージェントを作ってみよう
supermarimobros
0
360
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Building Applications with DynamoDB
mza
96
6.6k
Building Adaptive Systems
keathley
43
2.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
How to Ace a Technical Interview
jacobian
279
23k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Typedesign – Prime Four
hannesfritz
42
2.8k
Into the Great Unknown - MozCon
thekraken
40
2k
Designing Experiences People Love
moore
142
24k
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