JTFで
機械学習基盤の本番運用とその取り組み
を聞いてきた!んでメモ
機械学習基盤の本番運用とその取り組み
・自己紹介
・ターゲット
・ある日こんなことを言われると考えてください
経営者「これからはAIだ」
AI?機械学習?どう違うの?
機械学習ってなに??
・機械学習??
データを入力、あるべき結果を出力として
複数のデータから共通のルールや特徴、判断基準を抽出
明示的にプログラムロジックを書かずに結果を出すための仕組み
→ロジックの抽象化
・なぜ機械学習が求められるのか
・モバイルやインターネットが普及しきった今、物事の状況は急激に変わる
その変化をプログラムで表すのは大変
if や for でパラメータを書き換える改修を加えるのは難しいし、効果も図れない
→モデルを入れ替えるだけでアプリケーションが世の中のニーズに
・・機械学習の応用例
リアルタイムで変化
人間の手を介すると大変なもの
・機械学習の利用イメージ
・学習と推論
学習
データを宇一定の規則に従ってモデルに変換
データソースが重要なので、日々入れ替わるものは定常的に学習
推論
モデルを使ってあるデータがどのパターンの最も近いかを判断
推論に使うモデルのデータ鮮度大事
→Webにはない機械学習基盤のポイントと
モデルが機械学習における頭脳
モデルの入れ替えと学習頻度などの定義が重要
・アプリに機械学習
アプリ側から推論APIのサービング
→動くけど・・・
→モデルの更新は?アプリケーションの更新は?
インフラ設計は誰がするの
・機械学習にかかわる人たち(当社比)
リサーチャー→アルゴリズムとモデル評価を担当
MLエンジニア→モデルを使ったAPIやアプリのプロトタイピングなど
→自動化、インフラ設計、パフォーマンスチューニングは?
・Two Big Problem
データサイエンティスト VS MLエンジニア
→モデル作成とサービングの垣根をなくして・・・
→Dev X Ops→MLX Ops
・MLOpsチームのミッション(当社比)
MLエンジニアや研究者が機械学習モデルの開発に集中できる環境を提供する
プロトタイプをプロダクションレベルに引き上げる
→研究者、MLエンジニアたちが使ったものを実際にサービスインし、運用まで行う
・MLOpsで補えること
・研究者はソフトウェアエンジニアリングの知見がない
Jupyter Notebookだけあればいい
・継続的なアプリケーション改善や自動化のタスクは専門外
MLOpsで補えること
・DevOpsで培った能力を機械学習にも
GPU/CPUを使ったワークフローやインフラ設計
本番に向けた亜アプリケーション設計の改善
コンテナ化、ボトルネックの改善(ローリングアップデート)
アーキテクチャ全体
学習
推論
インフラ側構成管理
Terraformを使っている
MLOpsの担当領域
インフラの構成管理
アプリケーションのCI/CDやコンテナ化、チューニング
学習ワークフローの改善・運用
チームの多様性
・SREにおいて必要とされるチームの多様性はMLOpsでも重要
業務やプロダクト、基盤において使われる技術はすべて包括的に理解
得意領域が違うエンジニアが複数人いる
違う試練のエンジニアがうまく動いていくには、
個々のチームを意識した動きや優秀なリーダー
チームの統率・多様性
アプリのチューニング
・ビジネスロジックを変えない範囲で推論APIの速度を上げる
APMや外形監視を使って定常監視、ボトルネック見つける
GPU・CPUどちらを使うか決める
WebアプリでGPUを使うとコンテキストテキストの切り替えで遅くなる
→ISUCONは僕たちに大切なことを教えてくれた
・学習ワークフローの運用と改善
一連の流れをフローに落とし込み、自動化する
毎日、毎時間情報が変わるようなデータに対して
継続して価値を提供するためには必要不可欠
並列実効性
アルゴリズム
物体検出アルゴリズム
特徴料抽出アルゴリズム
近時最近傍険策(ANN)
MLプロダクションまでの流れ
→MLプロダクションまでの流れ
ワークフローで推論モデルの生成を自動化
推論モデルの児童デプロイ
アプリケーションのCI/CDパイプライン
実はやっていることの本質は今までのSRE・DevOpsと変わらない
モデルやAPIの日々の開発者体験の向上
SRE的なアプローチ
まとめ
・DevOps
・SRE:サービスの提供価値(昔とそんなに変わらない)
・MLOps
機械学習基盤の本番運用とその取り組み
を聞いてきた!んでメモ
機械学習基盤の本番運用とその取り組み
・自己紹介
・ターゲット
・ある日こんなことを言われると考えてください
経営者「これからはAIだ」
AI?機械学習?どう違うの?
機械学習ってなに??
・機械学習??
データを入力、あるべき結果を出力として
複数のデータから共通のルールや特徴、判断基準を抽出
明示的にプログラムロジックを書かずに結果を出すための仕組み
→ロジックの抽象化
・なぜ機械学習が求められるのか
・モバイルやインターネットが普及しきった今、物事の状況は急激に変わる
その変化をプログラムで表すのは大変
if や for でパラメータを書き換える改修を加えるのは難しいし、効果も図れない
→モデルを入れ替えるだけでアプリケーションが世の中のニーズに
・・機械学習の応用例
リアルタイムで変化
人間の手を介すると大変なもの
・機械学習の利用イメージ
・学習と推論
学習
データを宇一定の規則に従ってモデルに変換
データソースが重要なので、日々入れ替わるものは定常的に学習
推論
モデルを使ってあるデータがどのパターンの最も近いかを判断
推論に使うモデルのデータ鮮度大事
→Webにはない機械学習基盤のポイントと
モデルが機械学習における頭脳
モデルの入れ替えと学習頻度などの定義が重要
・アプリに機械学習
アプリ側から推論APIのサービング
→動くけど・・・
→モデルの更新は?アプリケーションの更新は?
インフラ設計は誰がするの
・機械学習にかかわる人たち(当社比)
リサーチャー→アルゴリズムとモデル評価を担当
MLエンジニア→モデルを使ったAPIやアプリのプロトタイピングなど
→自動化、インフラ設計、パフォーマンスチューニングは?
・Two Big Problem
データサイエンティスト VS MLエンジニア
→モデル作成とサービングの垣根をなくして・・・
→Dev X Ops→MLX Ops
・MLOpsチームのミッション(当社比)
MLエンジニアや研究者が機械学習モデルの開発に集中できる環境を提供する
プロトタイプをプロダクションレベルに引き上げる
→研究者、MLエンジニアたちが使ったものを実際にサービスインし、運用まで行う
・MLOpsで補えること
・研究者はソフトウェアエンジニアリングの知見がない
Jupyter Notebookだけあればいい
・継続的なアプリケーション改善や自動化のタスクは専門外
MLOpsで補えること
・DevOpsで培った能力を機械学習にも
GPU/CPUを使ったワークフローやインフラ設計
本番に向けた亜アプリケーション設計の改善
コンテナ化、ボトルネックの改善(ローリングアップデート)
アーキテクチャ全体
学習
推論
インフラ側構成管理
Terraformを使っている
MLOpsの担当領域
インフラの構成管理
アプリケーションのCI/CDやコンテナ化、チューニング
学習ワークフローの改善・運用
チームの多様性
・SREにおいて必要とされるチームの多様性はMLOpsでも重要
業務やプロダクト、基盤において使われる技術はすべて包括的に理解
得意領域が違うエンジニアが複数人いる
違う試練のエンジニアがうまく動いていくには、
個々のチームを意識した動きや優秀なリーダー
チームの統率・多様性
アプリのチューニング
・ビジネスロジックを変えない範囲で推論APIの速度を上げる
APMや外形監視を使って定常監視、ボトルネック見つける
GPU・CPUどちらを使うか決める
WebアプリでGPUを使うとコンテキストテキストの切り替えで遅くなる
→ISUCONは僕たちに大切なことを教えてくれた
・学習ワークフローの運用と改善
一連の流れをフローに落とし込み、自動化する
毎日、毎時間情報が変わるようなデータに対して
継続して価値を提供するためには必要不可欠
並列実効性
アルゴリズム
物体検出アルゴリズム
特徴料抽出アルゴリズム
近時最近傍険策(ANN)
MLプロダクションまでの流れ
→MLプロダクションまでの流れ
ワークフローで推論モデルの生成を自動化
推論モデルの児童デプロイ
アプリケーションのCI/CDパイプライン
実はやっていることの本質は今までのSRE・DevOpsと変わらない
モデルやAPIの日々の開発者体験の向上
SRE的なアプローチ
まとめ
・DevOps
・SRE:サービスの提供価値(昔とそんなに変わらない)
・MLOps