Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
感動出品の起案からリリースまで
Search
Takuma Yamaguchi
May 23, 2018
Technology
7
34k
感動出品の起案からリリースまで
感動出品の起案からリリースまで (Mercari ML Ops Night Vol.1)
Takuma Yamaguchi
May 23, 2018
Tweet
Share
More Decks by Takuma Yamaguchi
See All by Takuma Yamaguchi
[CVPR 2020 Tutorial] A Large-Scale Visual Search System in the C2C Marketplace App Mercari
kumon
0
2.1k
マイクロサービスアプリケーションとしての機械学習
kumon
14
14k
フリマアプリ「メルカリ」の多様なデータと機械学習 @TECH PLAY Conference 2017
kumon
5
11k
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
37k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
980
GitLab Duo Agent Platformで実現する“AI駆動・継続的サービス開発”と最新情報のアップデート
jeffi7
0
150
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
470
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
210
Security Diaries of an Open Source IAM
ahus1
0
110
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
Claude Code Getting Started Guide(en)
oikon48
0
140
Product Engineer
resilire
0
130
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
2.8k
Active Directory 勉強会 第 6 回目 Active Directory セキュリティについて学ぶ回
eurekaberry
16
5.9k
安いGPUレンタルサービスについて
aratako
1
1.6k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Music & Morning Musume
bryan
46
7k
Done Done
chrislema
186
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Docker and Python
trallard
46
3.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
What's in a price? How to price your products and services
michaelherold
246
12k
Transcript
感動出品の起案からリリースまで Mercari ML Ops Night Vol.1 Takuma Yamaguchi Machine Learning
Engineer
My Background 2001年〜 • 画像認識および機械学習アルゴリズム研究 • 博士(工学) • その他,コンピュータビジョン /
オペレーションズリサーチ分野での研究 • CUDA 1.0の頃から GPGPU を利用 2012年〜 • データエンジニア • Hadoop や Spark を中心としたデータ分析基盤の開発・運用 • ユーザ行動トラッキング,LTV 推定等のアルゴリズム開発 2016年〜 • 株式会社メルカリ • 画像認識を中心とした機械学習に基づく機能開発 • 2017年: 出品時の画像認識機能をリリース (on Kubernetes) 2
Agenda 3 • 感動出品の歴史 • 感動出品のシステム側の紹介 • 内容は大いに被ります。。。 • https://speakerdeck.com/kumon/maikurosabisuapurikesiyontositefalseji-jie-xue-xi
4 メルカリの画像認識機能 • 出品時の作業効率化が目的 • 撮影した商品画像を認識 • 商品名 / カテゴリ
/ ブランド の自動入力 • 内部的には色識別も行っており,商品検索時の色フィルターに利用
5
6
7 US版メルカリでもリリース USのデータを利用して一部再学習しただけでロジック自体は日本版と全く同じ
8 プロジェクトのはじまり いつの間にか設定されていたブレスト
9 画像による出品という最高の体験についてブレスト (2017/07/19) お客様を感動させたいんですよ。画像撮影する だけで、自動入力されて出品とか。 精度20%くらいでもいいんで。 いいですね〜 カテゴリとブランドは、わりとすぐにできるとおも います。タイトルについても、なんとなくのアイ デアはあります。
色も欲しいですね〜 色は、実はわりと難しい課題なんですよね。 リリース目標っていつ頃でしょうか? えっと〜、今Q中ですね あらら やってみます! (†) 今Q中: 2017年9月末がデッドライン (‡) 課題も開発期間も難易度高いのでリリースできればラッキーくらいの感覚 (†) (‡)
10 画像による出品という最高の体験についてブレスト (2017/07/19) お客様を感動させたいんですよ。画像撮影する だけで、自動入力されて出品とか。 精度20%くらいでもいいんで。 いいですね〜 カテゴリとブランドは、わりとすぐにできるとおも います。タイトルについても、なんとなくのアイ デアはあります。
色も欲しいですね〜 色は、実はわりと難しい課題なんですよね。 リリース目標っていつ頃でしょうか? えっと〜、今Q中ですね あらら やってみます! (†) 今Q中: 2017年9月末がデッドライン (‡) 課題も開発期間も難易度高いのでリリースできればラッキーくらいの感覚 (†) (‡) プロジェクト名: 感動出品
11 タイトル生成: なんとなくのアイデアを形に (2017/07末) • 画像のタイトル・説明文の生成は知識も経験もない • なんとなくのアイデアの方向性が悪くないかサーベイ • Bernardi,
Raffaella, et al. Automatic Description Generation from Images. • プロトタイプの実装 (( )内は当時の自分用メモへの独り言 ) • 関連ワードとスコア • データは100万商品程度 (だったはず) (うん、悪くない) (まさに感動出品) (これが感動出品) (日差しも結果も眩しい) (ブランドへの感度を高めたい)
12 タイトル生成: なんとなくのアイデアを形に (2017/07末) • 画像のタイトル・説明文の生成は知識も経験もない • なんとなくのアイデアの方向性が悪くないかサーベイ • Bernardi,
Raffaella, et al. Automatic Description Generation from Images. • プロトタイプの実装 (( )内は当時の自分用メモへの独り言 ) • 関連ワードとスコア • データは100万商品程度 (だったはず) (うん、悪くない) (まさに感動出品) (これが感動出品) (日差しも結果も眩しい) (ブランドへの感度を高めたい) プロトタイプから • いけそうな予感 • 季節性や商品の多様性を考慮するとデータは100万商品では足りない • ブランドへの感度を高めたい • 変なタイトルが生成されるのが不安 • カテゴリ認識・ブランド認識は、過去の経験からたぶん大丈夫
13 モデル洗練 (8月) サマーインターンも貢献
14 ※ 価格推定は、興味本位で実装したも ので、本番では使われていない 間違えることもあるものの、本 番運用に耐えられそうなモデ ルはできた
15 メルカリアプリへの実装 (9月) のこり1ヶ月
メルカリアプリに実装されるまでの残タスク 16 • 機械学習エンジニア • APIの実装 • システム設計 • SRE
• システム構築 • データサイエンティスト • ログ / KPI設計 • バックエンドエンジニア • Mercari-API 改修 • デザイナー • UI / UX設計 • クライアントエンジニア • iOS / Androidアプリの改修 • QAエンジニア • QA
メルカリアプリに実装されるまでの残タスク 17 • 機械学習エンジニア • APIの実装 • システム設計 • SRE
• システム構築 • データサイエンティスト • ログ / KPI設計 • バックエンドエンジニア • Mercari-API 改修 • デザイナー • UI / UX設計 • クライアントエンジニア • iOS / Androidアプリの改修 • QAエンジニア • QA 機械学習エンジニア 1人では、 API実装、システム設計、 SREとのシステム構築 で、手一杯で、この期間はモデルには一切触れず
実際の環境構築依頼 18 • 機械学習を使った新機能をリリースしたい • 1サーバで 4リクエスト/秒ほど処理できる • API (Gunicorn
+ Django) + Queue + Worker (TensorFlow) • Worker では,常時 25GB のメモリが必要で起動に10分かかる • 機械学習モデルのファイルサイズは 15GB 超 • モデルは定期的に更新し GPU が必要 機械学習を使った機能追加の相談
実際の環境構築依頼 19 • 機械学習を使った新機能をリリースしたい • 1サーバで 4リクエスト/秒ほど処理できる • API (Gunicorn
+ Django) + Queue + Worker (TensorFlow) • Worker では,常時 25GB のメモリが必要で起動に10分かかる • 機械学習モデルのファイルサイズは 15GB 超 • モデルは定期的に更新し GPU が必要 機械学習を使った機能追加の相談 とりあえずDockerfile用意してください なんとかします
20 1週間後
21 System Architecture
メルカリアプリに実装されるまでの残タスク 22 • 機械学習エンジニア • APIの実装 • システム設計 • SRE
• システム構築 • データサイエンティスト • ログ / KPI設計 • バックエンドエンジニア • Mercari-API 改修 • デザイナー • UI / UX設計 • クライアントエンジニア • iOS / Androidアプリの改修 • QAエンジニア • QA 機械学習エンジニア 1人では、 API実装、システム設計、 SREとのシステム構築 で、手一杯で、この期間はモデルには一切触れず 短期間でリリースできたのは • USを中心にMicroservicesへシフト中だった • 協力的なSRE ◦ Dockerfile渡して ◦ 1週間で ◦ 全て構築されてた ▪ デプロイ ▪ モニタリング ▪ etc...
23 System Architecture 機械学習エンジニア の担当部分 画像がS3に保存されていることと GPUの利用のため,バッチサーバはAWSに.
24 System Architecture 通常の運用で見る部分
25 Monitoring & Deployment 通常の運用では,Datadog でのモニタリングと Spinnaker でのデプロイ・リソース管理のみ
26 System Architecture
Blue-Green Deployment 27 機械学習モデルはファイルサイズ(10GB+)の都合で Docker Image に含まれないものの, Persistent Volume(ReadOnlyMany)によって,Imutable Infrastructure
を実現 モデル更新のたびに Persistent Volumeを生成 コードの更新だけの場合は そのまま (Redisは共通)
28 感動出品リリース (2017/10/03〜) KPIや世論の反応を見ながら段階的に解放
29
30
31
まとめ 32 • 感動出品の起案からリリースまでを紹介 • Microservices化の流れのおかげもあり短期間でリリース • 雛形や指針が整っていれば機械学習エンジニアでもサービス運用は可能 • 機械学習のシステム面を見る専任チームを用意するのが理想的
• 機械学習エンジニアが専門領域で力を発揮 • モデリングだけしかできないという意味ではない モデリングとリリースをシームレスにつなげて 魅力的な機能を素早くリリースしていきたい
Create value in a global marketplace where anyone can buy
& sell