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
160
Getting started with MLOps
Getting started with MLOps
shibuiwilliam
March 17, 2022
Tweet
Share
More Decks by shibuiwilliam
See All by shibuiwilliam
2024年生成AI新年会登壇資料
shibuiwilliam
0
160
Creative as Software Engineering
shibuiwilliam
2
460
Kubernetesクラスターを引き継ぐ技術
shibuiwilliam
3
160
機械学習システム構築実践ガイド
shibuiwilliam
1
600
GPT, Langchain, Faiss, FastAPIを組み合わせた Chat検索システム開発
shibuiwilliam
4
4k
機械学習を実用化するエンジニアリングスキル
shibuiwilliam
12
4.1k
Generative AIと検索を組み合わせた新たな体験の模索
shibuiwilliam
3
920
Machine learning system development
shibuiwilliam
1
390
機械学習でテスト実行を効率化するLaunchable
shibuiwilliam
0
190
Other Decks in Technology
See All in Technology
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
Vertex AI を中心に 生成AIのアップデートを共有します
kaz1437
0
280
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
160
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
350
NgRx Signal Store
rainerhahnekamp
0
140
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
2
810
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
980
Meta Quest 3 で動く桜マシマシ WebXR アプリを IBM Cloud Code Engine と Babylon.js で作った話
1ftseabass
PRO
0
120
チームでロジカルシンキングに改めて向き合っている話 〜学習環境と実践⽅法〜
sansantech
PRO
0
210
アクセス制御にまつわる改善 / Improving access control
itkq
0
480
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
470
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
27
5.7k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
273
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
A Philosophy of Restraint
colly
196
16k
In The Pink: A Labor of Love
frogandcode
138
21k
Design by the Numbers
sachag
274
18k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Gamification - CAS2011
davidbonilla
76
4.6k
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/