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
tonouchi510
August 12, 2022
Technology
0
110
モデル更新コストを削減しつつ精度改善を達成した話
こちらのイベントの登壇資料。
https://machine-learning-pitch.connpass.com/event/199555/
tonouchi510
August 12, 2022
Tweet
Share
More Decks by tonouchi510
See All by tonouchi510
第22回 MLOps 勉強会:みてねのMLOps事情
tonouchi510
2
1.9k
Other Decks in Technology
See All in Technology
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
160
MapLibreとAmazon Location Service
dayjournal
1
150
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
250
ここが嬉しいABAC ここが辛いよABAC #再解説+補足編
masahirokawahara
1
270
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
870
Oracle Cloud Infrastructure:2024年4月度サービス・アップデート
oracle4engineer
PRO
1
190
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
290
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
160
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
490
On Your Data を超えていく!
hirotomotaguchi
2
650
Featured
See All Featured
Debugging Ruby Performance
tmm1
70
11k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Docker and Python
trallard
34
2.7k
What's new in Ruby 2.0
geeforr
337
31k
Raft: Consensus for Rubyists
vanstee
132
6.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Designing Experiences People Love
moore
136
23k
The Cult of Friendly URLs
andyhume
74
5.7k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Transcript
「今季の成果は凄かったぞ!!!」登壇資料 モデル更新コストを削減しつつ 精度改善を達成した話 株式会社ミクシィ みてね事業部 開発グループ MLエンジニア 登内雅人
この登壇資料 https://machine-learning-pitch.connpass.com/event/199555/
登内 雅人(Tonouchi Masato) 株式会社ミクシィ みてね事業部 開発グループ MLエンジニア 20新卒エンジニア Twitter:@tono2700 業務
・ MLが絡む施策の研究開発 ・ ML研究開発基盤の構築 今期は特に「人物ごとのアルバム」という 機能の顔分類精度改善のための研究開発に注力
現在はこの顔識別結果はこの機能でのみ使用されていますが、顔識別の精度が上がったら様々 な施策に展開することを考えており、精度改善は非常に重要な課題となっています。
主な成果 • 特徴抽出モデルの精度改善をバックフィルフリーを実現しつつ達成 ◦ チームの半年分の開発工数をまるっと削減! • 部署の研究開発の基盤を0から構築 ◦ Kubeflowの利用 ◦
実験サイクルを高速化・属人性排除 ◦ コスト・時間効率最大化
人物ごとのアルバムの解析システムについて
解析の流れ 1. メディアから顔を検出する 2. 顔画像をモデルに入力して、年齢性別・特徴ベクトルを取得する 3. 特徴ベクトル(512次元)を使ってクラスタリング(撮影月ごと) 4. 年齢性別の結果と家族情報を利用して、クラスタを人物に紐付け 他サービスではユーザに人を選択させてますが、みてねでは自動で紐付けるされるように
していて、ユーザに驚きの体験を与えるという部分を大事にしています。
特徴抽出モデルの精度改善の課題 • モデルの更新が辛い 別々にトレーニングされたモデル は、一般に同じ埋め込み空間には ならない 引用元:https://arxiv.org/abs/2003.11942
案1:既存の特徴ベクトルを全てバックフィル • バックフィルにかかるコスト(大規模なデータに再推論処理が必要) ◦ 分散処理、ジョブ管理なども • 新旧ギャラリーセットの整合性チェック • 新旧モデル、ギャラリーセットの切り替えのタイミング DB移行と同等の開発・作業が必要、モデル更新の度にこの問題が出てくる
みてねの既存の画像・動画全 件をバックフィルすると、少なく とも数百〜数千万円オーダー の推論コストがかかり、現実 的でない
案2:新旧特徴抽出モデルを使い分ける • モデルの出しわけ処理の開発 ◦ 新モデル導入以前に撮影されたメディアは旧モデルで引き続き抽出 ▪ 昔撮影されたメディアがあとでアップロードされてくることもある ◦ 新モデル導入以降に撮影されたメディアは新モデルで抽出 •
新旧特徴ベクトルでクラスタリングした結果の紐付け処理 ◦ 場合によっては一部期間のバックフィルが必要 • ただし、これだけやっても旧モデルの分類結果を新モデルで引き継げる保証はない チーム内で工数見 積もりを行ったとこ ろ、半年ほどかか ると判明 精度が上がったからといって簡単に更新の意思決定を行えるような 状態ではない
解決方法:最新論文を読み漁って発見 面白い論文だったので解説記事も AI-Scholarに投稿してます。 https://ai-scholar.tech/articles/表現学習/backword-compatible-representation-learning
成果 • 古い特徴ベクトルとの互換性を持ったまま精度改善達成! • 半年分の開発工数を削減! • 今後はバンバン特徴抽出モデルの更新ができる! 精度 BCT無し 0.0655
BCT有り 0.9268 引用元:https://arxiv.org/abs/2003.11942
その他 • 研究開発基盤を一から構築 ◦ 分散学習・Preemptive TPU導入によるコスト・時間効率最大化 ▪ 実験サイクルは早ければ早いほどよい • 分散学習
=> 約8倍 • TPU => 約4倍 ▪ さらにコストも削減 => 半分以下に • TPU v3-8が$2.4/h、GPU v100x8が$5.9/h ◦ 実験手順簡略化、属人性排除 ▪ MLの研究開発はデータとかコードがいろんな場所に散在しやすい • 研究開発戦略の立て方 ◦ モデル更新の影響 ◦ アノテーションコスト減らすために教師無しのアプローチはできないか?他の推論に使いまわせる ように汎用的な特徴ベクトルにできないかなど、精度改善以外の面を気をつけている
採用:エンジニア募集中です https://mitene.us/recruit 特にサーバーサイドエンジニア