IBM Cloud Docs
予測式機械学習モデルのビルド、デプロイ、テストおよびモニター

予測式機械学習モデルのビルド、デプロイ、テストおよびモニター

このチュートリアルでは、費用が発生する場合があります。 コスト見積もりツールを使用して、予測使用量に基づいてコスト見積もりを生成します。

このチュートリアルでは、予測式機械学習モデルを構築し、生成されたモデルをアプリケーションで使用するために API としてデプロイし、そのモデルをテストするというプロセスについて説明します。このプロセスはすべて、IBM Cloud の 1 つに統合されたセルフサービス・エクスペリエンスで行うことができます。 その後、デプロイしたモデルを IBM Watson OpenScale でモニターします。

このチュートリアルでは、花の品種を分類する機械学習モデルの作成に アイリス・フラワー・データ・セット を使用します。

機械学習の用語では、分類は監視付き学習の一例と見なされます。例えば、正しく識別された観察のトレーニング・セットを利用できる学習があります。

Watson Studio は、データ利用のコラボレーションを通してビジネスの問題を解決するための環境とツールを提供します。 データの分析と視覚化、データのクレンジングと加工、ストリーミング・データの取り込み、または、機械学習モデルの作成とトレーニングを行うために必要なツールを選択できます。

目標

  • データをプロジェクトにインポートします。
  • 機械学習モデルを構築します。
  • モデルをデプロイし、API を試します。
  • 機械学習モデルをテストします。
  • デプロイされたモデルをモニターします
  • モデルをリトレーニングします。

アーキテクチャ図*チュートリアル" caption-side="bottom"}の{: caption="図

  1. 管理者が、ローカル・マシンから CSV ファイルをアップロードします。
  2. アップロードした CSV ファイルは、IBM Cloud Object Storage サービスにデータ・セットとして保管されます。
  3. 次に、このデータ・セットを使用して、機械学習モデルをビルドしてデプロイします。 デプロイされたモデルは、API (スコアリング・エンドポイント) として公開されます。
  4. ユーザーは API 呼び出しを行い、テスト・データを使用して結果を予測します。
  5. デプロイされた機械学習モデルは、テスト・データを使用して、品質、精度、およびその他の主要なパラメーターについてモニターされます。

プロジェクトへのデータのインポート

プロジェクトは、特定の目標を達成するためのリソースの編成方法です。 プロジェクト・リソースには、データ、コラボレーター、Jupyter Notebook や機械学習モデルなどの分析ツールを含めることができます。

プロジェクトを作成してデータを追加し、データをクレンジングおよびシェーピングするためにデータ・リファイナーでデータ資産を開くことができます。

プロジェクトの作成

  1. カタログから、Watson Studio を作成します。
    1. リージョン を選択します
    2. 「ライト」 料金プランを選択します
    3. 「サービス名」watson-studio-tutorial に変更します。
    4. 「リソース・グループ」 を選択し、「作成」 をクリックします
  2. 「起動 (Launch in)」 ツイスティーをクリックし、 IBM watsonx を選択します。
  3. 「プロジェクト」 セクションで 「+ 新規プロジェクトの作成 (+ Create a new project)」 をクリックして、 プロジェクト を作成します。
  4. プロジェクト名として iris_project を指定します。
  5. 「ストレージの定義」 で、 Object Storage サービスの新規インスタンスを 追加 します。
  6. 「作成」 をクリックします。 新規プロジェクトが開き、それに対するリソースの追加を開始できます。

データのインポート

前述のように、Iris データ・セット を使用します。 アイリス・データ・セットは、R.A. Fisher の著名な 1936 年の論文、The Use of Multiple Measurements in Taxonomic Problems (分類上の問題における複数の測定値の使用) で使用され、UCI Machine Learning リポジトリーにもあります。 この小さいデータ・セットは、機械学習アルゴリズムや可視化のテストによく使用されています。 その目的は、がく片と花弁の長さと幅の測定により、アイリスの花を 3 つの品種 (Setosa、Versicolor、Virginica) に分類することです。 アイリス・データ・セットには、それぞれ 50 個のインスタンスを持つ 3 つのクラスが含まれています。各クラスは、植物のアイリスの品種を指します。

Iris の例
Iris の例

