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
Takuma Yamaguchi
May 23, 2018
Technology
7
33k
感動出品の起案からリリースまで
感動出品の起案からリリースまで (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
1.9k
マイクロサービスアプリケーションとしての機械学習
kumon
14
14k
フリマアプリ「メルカリ」の多様なデータと機械学習 @TECH PLAY Conference 2017
kumon
5
10k
Other Decks in Technology
See All in Technology
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
0
120
家電アプリ共通PF "Linova" のAPI利用とPostman活用事例ご紹介
yukiogawa
0
130
The 5 Obstacles to High-Performing Teams
mdalmijn
0
270
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
110
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
1
240
生成AIの利活用を加速させるための取り組み「prAIrie-dog」/ Shibuya_AI_1
visional_engineering_and_design
1
140
Bounded Context: Problem or Solution?
ewolff
1
210
20250208_OpenAIDeepResearchがやばいという話
doradora09
PRO
0
170
Building Products in the LLM Era
ymatsuwitter
10
4.4k
急成長する企業で作った、エンジニアが輝ける制度/ 20250214 Rinto Ikenoue
shift_evolve
2
880
AndroidXR 開発ツールごとの できることできないこと
donabe3
0
110
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
950
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Rails Girls Zürich Keynote
gr2m
94
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
The Language of Interfaces
destraynor
156
24k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Building Applications with DynamoDB
mza
93
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
It's Worth the Effort
3n
184
28k
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