はじめに
- 機械学習システム開発の全体像をまとめてみました
- データ基盤構築~モデル開発~パイプライン開発・デプロイ~エンドポイント構築・デプロイ~監視
- データサイエンティスト・データエンジニアがいつ何をするか
- MLOpsの概要やそれぞれの詳細は下記参照
機械学習システム開発フロー
※あくまで一例です
機械学習システム開発フロー図
機械学習システム開発フロー例の詳細
1. データ基盤構築
- データ収集
- データレイク・データウェアハウス・データマート・特徴量ストアなどにデータを格納する
2. モデル開発
-
IAMユーザ作成
- データサイエンティストに必要な権限を付与する
-
ノートブックインスタンス作成
- 要件に応じたスペックのノートブックインスタンスを作成する
-
データ取り込みとバージョン管理
- 生のデータセットを読み込む
- 生のデータセットと変換されたデータセットの両方のバージョンを管理する
-
データ分析と検証
- 取り込んだデータセットの品質とバイアスを分析する
-
特徴量選択とエンジニアリング
- データセットを次のパイプラインステップで使用される特徴量に変換する
- データを訓練・検証・テストに分割する
- 特徴量を特徴量ストアに公開し、組織全体で訓練と推論の両方に使用する
-
(任意)データ処理ジョブ実行
- 必要に応じて、計算量が不足する場合にデータ処理ジョブ実行をする(ノートブックインスタンスからSparkクラスタにジョブを投げるなど)
-
モデル訓練とチューニング
- 前のステップで作成した特徴量とハイパーパラメータのセットを使用してモデルを訓練する
- 既知の検証データセットの分割を使用して精度を分析し、モデルの精度が十分になるまで異なるハイパーパラメータのセットで繰り返す
-
学習ジョブ実行
- 必要に応じて、計算量が不足する場合に学習処理ジョブ実行をする(ノートブックインスタンスからジョブを投げる)
-
モデル分析とバージョン管理
- 既知のテストデータセットの分割を用いて訓練したモデルをテストし、混同行列や曲線下面積(AUC)などの追加指標を計算し、テストデータセットのそれぞれのセグメントにおけるモデルのバイアスを検証し、バイアスを減らしたり取り除くための再訓練や再チューニングを行う。
-
実験管理
- 実験結果を管理する
3. パイプライン開発・デプロイ
-
パイプラインコード開発
- ノートブックで開発したコードをパイプライン化する
-
パイプラインコードコミット
- パイプラインコードをコミットする
-
CIジョブ実行(パイプライン)
- コミットをトリガーにCIジョブを実行し、パイプラインを生成・実行する
-
CIジョブ結果確認
- CIジョブが正常に完了していることを確認する
-
パイプラインコードレビュー
- CIジョブの結果に加えて、パイプラインコードをレビューする
-
CDジョブ実行(学習パイプライン)
- パイプラインコードのレビューが完了したら、学習パイプラインをデプロイする
-
学習パイプライン実行
- 学習パイプラインを実行する
- 必要に応じて上流処理の待ち合わせを検討する
-
モデル保存
- 学習パイプラインのアウトプットであるモデルをモデルレジストリに保存する
-
メタデータ管理
- 学習パイプライン実行時のメタデータを連携する
-
メタデータ確認
- 学習パイプライン実行時のメタデータを確認する
-
[STG]CDジョブ実行(推論パイプライン)
- 学習パイプライン実行時のメタデータの確認が完了したら、推論パイプラインをデプロイする
-
[STG]トリガー実行
- 推論パイプラインのトリガーを実行する
-
[STG]推論パイプライン実行(モデルロード)
- 推論パイプラインを実行する
-
[STG]推論結果連携
- 推論パイプラインのアウトプットである推論結果を連携する
-
[STG]推論結果確認
- STGでの推論結果を確認する
-
[PROD]CDジョブ実行(推論パイプライン)
- STGでの推論結果の確認が完了したら、PRODに推論パイプラインをデプロイする
-
[PROD]トリガー実行
- 推論パイプラインのトリガーを実行する
-
[PROD]推論パイプライン実行(モデルロード)
- 推論パイプラインを実行する
- 必要に応じて上流処理の待ち合わせを検討する
-
[PROD]推論結果連携
- 推論パイプラインのアウトプットである推論結果を連携する
-
[STG]CDジョブ実行(モデルサービング)
- 学習パイプライン実行時のメタデータの確認が完了したら、モデルをエンドポイントにデプロイする
4. エンドポイント構築・デプロイ
-
[STG]推論エンドポイント起動
- モデルをサービングする
-
[STG]推論レスポンス確認
- STGでの推論結果を確認する
-
[PROD]CDジョブ実行(モデルサービング)
- STGでの推論結果の確認が完了したら、PRODにモデルをエンドポイントにデプロイする
-
[PROD]推論エンドポイント起動
- モデルをサービングする
5. 監視
-
監視
- 死活監視・リソース監視・ログ監視・精度監視をする
-
分析・障害対応
- 分析・障害対応をする