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
20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps
Search
Yusuke Fukasawa
November 16, 2022
Technology
2
1.8k
20221116_MLOps勉強会_クックパッドマートにおける推薦タスクとMLOps
第25回 MLOps 勉強会 でお話した内容です。
https://mlops.connpass.com/event/262549/
Yusuke Fukasawa
November 16, 2022
Tweet
Share
More Decks by Yusuke Fukasawa
See All by Yusuke Fukasawa
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
1.1k
対戦におけるポケモンの “意味変化”を追う_リモートポケモン学会
fufufukakaka
0
180
機械学習を用いたポケモン対戦選出予測
fufufukakaka
1
1.1k
Poke_Battle_Logger の紹介: リモポケ学会20230714
fufufukakaka
1
990
Poke_Battle_Loggerの紹介
fufufukakaka
0
360
Cookpad TechConf2022 / Machine-Learning-At-Cookpad-Mart
fufufukakaka
1
3.3k
RedshiftML in Cookpad
fufufukakaka
2
7.7k
Other Decks in Technology
See All in Technology
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
340
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
210
怖くない!はじめてのClaude Code
shinya337
0
240
Tech-Verse 2025 Global CTO Session
lycorptech_jp
PRO
0
890
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
3
230
Prox Industries株式会社 会社紹介資料
proxindustries
0
340
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
200
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.3k
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
1.2k
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
0
180
本が全く読めなかった過去の自分へ
genshun9
0
640
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Site-Speed That Sticks
csswizardry
10
670
Embracing the Ebb and Flow
colly
86
4.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Building Adaptive Systems
keathley
43
2.6k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
How to train your dragon (web standard)
notwaldorf
94
6.1k
Writing Fast Ruby
sferik
628
62k
Being A Developer After 40
akosma
90
590k
Transcript
© 2022 Cookpad Inc. クックパッドマートにおける 推薦タスクとMLOps Recommendation and MLOps at
Cookpad-Mart 2022/11/16 Cookpad R&D Department Yusuke Fukasawa
© 2022 Cookpad Inc. 2 Speaker • Yusuke Fukasawa (
twitter @fukkaa1225 ) ◦ 自然言語処理・レコメンド・テーブルデータ • 前職: リクルート ◦ 中途転職サイトでの機械学習システム開発 ◦ サイト横断データの分析、モデル開発 • 現職: クックパッド ◦ クックパッドマートにおけるレコメンド ◦ レシピタイトルから材料を推薦するモデル ◦ 2021年は新卒エンジニア採用担当も兼任 • 趣味はテニス・ゲーム ◦ どちらも試合のデータを記録するのが趣味 ◦ Apex の様子→
© 2022 Cookpad Inc. 3 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 4 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 5 Cookpad https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 6 Cookpad-Mart https://speakerdeck.com/cookpadhr/cookpad-introduction
© 2022 Cookpad Inc. 7 Cookpad R&D Department https://research.cookpad.com 人数は多くないですが、広い分野を担える人材が
揃っています • データ分析・レポーティング • モデルの開発 • プロダクトへの実装 • 関わった施策の効果測定 • 社内ツールの開発・OSS公開 • 論文執筆・研究発表
Recommendation at Cookpad-Mart © 2022 Cookpad Inc. 8
© 2022 Cookpad Inc. 9 Item-to-Item Recommendation • 商品詳細下部に「よく一緒に購入されている商 品」を表示する
© 2022 Cookpad Inc. 10 User-to-Item Recommendation • ユーザごとに、お気に入りタブに推薦商品を表 示する
• アーキテクチャ・モデル共に Item-to-Itemと同 じ
© 2022 Cookpad Inc. 11 Overview
今日お話する MLOps © 2022 Cookpad Inc. 12
© 2022 Cookpad Inc. 13 今日お話する MLOps • 推薦モデルの結果をユーザに届けるまでの過程で必要な実装・オペレーションをすべて MLOps
と捉 えて話します ◦ モデルを開発する際に ▪ 再現性・実験管理はどうしているのか ▪ コードの治安をどのように保っているのか ◦ モデルをデプロイする際に ▪ モデルを定期的に更新しているのか、しているならどうやっているのか ▪ 定期実行に必要なデータはどこにあって、どのように取得しているのか ▪ モデルはどんな環境で動かしているのか ◦ モデルを運用する際に ▪ 監視をしているのか ▪ どんなメトリクスを見ているのか
MLOps: Model Development © 2022 Cookpad Inc. 14
© 2022 Cookpad Inc. 15 MLOps: Model Development • コード管理:
Git(GHE) • コード構成 ◦ Makefile で実行タスクを定義 ◦ Pysen (black・isort・flake8・mypy) ▪ CI: ghe-actions ◦ Poetry • Notebook … EDA のみ、極力避ける • 実験管理 ◦ WandB → MLFlow
© 2022 Cookpad Inc. 16 MLOps: Model Development • RecBole
◦ Number of Models : 70+ ◦ Build by PyTorch ▪ シンプルな実装・比較しやすいメトリクス設計 • 必要な準備: 以下の形式でCSVを用意する(+α) ◦ UserID, ItemID, Interaction TimeStamp
© 2022 Cookpad Inc. 17 MLOps: Model Development • Item-to-Item
Recommend Model: RecVAE ◦ オフライン・オンライン(Interleaving) テストを経て決定 ◦ Item2Vec → RecVAE でコンバージョン数が数倍に増加 A User Item1 Item2 Item3 Day a Item1 Item2 Item1 Item3 Item2 Item3
© 2022 Cookpad Inc. 18 MLOps: Model Development • User-to-Item
Recommend Model: RecVAE ◦ 同じく RecVAE ◦ 現在の実装上、学習データで確認したユーザにしか推薦できない ◦ 直近6ヶ月のデータで学習した後、レコメンドが出ていないユーザへの拡 張処理を実施 注文データ (6ヶ月) RecVAE を学習 レコメンドあり ユーザ群A レコメンドなし ユーザ群B レコメンドあり ユーザ群A ユーザ群B について ユーザ群A の誰に近いのか? を 全購入履歴データを使って計算 (Via Item2Vec) 推薦結果 を出力 近傍ユーザに紐づいて レコメンド結果を集約する (直近の販売実績で更に重み付け)
MLOps: Model Deployment © 2022 Cookpad Inc. 19
© 2022 Cookpad Inc. 20 MLOps: Model Deployment • パイプラインの殆どが社内で開発されたツールを使用
◦ バッチ管理システム... Kuroko2 (OSS) ◦ Redshift からのデータ取得... Queuery (OSS) ◦ バッチ実行環境... Hako(OSS)
© 2022 Cookpad Inc. 21 MLOps: Model Deployment • Kuroko2
◦ web ベースのバッチ管理システム ▪ OSS https://github.com/cookpad/kuroko2 ◦ 主な役割はコンテナの起動・コマンドの実行 ▪ 近年のクックパッドのシステムは殆どコンテナで 動い ている https://speakerdeck.com/eisuke/kuroko2falsejin-kuang-tokutukupatudofalsebatutizhou-rifalsegai-kuang
© 2022 Cookpad Inc. 22 MLOps: Model Deployment • Queuery
◦ Redshift に直接接続することなくデータを取得するための仕 組み(OSS) ▪ Unload → S3 → Application ▪ with Redshift Data API https://techlife.cookpad.com/entry/2021/12/03/093000 https://github.com/bricolages/queuery_client_python
© 2022 Cookpad Inc. 23 MLOps: Model Deployment • Hako
◦ OSS ◦ コンテナを ECS にデプロイするためのツール ◦ jsonnet を書いてデプロイする • Hako-console ◦ 社内ツール ◦ デプロイすると専用のページが生成される ◦ そこからメトリクス監視の Grafana などを確認できる https://github.com/eagletmt/hako/blob/master/examples/hello.jsonnet
MLOps: Monitoring © 2022 Cookpad Inc. 24
© 2022 Cookpad Inc. 25 MLOps: Monitoring • オフラインテスト指標
◦ RecBole に定義されたメトリクスを使用 ▪ NDCG@k ▪ MRR@k ▪ Precision@k ▪ Recall@k ▪ Hits@k ▪ AveragePopularity@k ▪ ItemCoverage@k • オンライン指標 ◦ レコメンド経由でのカート追加数 ◦ Tableau で追跡
© 2022 Cookpad Inc. 26 MLOps: Offline Metrics Monitoring •
社内ツール: Metrics Tracer ◦ S3 にあるメトリクス(json) を取得し可視化 ◦ TODO: サマリーレポート・異常検知・slack 通知
© 2022 Cookpad Inc. 27 MLOps: Data Drift Monitoring(Future Work)
• データドリフトのモニタリング → × ◦ Evidently AI・Whylogs が対応していない • レコメンドの入力データ→ user-item のインタラクションを観測する ことが重要 ◦ ネットワークグラフ的なデータだと言える ◦ そのため、現状は利用できるOSSがない • RecBole が計算してくれる Basic Stats を利用していきたい RecBole が計算している Basic Stats
© 2022 Cookpad Inc. 28
© 2022 Cookpad Inc. 29 https://speakerdeck.com/cookpadhr/cookpad-introduction