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
MIMEと文字コードの闇
hirachan
2
1.4k
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
280
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
1.1k
手を動かしてレベルアップしよう!
maruto
0
240
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
9
780
Amazon Athenaから利用時のGlueのIcebergテーブルのメンテナンスについて
nayuts
0
110
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.8k
クラウド食堂とは?
hiyanger
0
120
Охота на косуль у древних
ashapiro
0
120
事業モメンタムを生み出すプロダクト開発
macchiitaka
0
100
Qiita Organizationを導入したら、アウトプッターが爆増して会社がちょっと有名になった件
minorun365
PRO
1
270
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.5k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Done Done
chrislema
182
16k
Designing for Performance
lara
605
68k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
A designer walks into a library…
pauljervisheath
205
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Six Lessons from altMBA
skipperchong
27
3.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
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