ModelOps - 初めてのBYOMモデルのインポートとデプロイ

著者  Pablo Escobar de la Oliva
最終更新日 2022年10月5日

# 概要

このチュートリアルは、Vantage ModelOpsを初めてご利用になる方を対象としたクイックスタート・チュートリアルです。このチュートリアルでは、ModelOpsで新しいプロジェクトを作成し、必要なデータをVantageにアップロードし、BYOMメカニズムを使用してインポートしたDiabetesデモモデルのライフサイクルを完全に追跡することができます。

# 前提条件

・Teradata VantageインスタンスとClearScape Analytics（ModelOpsを含む）へのアクセス。

・Jupyterノートブックを実行する機能

:::note info
Vantageの新しいインスタンスが必要な場合は、[Google Cloud](https://qiita.com/ykswi/items/10a382de5fa5a4a42c50)、[Azure](https://qiita.com/ykswi/items/2c30aa1f5413b16c838c)、[AWS](https://qiita.com/ykswi/items/fba559149ad568678d58)のクラウドにVantage Expressという無料版をインストールすることができます。また、[VMware](https://qiita.com/ykswi/items/ebe1d854c38db9bb0f51)、[VirtualBox](https://qiita.com/ykswi/items/ffadaa375add309f2075)、または[UTM](https://qiita.com/ykswi/items/94995954ae723185c2f7)を使用して、ローカルマシン上でVantage Expressを実行することもできます。
:::

# 必要なファイル

まず、このチュートリアルに必要なファイルをダウンロードすることから始めましょう。以下の4つの添付ファイルをダウンロードし、Notebookのファイルシステムにアップロードしてください。

[ModelOpsトレーニングノートブックのダウンロード](https://quickstarts.teradata.com/modelops/_attachments/ModelOps_Training.ipynb)

[デモユースケース用BYOMノートブックファイルのダウンロード](https://quickstarts.teradata.com/modelops/_attachments/BYOM.ipynb)

[デモユースケース用のデータファイルのダウンロード](https://quickstarts.teradata.com/modelops/_attachments/ModelOps_Data_files.zip)

[デモユースケース用のBYOMコードファイルをダウンロード](https://quickstarts.teradata.com/modelops/_attachments/ModelOps_BYOM_files.zip)

または、以下のレポをgit cloneしてください。

```:git_clone
git clone https://github.com/willfleury/modelops-getting-started
git clone https://github.com/Teradata/modelops-demo-models/
```

# データベースとJupyter環境のセットアップ

ModelOps_Training Jupyter Notebookに従って、デモに必要なデータベース、テーブル、ライブラリのセットアップを行います。

### メソドロジーにおける当社の位置づけを理解する

![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/deed9c1c-39d3-f1e5-0ca0-b9771b52b720.png)

### 新規プロジェクトの作成、または既存のプロジェクトの使用

##### 新規プロジェクトの追加

・プロジェクト作成
・詳細
・名前 デモ：自分の名前でよいです
・説明 ModelOpsのデモ
・グループ名：自分の名前でよいです
・パス: [https://github.com/Teradata/modelops-demo-models](https://github.com/Teradata/modelops-demo-models)
・クレデンシャル クレデンシャルなし
・ブランチ：マスター

ここで、gitの接続をテストします。緑色になっていれば、保存して続行します。サービス接続の設定はとりあえずスキップします。

新しいプロジェクトを作成するとき、ModelOpsは新しい接続を要求します。

### パーソナル・コネクションを作成する

##### パーソナル・コレクション

・名前 Vantage Perdonal ＋ 自分の名前
・説明 Vantageデモ
・ホスト: tdprd.td.teradata.com (teradata transcend のみの内部)
・データベース: 準備したデータベース
・VALデータベース TRNG_XSP (内部は teradata transcend のみ)
・BYOMデータベース TRNG_BYOM (内部はTeradata Transcendのみ)
・ログイン方法 TDNEGO
・ユーザ名/パスワード

### SQLデータベースでVALとBYOMの権限を検証する

接続パネルの新しいヘルスチェックパネルで権限を確認することができます

![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/d744cc79-17e7-c0f2-98f9-36c2ea3f3684.png)

### BYOM 評価とスコアリングのための Vantage テーブルを特定するデータセットを追加

新しいデータセットテンプレートを作成し、トレーニング用のデータセットを1つ、評価用のデータセットを2つ作成して、2種類のデータセットでモデルの品質指標を監視することにしましょう。

##### データセットを追加する

・データセットテンプレートの作成
・カタログ
・名称 PIMA
・説明 PIMA糖尿病
・機能カタログ バンテージ
・データベース: 準備したデータベース
・テーブル: aoa_feature_metadata

特徴クエリ：
```SQL:Features_Query.sql
SELECT * FROM {your-db}.pima_patient_features
```

エンティティキー： PatientId 特徴 ：NumTimesPrg, PlGlcConc, BloodP, SkinThick, TwoHourSerIns, BMI, DiPedFunc, Age。

エンティティ＆ターゲットクエリ：

```SQL:Entity_Target.sql
SELECT * FROM {your-db}.pima_patient_diagnoses
```

エンティティキー： PatientId 対象：HasDiabetes

### 予測値

・データベース: your-db

・テーブル: pima_patient_predictions

エンティティの選択クエリ：

```SQL:Select_Entity.sql
SELECT * FROM pima_patient_features WHERE patientid MOD 5 = 0
```

BYOM対象カラム: CAST(CAST(json_report AS JSON).JSONExtractValue('$.predicted_HasDiabetes') AS INT)

### トレーニングデータセットの作成

ベーシック：

・名称 ：電車
・説明 ：トレーニングデータセット
・スコープ ：トレーニング
・エンティティ＆ターゲット

クエリ：

```SQL:Select_training_Dataset.sql
SELECT * FROM {your-db}.pima_patient_diagnoses WHERE patientid MOD 5 = 1
```

### 評価用データセット1の作成

ベーシック：

・名称 ：評価する
・説明 ：評価用データセット
・スコープ ：評価
・エンティティ＆ターゲット

クエリ：

```SQL:Select_Evaluation_Dataset1.sql
SELECT * FROM {your-db}.pima_patient_diagnoses WHERE patientid MOD 5 = 2
```

### 評価用データセット2の作成

ベーシック：

・名称 ：評価する
・説明 ：評価用データセット
・スコープ ：評価
・エンティティ＆ターゲット

クエリ：

```SQL:Select_Evaluation_Dataset2.sql
SELECT * FROM {your-db}.pima_patient_diagnoses WHERE patientid MOD 5 = 3
```

### 新しいBYOMのためのモデルライフサイクル

必要なファイルをダウンロードし、解凍してください。PMMLファイルについては、GITモデルの学習で生成されたPMMLをダウンロードすることもできます。

・BYOM.ipynb
・model.pmml
・要件.txt
・評価.py
・データ統計.json
・init.py

##### 評価・監視を伴うBYOMモデルの定義

・バージョンインポート
・評価
・データセットの統計情報を含む評価レポートを確認
・承認
・Vantage でデプロイ - エンジン、パブリッシュ、スケジュール。スコアリングデータセットが必要 接続を使用し、データベースを選択 (例: "aoa_byom_models")
・デプロイメント/エグゼキューション
・データセット2で再度評価 - モデルメトリクスの挙動を監視する
・モデルのドリフトを監視 - データとメトリックス
・BYOM notebook を開きSQLコードからPMMLプレディクトを実行する
・リタイアメントを行う

# まとめ

このクイックスタートではBYOMモデルの完全なライフサイクルをModelOpsで実行する方法とそれをVantageにデプロイする方法について学びました。そしてバッチスコアリング、レストフルまたはオンデマンドスコアリングのテスト、データドリフトとモデル品質メトリックのモニタリングの開始をスケジュールする方法を紹介しました。

# さらに詳しく

・[Teradata Vantage™ - ModelOps ユーザーガイド](https://docs.teradata.com/r/Teradata-VantageTM-ModelOps-User-Guide)（現在はユーザー登録が必要です）

#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)