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.
→
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
AWS DevOps Agent x ECS on Fargate検証 / AWS DevOps Agent x ECS on Fargate
kinunori
2
150
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
320
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
250
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
760
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
110
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.6k
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Claude Code のすすめ
schroneko
67
210k
How to Ace a Technical Interview
jacobian
281
24k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
920
We Have a Design System, Now What?
morganepeng
54
8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
260
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