はじめに
- 第3回 MLOps 勉強会 Tokyo (Online)を視聴させていただいたときのメモです
メモ
異音検知プラットフォーム開発におけるMLOpsの実際と考察
- リサーチャ、ソフトウェアエンジニア、ユーザのそれぞれの目的
- → 結局、ユーザが課題を解決するためにみんな動いている
- ResDevOpsでモデルを作っていく
- リサーチャはクラウド前提の開発をしない
- トライアンドエラーが多い
- オンプレ高スペックでやりたい
- ソフトウェアエンジニアは、運用コストを最小限にするため、クラウドが前提
- ソフトウェアエンジニアが前処理ロジックも学習モデル生成ロジックも移植する
- PoCの進捗速度が速いとソースコードと結果の関連管理が乱雑になりがち
- リサーチャが求めた精度が出ない場合があるとは?
- 開発のデータとの差分
- PyTorchのバージョンが変わっただけで精度が変わったり
- 実験管理はGASとスプレッドシートでやったり
- 本番はSageMakerで動かしている
- モデルデプロイのタイミングでは、本来は精度比較のテストをするべき
- A/Bテスト
- カナリアリリース
- コンテナで固めればバージョン固定できるが、SageMakerを使ってるからこそ固定できない
- PMがリサーチャをまとめる。リードエンジニアがSWEをまとめる。という体制
コードの移植について、 リサーチャのコードをソフトウェアエンジニアが書き直しているとのことですが、 リサーチャが継続的に頻繁にコードを修正する場合、修正点のソフトウェアエンジニアへの連携が難しそうですが、 何か工夫している点はありますでしょうか。(ツールを利用しているなど)
→
プロダクトの更新スケジュールは決めている それに向けて、いつ時点のリサーチャのコードを使うよ、と宣言