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
74
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
3
340
LLMで推論するライブラリを整理する
shibuiwilliam
5
970
生成AIの研究開発を事業につなげる データ、仕組み、コミュニケーション
shibuiwilliam
1
57
デプロイして本番システムで使うことから考えるAI
shibuiwilliam
2
520
今日からRAGを 始めることを考える
shibuiwilliam
2
1.5k
2024年生成AI新年会登壇資料
shibuiwilliam
0
290
Creative as Software Engineering
shibuiwilliam
2
610
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
300
機械学習システム構築実践ガイド
shibuiwilliam
1
850
Other Decks in Technology
See All in Technology
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
The Rise of LLMOps
asei
7
1.5k
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.3k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
240
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
750
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
140
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
9.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Embracing the Ebb and Flow
colly
84
4.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Six Lessons from altMBA
skipperchong
27
3.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Being A Developer After 40
akosma
86
590k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building Applications with DynamoDB
mza
90
6.1k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
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