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
オンラインテストしようと思った その日に開始できる環境を目指して
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hazumi Ichijo
July 12, 2023
Programming
1.1k
0
Share
オンラインテストしようと思った その日に開始できる環境を目指して
https://mlops.connpass.com/event/286716/
Hazumi Ichijo
July 12, 2023
More Decks by Hazumi Ichijo
See All by Hazumi Ichijo
RailsとRidgepoleの マイグレを120倍早くする
hazumirr
0
370
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.4k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
1
1.8k
Rubyのコード削除したい時 僕がやること
hazumirr
0
260
テーブル駆動テストと状態
hazumirr
5
2.2k
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.7k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.6k
bqv速習会
hazumirr
6
7.2k
Other Decks in Programming
See All in Programming
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
2
120
今こそ押さえておきたい アマゾンウェブサービス(AWS)の データベースの基礎 おもクラ #6版
satoshi256kbyte
1
230
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
510
의존성 주입과 모듈화
fornewid
0
110
iOS機能開発のAI環境と起きた変化
ryunakayama
0
170
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
140
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
Feature Toggle は捨てやすく使おう
gennei
0
450
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
270
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
The agentic SEO stack - context over prompts
schlessera
0
740
Exploring anti-patterns in Rails
aemeredith
3
310
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
340
エンジニアに許された特別な時間の終わり
watany
106
240k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
How to build a perfect <img>
jonoalderson
1
5.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
290
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
Scaling GitHub
holman
464
140k
Transcript
© 2023 Wantedly, Inc. オンラインテストしようと思った その日に開始できる環境を目指して MLOps LT大会 2023/7月 Jul.
12 2023 - Hazumi Ichijo
自己紹介 © 2023 Wantedly, Inc. 一條 端澄 @hazumirr/@rerost 略歴: 2018~
: ウォンテッドリー株式会社 • 2018/04~ 推薦基盤チーム エンジニア • 2021/09~ 推薦チーム プロジェクトマネージャー • 2022/06~ 推薦チーム リーダー 趣味: テトリス・旅行
© 2023 Wantedly, Inc. プロダクトについて © 2023 Wantedly, Inc. WHAT|
個人向けサービス / 法人向けサービス 会社に遊びに行こう 「カジュアル面談」という仕事探しの新基準 • 人とチームを「想い」でマッチング • 「話を聞きに行く」体験を通じてフラットな出会いを創出 進化を続けるUIと基盤 • コンテンツが映えるモダンでシンプルな UI表現 • より本質的なマッチングを可能にする推薦アルゴリズム
推薦チームについて • データサイエンティスト(DS) • 4人 • 役割: ユーザーと企業のマッチングアルゴリズムの開発 • スキル
◦ 機械学習 ◦ データ分析 • 推薦基盤 • 2人 • 役割: 既存のシステムとDSの橋渡し • スキル ◦ バックエンド・インフラ ◦ データ分析基盤(Looker, BigQuery, etc…) © 2023 Wantedly, Inc.
推薦チームについて 1. プロダクトインパクト • 2022年度は推薦によって主要KPIが+20%改善 2. オンラインテストの頻度 • 最近では、毎月1~3つのテストが開始される 3.
機械学習での推論方法 • 主にバッチ © 2023 Wantedly, Inc.
推薦基盤チームがプロダクト利用者に提供する価値 • アルゴリズム改善の速度 ◦ リードタイム ◦ 頻度 • 壊れにくい推薦 •
良いアルゴリズムをより広く早く提供する ◦ 例: メール送信、デバイス(Web, iOS, Android, …) © 2023 Wantedly, Inc.
推薦基盤チームがプロダクト利用者に提供する価値 • アルゴリズム改善の速度 ◦ リードタイム ◦ 頻度 • 壊れにくい推薦 •
良いアルゴリズムをより広く早く提供する ◦ 例: メール送信、デバイス(Web, iOS, Android, …) © 2023 Wantedly, Inc.
仕組み © 2023 Wantedly, Inc. 推論 & 結果 を保存 推論結果を
使い推薦 募集一覧 API Push通知 メール送信 etc..
旧リリースフロー © 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ
ローの設定 実装 リリース DS 推薦 基盤
旧リリースフロー © 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ
ローの設定 実装 リリース 1時間 2~3日 半日 ジョブの待ち時間 DS 推薦 基盤
旧リリースフロー © 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ
ローの設定 実装 リリース 1時間 2~3日 半日 ジョブの待ち時間 人をまたぐコストも高い DS 推薦 基盤
ボトルネック 1. ワークフローの設定 • DBのデータや他の推論結果との依存関係の記述 • Argo Workflowの設定(マニフェスト手書き) 2. 実装
• 意図を汲み取り実装 • 実装しないといけない箇所がいくつかあり壊さないようにする 3. コミュニケーション • ミスコミュニケーションによる手戻りのリスク • 同じことをしたくとも人に合わせて別々の言葉を使う必要あり • リソース確保 © 2023 Wantedly, Inc.
改善 1. ワークフローの設定 • DBのデータや他の推論結果との依存関係の記述 • Argo Workflowの設定(マニフェスト手書き) 2. 実装
• 意図を汲み取り実装 • 実装しないといけない箇所がいくつかあり壊さないようにする 3. コミュニケーション • ミスコミュニケーションによる手戻りのリスク • 同じことをしたくとも人に合わせて別々の言葉を使う必要あり • リソース確保 © 2023 Wantedly, Inc.
改善 ワークフローの設定 © 2023 Wantedly, Inc. name: sample option: team:
recommendation jobs: - name: jobA command: "echo A" option: repo: repo - name: jobB command: "echo B" dependencies: [jobA] option: repo: repo https://github.com/rerost/dagg • DBのデータや他の推論結果との依存 関係の記述 • Argo Workflowの設定(マニフェスト 手書き) => 依存関係と実行方法のみに集中
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 1時間 2~3日 半日 改善 ワークフローの設定
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 2~3日 半日 改善 ワークフローの設定
改善 1. ワークフローの設定 • DBのデータや他の推論結果との依存関係の記述 • Argo Workflowの設定(マニフェスト手書き) 2. 実装
• 意図を汲み取り実装 • 実装しないといけない箇所がいくつかあり壊さないようにする 3. コミュニケーション • ミスコミュニケーションによる手戻りのリスク • 同じことをしたくとも人に合わせて別々の言葉を使う必要あり • リソース確保 © 2023 Wantedly, Inc.
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 2~3日 半日 改善 実装
改善 実装 before © 2023 Wantedly, Inc. • BQに吐かれた推論結果を同期 •
ヒアリングした情報を元に必要な条件で 新しいアルゴリズムが利用されるように 設定
改善 実装 After © 2023 Wantedly, Inc. 以下の設定を書き自動生成するだけに • 推論結果の保存先
• どういう条件で表示する ◦ オンラインテスト? ▪ AB? ▪ Interleaving? ◦ 表示条件 ▪ 強いアルゴリズムが出尽くした ら? ▪ 新規 or 既存ユーザー? ▪ …
改善 実装 © 2023 Wantedly, Inc. https://www.wantedly.com/companies/wantedly/post_articles/309759
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 2~3日 半日 改善 実装
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 30分 半日 改善 実装
改善 1. ワークフローの設定 • DBのデータや他の推論結果との依存関係の記述 • Argo Workflowの設定(マニフェスト手書き) 2. 実装
• 意図を汲み取り実装 • 実装しないといけない箇所がいくつかあり壊さないようにする 3. コミュニケーション • ミスコミュニケーションによる手戻りのリスク • 同じことをしたくとも人に合わせて別々の言葉を使う必要あり • リソース確保 © 2023 Wantedly, Inc.
改善 コミュニケーション 手順は簡潔になったので、残りは人手でチェックしていたことをCIへ • デプロイ前のチェック • マニフェストのバリデーション • 初回データの同期 •
etc… バックエンドの専門知識が必要ない状態に © 2023 Wantedly, Inc.
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 30分 半日 改善 実装
© 2023 Wantedly, Inc. 作成 初回のデー タを生成 モニタリング ワークフ ローの設定
実装 リリース 15分 30分 改善 実装 半日 DS
結果 1. オンラインテスト開始までのリードタイムの向上 • 2~3日 => 半日 2. 実装と設定が分離されたことで、システムの改善がしやすくなる •
例: ◦ 壊れにくい推薦の実現 ◦ 良いアルゴリズムをより広く早く提供しやすいように © 2023 Wantedly, Inc.
© 2023 Wantedly, Inc.