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
Getting started with MLOps
Search
shibuiwilliam
March 17, 2022
Technology
0
170
Getting started with MLOps
Getting started with MLOps
shibuiwilliam
March 17, 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
TypeScript、上達の瞬間
sadnessojisan
46
13k
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
800
AIチャットボット開発への生成AI活用
ryomrt
0
170
複雑なState管理からの脱却
sansantech
PRO
1
140
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
Engineer Career Talk
lycorp_recruit_jp
0
170
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
190
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Optimizing for Happiness
mojombo
376
70k
Site-Speed That Sticks
csswizardry
0
25
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
GraphQLとの向き合い方2022年版
quramy
43
13k
Unsuck your backbone
ammeep
668
57k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Designing the Hi-DPI Web
ddemaree
280
34k
Transcript
MLOpsのはじめ方 2021/04/21 shibui yusuke
自己紹介 shibui yusuke • 自動運転スタートアップのティアフォー所属 • よろず屋 • MLOpsコミュニティのオーガナイザー •
もともとクラウド基盤の開発、運用。 • ここ5年くらいMLOpsで仕事。 • Github: @shibuiwilliam • Qiita: @cvusk • FB: yusuke.shibui • 最近やってること: FlutterとIstio cat : 0.55 dog: 0.45 human : 0.70 gorilla : 0.30 物体検知
今日話すこと MLOps勉強会でMLOpsをどう取り入れていくのかって話をしてなくない?
CatOps! 放置しているとネコに 椅子を奪われる。 ネコ障害対応(餌、遊ぶ)。 「遊ぶ」を自動化する。 椅子に座っていても ハンズフリーで遊べる。 day 奪 わ
れ 回 数 ハンズフリー導入 飽き始める Dev Data-driven 4 Ops
なぜ機械学習にDevOpsが必要か
• 機械学習の有用性を試す PoCから次の段階に行くためには機械学習の DevOpsが必要 • 機械学習を含むプロダクトの価値を継続的に引き出すのが MLOps 0->1の次を目指す PoCの数々 ようやく成功した
プロダクト 成長するには なにが足りない? →ビジネス指標から機械学習を評価する →機械学習だけにフォーカスしない
機械学習を使ったプロダクト例 画像処理 写真を撮る タイトル入力 説明入力 登録する 自然言語処理 違反検知 登録情報から違反を フィルタリング
入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ登録アプリ 画像分類と 検索
機械学習を使ったプロダクト例 画像処理 写真を撮る タイトル入力 説明入力 登録する 自然言語処理 違反検知 登録情報から違反を フィルタリング
入力情報から 入力補助 超解像による 画質改善 ねこ 検索 協調フィルタリングや ランク学習による 並べ替え あるコンテンツ登録アプリ 画像分類と 検索タグ どう学習する? →定期的 →不定期 →評価が悪くなったとき いつ推論する? →検索時 →データ登録時 →1時間ごとにまとめて どう評価する? →Accuracy, Confusion Matrix →検索数、CTR、いいね数
MLOpsのはじめ方
Good • プロダクトの課題からはじめる • リリースからはじめる • プロダクトの価値からはじめる Bad • 機械学習からはじめる
• 汎用基盤からはじめる • 技術的な課題からはじめる Issueからはじめる
プロダクトを設計する • 課題: 画像データの検索に時間がかかっている • 状況: 大量の画像データが保存されており、 有効活用したいが必要な画像を 検索することができない •
成功の定義: 利用者が画像を選択するまでの時間を **分以内に短縮する
検索を容易にするために画像にタグをつける ネコ 月 ネコ ネコ ネコ ネコ 宗谷岬 空 山
木 コアラ フライパン カーテン 夜 上海 デザート フルーツ イヌ
使い方を考える ネコ ネコ イヌ ・・・ ネコ 個数 位置 明るさ 場所
容易さ 便利さ 画像をアップロード 用途次第 カテゴリを選択 画像分類 フリーテキスト入力 画像分類+自然言語処理 フリーテキストと属性 画像分類+物体検知+ 自然言語処理 画像から類似画像を検索 特徴量抽出+ANN 3 暗 外 上
評価方法を考える • 目的を手段で要素分解する仮説を立てる • はやめに仮説検証できる技術を選択する 目的のコンテンツを 収集するまでの時間 日時検索 画像認識 目的のコンテンツを
収集するまでの時間 適切にタグ付けされた コンテンツ数と正解率 目的のコンテンツを 収集するまでの時間 画像分類の Accuracy 物体検知の Ave. Precision
機械学習の目的と価値と可否を定義する • この写真にどうタグをつける? カテゴリ数 画像分類 物体検知 セグメンテーション データを作る所要時間 検索カテゴリ ランキング
最低限使える だいぶ便利 いらない
学習の頻度と推論のタイミングを決める データ収集時 定期バッチ 検索時 不定期 定期的 学習 推論 推論器が常時稼働し ている必要あり
類似画像検索 バッチジョブが 必要 アノテーションと バッチジョブが必要 ときどきサーバを 起動して実行 データ収集 検索 使う
学習を管理する 実験フェーズ 個人の効率性>共有の価値 チーム開発フェーズ 共有の価値>個人の効率性 学習経過を記録 学習結果を記録 データを記録 コードを管理 実行環境を管理
可視化
(参考)機械学習の管理系ライブラリ • モデルの管理 ◦ modeldb: https://github.com/VertaAI/modeldb ◦ keepsake: https://keepsake.ai/ •
データも管理 ◦ DVC: https://dvc.org/ • 学習の経過も記録 ◦ TensorBoard: https://www.tensorflow.org/tensorboard • 学習パイプラインと経過とモデルを記録 ◦ mlflow: https://mlflow.org/ • 学習パイプラインと基盤 ◦ Metaflow: https://metaflow.org/ ◦ KubeFlow: https://www.kubeflow.org/ • 学習済みモデルを解析 ◦ Tensorflow Model Analysis: https://www.tensorflow.org/tfx/guide/tfma ◦ Netron: https://github.com/lutzroeder/netron
推論システムを作る モデルファイル 推論コード or データベース ストレージ キュー ワーカー 推論 推論ビルド
キャッシュ 検索UI 検索システム
(参考)機械学習の推論ライブラリ • TensorFlow, Keras ◦ サーバサイド:TensorFlow Serving https://www.tensorflow.org/tfx/guide/serving ◦ スマホ:TensorFlow Lite https://www.tensorflow.org/lite?hl=ja
• PyTorch ◦ サーバサイド:ONNX Runtime https://github.com/microsoft/onnxruntime ◦ サーバサイド:Torch Serve https://pytorch.org/serve/ ◦ スマホ:PyTorch Mobile https://pytorch.org/mobile/home/ • scikit-learn ◦ サーバサイド:ONNX Runtime https://github.com/microsoft/onnxruntime
間違いを修正する ネコ イヌ 検知方法 通報 他モデルの 推論と比較 閲覧率 見つける 対策
再学習 特定カテゴリ 新モデル 完全 新モデル 違う アルゴリズム
リリース基準を作る 機械学習の基準 システムの基準 セキュリティの基準 Precision RMSE データと推論の偏り Accuracy F-score ログ
監視 テスト網羅率 負荷 遅延 コストの基準 ・・・ 切り戻す基準
• 手法1 推論するデータを分ける O コスト O 全ユーザから新モデルの評価を得る X 同じデータの比較ができない • 手法2 アクセスするユーザを分ける O 同じデータで比較できる
O 新モデルへの移行が比較的簡単 X コスト A/Bテストを作る 新モデル 現モデル 新モデル 現モデル
アンチパターン:機械学習だけ更新する ねこ v1 v2 v3 ・・・ 汎用的に使えるモデル 部分的に物体検知を活用 動物の検索に有効 同じUI/UXで
効果ある?
まとめ
本を出版します! • AIエンジニアのための 機械学習システムデザインパターン • 2021年5月17日出版 • https://www.amazon.co.jp/dp/4798169447/