シパルは、被子植物 (顕花植物) の花の一部である。 通常、シールは通常、芽の中の花の保護として機能し、花が咲くときの花弁の支えとして機能します。 花弁は、花の生殖部分を取り囲む変形された葉である。 受粉者を引き付けるために明るい色や異常に形作られることが多い。 https://en.wikipedia.org/wiki/Iris_flower_data_set

各種の 40 個のインスタンスで構成される iris_initial.csvダウンロード します。 ダウンロードしたファイルの名前が iris_initial.csv であることを確認します。

  1. 「資産」 タブを選択します (まだ選択されていない場合)。
  2. 「このプロジェクトのデータ」 の下で、 「ここにデータ・ファイルをドロップするか、アップロードするファイルを参照します」 をクリックします。
  3. ダウンロードした iris_initial.csv をアップロードします。
  4. 追加されると、プロジェクトのすべてのアセットのセクションに iris_initial.csv が表示されるはずです。

Machine Learning サービスの関連付け

  1. トップ・ナビゲーション・メニューで、 iris-project「管理」 をクリックし、左側の 「サービス」&「統合」 セクションを選択します。
  2. 「サービスの関連付け」 をクリックします。
  3. 既存の Watson Machine Learning サービス・インスタンスがある場合は、次のステップに進んでください。 そうでない場合は、以下の手順を進めて新規インスタンスを作成します。
    1. 「新規サービス」 をクリックし、 Watson Machine Learning タイルをクリックします。
    2. Watson Studio サービスと同じ リージョン を選択し、「ライト」 プランを選択します。
    3. machine-learning-tutorial「サービス名」 として と入力し、リソース・グループを選択します。
    4. 「作成」 をクリックして Machine Learning サービスをプロビジョンします。
  4. Machine Learningサービスの横にあるチェックボックスをオンにし、Associate をクリックします。

機械学習モデルのビルド

  1. 上部のナビゲーション・メニューで、 「アセット」 をクリックします。
  2. 「新規資産 + (New asset +)」 をクリックし、 auto を検索します。
    1. 「マシン・モデルを自動的に作成 (Build machine models automatically)」 タイルをクリックします。
    2. 名前を iris_auto とする。
    3. Watson Machine Learning サービス・インスタンスの下で、以前に関連付けられたサービスに注意してください。
  3. 「作成」 をクリックします。

モデルが作成されたら、以下のようにします。

  1. Select data from project をクリックしてトレーニングデータを追加する。

    1. 「カテゴリー」「データ資産」 を選択し、 iris_initial.csv にチェック・マークを付けます。
    2. 「資産の選択 (Select asset)」 をクリックします。
  2. プロンプトが表示されたら、 時系列分析を作成しますか?

  3. 「予測する内容 (What do you want to predict?)」「Species」 を選択します。

  4. 「試験の設定 (Experiment settings)」 をクリックします。

  5. 「データ・ソース (Data source)」 を選択します。

  6. 「トレーニングおよびホールドアウト方法 (Training and holdout method)」 の下で、スライダーを移動して 「ホールドアウト・データ分割 (Holdout data split)」14% に設定します。

  7. 左側のメニューで、「予測 (Prediction)」 をクリックします。

    1. 「予測タイプ (Prediction type)」「多クラス分類 (Multiclass classification)」 に設定します。
    2. 「最適化されたメトリック (Optimized metric)」「正確度」 に設定します。
    3. 「設定の保存」 をクリックします。
  8. 「実験の実行 (Run experiment)」 をクリックします。

  9. 「AutoAI 試験 (AutoAI experiment)」 では、モデルの適切なアルゴリズムを選択するために最大 5 分かかる場合があります。

    各モデル・パイプラインは、さまざまなメトリックについてスコアリングされた後、ランク付けされます。 二項分類モデルのデフォルトのランク付けメトリックは ROC 曲線下面積、多クラス分類モデルの場合は正解率、回帰モデルの場合は平均 2 乗平方根誤差 (RMSE) です。 最上位ランクのパイプラインがリーダーボードに表示されるため、それらのパイプラインに関する詳細を確認できます。 また、リーダーボードでは、選択モデル・パイプラインを確認後に保存するオプションも提供されます。

