SPSS Modelerで作ったモデルをCADSと組み合わせてMLOpsで管理していきます。
MLOpsを4つのパートに分けて説明します。
この記事ではスコアリング・パイプライン作成について説明します。
1.モデル作成
2.スコアリング
3.モデルモニタリング
4.モデルリフレッシュ
全体イメージの中では、スコアリング・パイプライン(ModelerストリームとCADSジョブ)を作成して、CADSのレポジトリに保存し、実行していみるところまでの解説になります。
スコアリングストリームの作成
スコアリングデータを読み込みます。
年齢と性別、そしてオプトインの情報がありますが、キャンペーン反応の情報はありません。
データ・加工処理とモデルはモデル作成のパイプラインからコピーします。モデルの名前は見分けがつきやすいように「スコアリング」としておきます。
エクスポートノードを接続し、プレビューを見てみると、予測結果として「$R-キャンペーン反応」と「$RC-キャンペーン反応」の2列が追加されていることがわかります。
スコアリング枝の設定
スコアリング枝の設定をします。「ストリームのプロパティ」の「展開」を開きます。
以下をそれぞれ設定します。
展開タイプ:「モデル更新」
スコアリングノード:スコアリング後のエクスポートノード。この例では「スコアリング後データ.csv」
モデリングノード:モデルを作成したモデリングノード。この例では「キャンペーン反応」
モデルナゲット:スコアリング枝のモデルナゲット。この例では「スコアリング」
スコアリングに使われる枝が太線表示になります。
ビジネスルールの定義
スコアリングデータがそのまま業務適用できるとは限りません。
ここではオプトインのデータのみに絞るビジネスルールを定義しています。出力結果は「判断結果.csv」に出力するようにしました。
CADSレポジトリへの保管
このモデルでスコアリングを運用に載せるという想定で、バージョンラベルに「Production」を指定しました。
スコアリング用のCADSジョブの作成
「新規」で「ジョブ」を作成します。
名前を付けて「終了」をクリックします。ここでは「キャンペーン予測スコアリング」としました。
ここではスコアリングデータをジョブ変数で指定できるようにFILENAMEという変数で定義します。
次に「キャンペーン予測.str」をジョブのキャンバスにドラッグアンドドロップします。
ジョブステップ名は「キャンペーン予測スコアリング」としました。
オブジェクトのバージョンは「Production」ラベルがついたものとします。これはその後新しいバージョンのストリームが登録されていても、このスコアリングジョブでは「Production」のラベルを付いているストリームを使い続けるという意味になります。誤って意図をしないモデルを使わないための設定です。
Modeler Serverとコンテンツリポジトリ―サーバー(CADSレポジトリ)のサーバーと実行ユーザーを指定します。
タイプを「モデル管理」の「スコア」とします。
そしてスコアリング枝を「判断結果.csv」にします。
「データファイル」タブに移り、「スコアリングデータ.csv」に「${JobVariable.FILENAME}」としてジョブ変数を指定します。
スコアリングジョブの実行
作成したスコアリングジョブを右クリックして、「オプションありでジョブを実行」します。
FILENAMEは変更可能ですが、ここではそのまま実行します。
サンプルストリームやデータ、PES
- テスト環境
- Modeler 18.3
- CADS 8.3
- Windows 2019
参考情報
なぜMLOpsが必要なのか(vol97-0014-ai)
https://community.ibm.com/community/user/japan/blogs/provision-ibm1/2021/08/17/vol97-0014-ai
失敗しないMLOps (vol97-0017-ai)
https://community.ibm.com/community/user/japan/blogs/provision-ibm1/2021/10/31/vol97-0017-ai
MLOpsのキホンと動向 | IBM ソリューション ブログ
https://www.ibm.com/blogs/solutions/jp-ja/mlops-2021-data/