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
Machine learning and system design
Search
shibuiwilliam
March 15, 2022
Technology
0
76
Machine learning and system design
about machine learning system design for web EC marketplace.
https://techplay.jp/event/768641
shibuiwilliam
March 15, 2022
Tweet
Share
More Decks by shibuiwilliam
See All by shibuiwilliam
生成AIのためのデータ収集とデータエンジニアリング
shibuiwilliam
4
460
LLMで推論するライブラリを整理する
shibuiwilliam
5
1.3k
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
82
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
630
今日からRAGを 始めることを考える
shibuiwilliam
2
1.6k
2024年生成AI新年会登壇資料
shibuiwilliam
0
330
Creative as Software Engineering
shibuiwilliam
2
640
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
340
機械学習システム構築実践ガイド
shibuiwilliam
1
920
Other Decks in Technology
See All in Technology
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
830
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
160
JavaにおけるNull非許容性
skrb
2
2.7k
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
220
20250304_赤煉瓦倉庫_DeepSeek_Deep_Dive
hiouchiy
2
130
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
540
クラウド関連のインシデントケースを収集して見えてきたもの
lhazy
9
1.9k
User Story Mapping + Inclusive Team
kawaguti
PRO
2
260
困難を「一般解」で解く
fujiwara3
7
2.2k
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
12k
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.6k
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
1.1k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Typedesign – Prime Four
hannesfritz
41
2.5k
Practical Orchestrator
shlominoach
186
10k
Building Adaptive Systems
keathley
40
2.4k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
A designer walks into a library…
pauljervisheath
205
24k
4 Signs Your Business is Dying
shpigford
183
22k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
1 機械学習とシステムデザイン 2020/03/02 Mercari AI & Search Engineering Team shibui
yusuke
2 自己紹介 cat : 0.55 dog: 0.45 human : 0.70
gorilla : 0.30 Object Detection Shibui Yusuke • 写真検索 & Edge AI Team 基盤エンジニア MLエンジニア アノテーター(NEW!) • Github: @shibuiwilliam • Qiita: @cvusk • Facebook: @shibui yusuke • 最近やってること:Android、AR
3 最近やってること
4 • メルカリのMLシステム事例のうち、汎用的に使えそうな構成を共有します。 今日話すこと Easy Safe 違反出品検知 価格推定 感動出品 配送推定
(US) Kaggle (US) 感動出品 (US) 感動出品 v2 バーコード出品 違反出品検知 v2 KYC 違反出品検知 v3 不正検知 写真検索 価格推定 v2 配送推定 感動トレカ推定 AIカタログマッピング Edge AI listing dispatcher 2017 2018 2019
5 メルカリのワークフロー 売れるかな? 出品する 探す 買う 配送する • ユーザの売る・買うをつなぐC2Cマーケットプレイス・プラットフォーム。 出品者
購入者
6 • 目的:出品の配送サイズを推定しレコメンド。 (いろいろな配送方法・サイズを出品時に選択) • モデル:既存の類似商品の配送サイズを元にした近傍法。 • タイミング:出品前。 配送推定システム 出品する
配送する ML推論基盤 商品情報 (説明文等) 配送サイズ
7 • 解決したい課題: ◦ 1リクエストに1推論を返すサービスを作りたい。 • 解決策: ◦ GET/POSTを受け付けるREST APIに推論モデルを組み込
む。 • 利点: ◦ シンプルな構成のため、開発、運用が簡単。 ◦ スケールアウトや障害箇所の特定が容易。 • 注意点: ◦ 推論モデルのサイズ次第でレスポンス速度が上下する。 ◦ レスポンス内容: ▪ 分類の場合、全確率値を返すか、 top-kを返すか。 ▪ 確率に応じたクライアントの動作。 シンプルなWeb API クライアント 推論REST API
8 • 解決したい課題: ◦ 推論に既存データの一部を利用する場合、 DWHに アクセスするのは負荷・遅延が発生する。 • 解決策: ◦
利用するデータを前処理してキャッシュや DBに入れ ておく。 • 利点: ◦ 推論速度向上。 ◦ DWHへの負荷削減。 • 注意点: ◦ 推論用キャッシュやDBが必要。 ◦ データの鮮度が必要な場合、キャッシュや DBにTTL を設定しないと古いデータで推論される。 データ・キャッシュ クライアント 推論REST API DB DWH 前処理
9 違反検知システム 出品する 買う • 目的:違反出品を検知する。 • モデル:違反カテゴリごとに専用モデルを用意。 • タイミング:出品後。
ML推論基盤 商品情報 違反有無
10 並列的なマイクロサービス • 解決したい課題: ◦ 1イベントをトリガーにして複数のモデルで並列に推論す る。モデルを増減することがある。 • 解決策: ◦
推論器をマイクロサービス化し、各推論へのリクエストを 集約するプロキシを設置、集約した推論結果をレスポン スする。 ◦ ターゲットの推論器はプロキシに環境変数で設定する。 • 利点: ◦ 推論器ごとにリソース調整や更新が可能。 ◦ 推論器のメンテナンス、障害局所化。 ◦ 推論器の追加・削除が容易。 • 注意点: ◦ コスト増。 ◦ 推論の一つが失敗した場合のリトライ方針やタイムアウト を設定しないと、1推論器のエラーが全推論器の負荷につ ながる。 クライアント プロキシ A違反モデル B違反モデル ・ ・ ・
11 非同期推論 • 解決したい課題: ◦ 推論の呼び出し元と出力先が違う場合、同期的 に処理すると遅延・障害の原因になる。 • 解決策: ◦
呼び出し元と推論器の間にキューやメッセージ ングを置き、疎結合にする。 • 利点: ◦ 各コンポーネントを分離可能。 ◦ 推論器で障害が発生してもリトライ可能。 • 注意点: ◦ 推論の順番は保証されないため、入力やデータ に対する推論順が必要なワークフローでは注意 が必要。 ◦ 推論エラー時のリトライポリシー。 A違反モデル B違反モデル ・ ・ ・ プロキシ メッセージング 出力先
12 写真検索システム 売れるかな? 探す • 目的:似た画像の商品を探す。 • モデル:画像に対する物体検出、特徴抽出、類 似ベクトル検索の組み合わせ。 •
タイミング:出品検討中、検索中。 ML推論基盤 学習 パイプライン 入力画像 類似商品
13 連続的な推論システム • 解決したい課題: ◦ 結果を出すまでに複数の推論モデルを経由する。 • 解決策: ◦ 各モデルをマイクロサービスとして配置、各推論器
へのリクエストをプロキシで集約する。 • 利点: ◦ 複数のモデルを通して複雑な推論を処理可能。 ◦ 各推論器を分離し、それぞれに負荷分散やリソース 調整が可能。 • 注意点: ◦ モデル間で依存した学習や開発が必要。 ◦ 途中の推論でエラーが発生すると後続の処理が実 行できないため、可用性の検討が必要。 ◦ コスト増。 プロキシ 物体検出 特徴抽出 類似検索 入力画像から 物体検出 被写体から 特徴抽出 抽出した特徴ベクトルから 類似ベクトル検索
14 継続的なモデル追加 • 解決したい課題: ◦ 使用するデータが更新される場合、モデルを定期 的に更新する必要がある。 • 解決策: ◦
更新されたデータと推論器を自動で追加する学習 パイプラインと、追加された推論器を検出する サービスディスカバリを組み合わせる。 ◦ 不要な推論器は停止するだけで検索対象から除 外可能。 • 利点: ◦ 更新されたデータやモデルを推論対象に組み込 むことが可能。 • 注意点: ◦ 学習パイプラインの安定性。 ◦ 推論器の追加・削除処理。 削除 追加 プロキシ サービス ディスカバリ 特徴抽出 出品データ 出品画像 インデクシング ML推論基盤 ML学習基盤
15 • MLシステムの難しさ まとめ ! 出力が確率的 ! スピードが遅い ! データの変化 ! モデルの更新 閾値による出力判定、上位 x件を見せて人間の判断に委ねる
リソース調整、タイムアウト、キャッシュ、シンプルなモデル キャッシュ、定期的なデータ更新 カナリアリリース、ABテスト、サービスディスカバリー ビジネスロジックやUI/UXとの整合性
16 コロナウィルスに負けずにイベントを開催した運営に称賛と感謝! この登壇者紹介を本人の 確認なく掲載した大胆さに も称賛申し上げます。 https://techplay.jp/event/768641