エクスペリメントの実行が完了すると、

  1. 「パイプラインリーダーボード (Pipeline leaderboard)」 までスクロールダウンします。
  2. パイプラインをクリックして、メトリックおよびパフォーマンスに関する詳細を表示します。 終了したら、 「X」 をクリックして終了します。
  3. 「ランク 1」 のモデルの横にある 「名前を付けて保存」 をクリックします。
    1. モデルを選択してください。
    2. デフォルト名のままにします。
    3. 「作成」 をクリックします。
  4. 受信した通知から、 「プロジェクトで表示」 をクリックします。

モデルのデプロイとテスト

このセクションでは、保存されたモデルをデプロイし、デプロイされたモデルをテストします。

  1. パンくずリスト・ナビゲーションを使用して、 iris_project をクリックします。
  2. 「資産」 タブで、左側にある 「モデル」 を開きます。
  3. 「モデル」 テーブルでモデルを見つけ、ハンバーガー・メニューをクリックして、 「スペースにプロモート」 を選択します。 デプロイメント・スペースを使用して、モデルをデプロイし、デプロイメントを管理します。
    1. 「名前」iris_deployment_space に設定します。
    2. 対応するドロップダウンの前のステップで使用した Object Storage ストレージ・サービスを選択します。
    3. 対応するドロップダウンで machine-learning-tutorial サービスを選択します。
    4. 「作成」 をクリックします。
  4. 「プロモート」 をクリックします。
  5. 受信した通知から、デプロイメント・スペース にナビゲートします。

「デプロイメント」>「iris_deployment_space」 で、以下のようにします。

  1. 作成したばかりのモデルの名前をクリックします。
  2. 新規配置] ボタンをクリックします。
  3. 「デプロイメント・タイプ」として 「オンライン」 を選択し、名前として iris_deployment を指定し、「作成」 をクリックします。
  4. 「デプロイメント」 タブで、状況が 「デプロイ済み」 に変わったら、テーブル内の 「名前」 をクリックします。 モデルのデプロイ済み Web サービスのプロパティーが表示されます。

デプロイされたモデルのテスト

  1. デプロイの[Test] タブで、[Enter input data]の横にある JSON入力アイコンをクリックし、入力として JSON を入力します。
       {
       "input_data": [{
         "fields": ["sepal_length", "sepal_width", "petal_length", "petal_width"],
         "values": [
           [5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7]
         ]
       }]
     }
    
  2. 「予測 (Predict)」 をクリックすると、 「予測結果 (Prediction results)」 が表および JSON ビューに表示されます。
  3. 入力データを変更して、モデルのテストを続行できます。

API の試行

UI の使用に加えて、デプロイされたモデルをアプリケーションによってアクセスされる API として公開することにより、API スコアリング・エンドポイントを使用して予測を行うこともできます。

  1. デプロイの[APIリファレンス] タブでは、[直接リンク]の下にある_エンド_ポイントと、さまざまなプログラミング言語のコードスニペットを確認できます。

  2. 今後の参考のために、_Publicエンド_ポイントをメモ帳にコピーしておく。

  3. ブラウザーで、IBM Cloud Shell を起動し、後続の要求で使用されるスコアリング・エンドポイントをエクスポートします。 このウィンドウ/タブは閉じないでください

    export SCORING_ENDPOINT='<SCORING_ENDPOINT_FROM_ABOVE_STEP>'
    

    IBM Cloud Shell は、ブラウザーで利用できるクラウド・ベースのシェル・ワークスペースです。 完全な IBM Cloud CLI と、アプリ、リソース、インフラストラクチャーの管理に使用できる数多くのプラグインおよびツールが事前構成されています。

  4. Watsonを使うにはMachine LearningREST API を使用するには、IBM Cloudクンを取得する必要があります。Identity and Access Management(IAM) トークンを取得する必要があります。 Run the below command, it will copy the complete IAM token along with Bearer from the above response and export it as an IAM_TOKEN to be used in the subsequent API requests

    export IAM_TOKEN=$(ibmcloud iam oauth-tokens --output JSON | jq -r .iam_token)
    echo $IAM_TOKEN
    
  5. 以下の cURL コードを Cloud シェル内で実行して、予測結果を表示します。

    curl -X POST \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header "Authorization: $IAM_TOKEN" \
    -d '{"input_data": [{"fields": ["sepal_length", "sepal_width", "petal_length","petal_width"],"values": [[5.1,3.5,1.4,0.2], [3.2,1.2,5.2,1.7]]}]}' \
    $SCORING_ENDPOINT
    

    よく見ると、このコードは上記で作成したデプロイメントの 「cURL」 タブからのものです。 その後、[$ARRAY_OF_INPUT_FIELDS] プレースホルダーが [["sepal_length", "sepal_width", "petal_length","petal_width"]] に、[$ARRAY_OF_VALUES_TO_BE_SCORED] プレースホルダーが [[5.1,3.5,1.4,0.2]] に、[$ANOTHER_ARRAY_OF_VALUES_TO_BE_SCORED] プレースホルダーが [[3.2,1.2,5.2,1.7]] にそれぞれ置き換わっています。

