MLOpsにおける自動テスト

完全自動化MLOps

Arturo Opsetmoen Amador

Senior Consultant - Machine Learning

ソフトウェアテストとは

$$

ソフトウェア製品やアプリが期待どおり動作するかを評価・検証するプロセス

$$

代表的なソフトウェアテスト3種:

  • 単体テスト
  • 結合テスト
  • E2Eテスト

$$

$$

土台が単体テスト、次が結合テスト、頂点がE2Eテストのピラミッド図。

完全自動化MLOps

MLソフトは性質が異なる

MLアプリは明示的にプログラムされない

$$

MLシステムの学習プロセスを示す図。

依存するもの:

  • データ
  • モデル
完全自動化MLOps

MLOpsでのテストは異なる

従来のソフトは単体・結合テスト、MLはデータ・モデル・パイプラインの各テストで検証する図。

1 https://research.google/pubs/pub46555/
完全自動化MLOps

MLシステムのテスト

$$

従来のテストに加えて:

  • データテスト
  • モデルテスト
  • パイプラインテスト
完全自動化MLOps

データのテスト

特徴量・データのテスト:

  • 特徴量の期待値
  • データ特徴量の価値がコストに見合う
  • プライバシー管理
  • 違法データの不使用

$$

異なる測定値を示す複数の温度計。

完全自動化MLOps

モデルのテスト

モデルのテスト:

  • ビジネス指標とML指標の相関
  • すべてのハイパーパラメータを調整済み

  • 過学習

  • モデルの陳腐化
  • ベースライン比較
完全自動化MLOps

MLパイプラインのテスト

MLパイプラインのテスト:

  • 学習の再現性
  • パイプラインの結合テスト

  • モデルのデバッグ容易性

完全自動化MLOps

Ayo berlatih!

完全自動化MLOps

Preparing Video For Download...