IBM Watson OpenScale を使用したデプロイ済みモデルのモニター

IBM® Watson OpenScale は、AI モデルから得られた結果を追跡および測定し、モデルが構築された場所や実行されている場所にかかわらず、それらの結果が公平かつ説明可能になるようにするとともに、基準に準拠するようにします。また、Watson OpenScale は、AI モデルを実稼働環境で使用する場合に、正確度のドリフトを検出して修正することができます。

理解しやすいように、このチュートリアルでは、AI モデルの品質 (正確度) を Watson OpenScale サービスによって向上させることについてのみ説明します。

IBM Watson OpenScale サービスのプロビジョン

このセクションでは、Watson OpenScale サービスを作成して、デプロイ済みの機械学習モデルの正常性、パフォーマンス、正確度、および品質のメトリックをモニターします。

  1. IBM Watson OpenScale サービス (watsonx.governance) を作成します。
    1. Machine Learning サービスを作成したのと同じ地域の地域を選択することをお勧めします。
    2. 「ライト」 プランを選択します。
    3. サービス名を watson-openscale-tutorial に設定します。
    4. リソース・グループを選択します。
    5. 「作成」 をクリックします。
  2. サービスのプロビジョニングが完了したら、左ペインの Manage をクリックし、LaunchWatson OpenScale をクリックします。
  3. 「手動セットアップ (Manual setup)」 をクリックして、モニターを手動でセットアップします。

システムのセットアップ

このセクションでは、モニタリング用にモデルを準備する作業の一環として、IBM Watson OpenScale でトラッキングしているデプロイメントごとにモニターをセットアップして有効にします。

  1. 「データベース」 をクリックします。 これは、モデル・トランザクションとモデル評価結果を保管するためのものです。 (既に選択されている場合があります)
    1. Database タイルの Edit アイコンをクリックします
    2. データベースの種類として無料ライトプランのデータベースを選択します
    3. 保存 をクリックします。
  2. 「機械学習プロバイダー (Machine learning providers)」 をクリックします。
    1. 「機械学習プロバイダーの追加 (Add machine learning provider)」 をクリックし、「接続」 タイル上の編集アイコンをクリックします。
    2. サービス・プロバイダー・タイプとして 「Watson Machine Learning(V2)」 を選択します。
    3. 「デプロイメント・スペース (Deployment space)」 ドロップダウンで、上記で作成したデプロイメント・スペース iris_deployment_space を選択します。
    4. 「環境」タイプを 「実動前 (Pre-production)」 のままにします。
    5. 保存 をクリックします。
  3. 左端のペイン:
    1. 「洞察ダッシュボード (Insights dashboard)」 のアイコン (最初のアイコン) をクリックして、デプロイメントを追加します。
    2. 「ダッシュボードに追加」 をクリックして、 「モデル・ロケーションの選択」 ページでウィザードを開始します。
      1. 「デプロイメント・スペース」 タブで、 iris_deployment_space ラジオ・ボタンをクリックします。
      2. 次へ をクリックします。
    3. 「デプロイ済みモデルの選択」 ページで、以下の操作を行います。
      1. iris_deployment をクリックします。
      2. 次へ をクリックします。
    4. 「モデル情報の提供」 ページで、以下の操作を行います。
      1. データ・タイプ: 数値/カテゴリー
      2. アルゴリズム・タイプ: 多クラス分類
      3. 「要約の表示」 をクリックします
    5. 「完了 (Finish)」 をクリックします。

iris_deployment 実動前ダッシュボードが表示されるようになりました。

アクション>モニターの設定

  1. 「トレーニング・データ (Training data)」 タイルの 鉛筆 アイコンをクリックして、ウィザードを開始します。
    1. 「構成の選択」 メソッド・ページで、以下を行います。
      1. 手動セットアップを使用する
      2. 次へ をクリックします。
    2. 「トレーニング・データの指定 (Specify training data)」 メソッド・ページ
      1. トレーニング・データ・オプションについては、 「データベースまたはクラウド・ストレージ」 を選択します。
      2. ロケーションについては、 Cloud Object Storage を選択します。
      3. リソースインスタンスIDとAPIキーは、Cloud Shellで以下のコマンドを実行してください。 このチュートリアルで使用している Object Storage インスタンスの名前に一致するように、 --instance-name の後の値を必ず変更してください。
        ibmcloud resource service-key $(ibmcloud resource service-keys --instance-name "cloud-object-storage-tutorial" | awk '/WDP-Project-Management/ {print $1}')
        
      4. 資格情報 resource_instance_id をコピーして貼り付けます。 これは、 crn で始まり、2 つのコロン :: で終わります。
      5. 末尾にスペースを付けずに資格情報 API キーをコピーして貼り付けます。
      6. 「接続」 をクリックします。
      7. irisproject-donotdelete- 始まるバケットを選択します。
      8. 「データ・セット」ドロップダウンから iris_initial.csv を選択します。
      9. 次へ をクリックします。
    3. 「フィーチャー列およびラベル列の選択」 メソッド・ページで、以下のようにします。
      1. デフォルトは正しいものでなければなりません。 ラベル/ターゲットとして指定され、残りはフィーチャーとして指定されます。
      2. 次へ をクリックします。
    4. 「モデル出力の選択」 メソッド・ページで、以下のようにします。
      1. デフォルトは正確でなければなりません。予測の場合は予測、確率の場合は確率です。
      2. 「要約の表示」 をクリックします
    5. 「完了 (Finish)」 をクリックします。
  2. 「モデル出力の詳細 (Model output details)」 タイルの 鉛筆 アイコンをクリックして、ウィザードを開始します。
    1. 「モデル出力詳細の指定」 メソッド・ページで、以下のようにします。
      1. デフォルトは正しいものでなければなりません。
      2. 保存 をクリックします。
  3. 左側のペインで、「評価」の下の「品質」をクリックし、「品質しきい値」 タイルの編集アイコンをクリックします
    1. 「品質しきい値」 ページで、以下の値を設定します。
      1. 正確度 0.98
      2. 次へ をクリックします。
    2. 「サンプル・サイズ」 ページ
      1. 最小サンプル・サイズを 10 に設定
      2. 保存 をクリックします。

左側のペインで、「モデル・サマリーに移動 (Go to model summary)」 をクリックします。

モデル性能モニタリング (旧称: 正確度モニター) は、モデルの結果予測の正確度を調べます。

このチュートリアルでは小さなデータ・セットを使用するので、公平性とドリフトを構成しても影響はありません。

デプロイされたモデルの評価

このセクションでは、各種のインスタンスが 10 個含まれている iris_retrain.csv ファイルをアップロードすることにより、モデルを評価します。 **** iris_retrain.csvをダウンロードします

  1. 「アクション」 をクリックしてから、「今すぐ評価 (Evaluate now)」 をクリックします。
  2. インポート・オプションとして 「CSV ファイルから」 を選択し、 「参照」 をクリックして、 iris_retrain.csv ファイルをアップロードします。
  3. 「アップロードして評価」 をクリックします。
  4. 評価が完了すると、さまざまなメトリックを含むダッシュボードが表示されます。

品質メトリックについて理解するには、品質指標の概要を参照してください。

リソースを削除する

  1. IBM Cloud®「リソース・リスト」にナビゲートします。
  2. 「名前」 の検索ボックスに tutorial と入力します。
  3. このチュートリアルで作成したサービスを削除します。

リソースによっては、即時に削除されずに保持される場合があります (デフォルトでは 7 日間)。 リソースを完全に削除して再利用することも、保存期間内に復元することもできます。 リソースの再利用を使用する方法については、この資料を参照してください。

関連コンテンツ