古くなったソフトウェア仕様またはフレームワークの管理

古いソフトウェア仕様またはフレームワークを参照する 資産 を更新する場合は、以下のガイドラインを使用してください。

場合によっては、 資産 の更新はシームレスです。 その他の場合は、 資産 を再トレーニングまたは再デプロイする必要があります。 一般ガイドラインについては、 廃止されたソフトウェア仕様を参照する 資産 のマイグレーション または 廃止されたフレームワーク・バージョンを参照する 資産 のマイグレーション を参照してください。

注:

廃止された Spark 3.3 ソフトウェア仕様を、使用可能なソフトウェア仕様のリストに戻して、それを指す 資産 を作成することができます。 そのためには、管理者がカスタム・イメージを作成する必要があります。

詳しくは、以下のセクションを参照してください。

廃止されたソフトウェア仕様を参照する資産の管理

  • マイグレーション中に、廃止されたソフトウェア仕様を参照する 資産 は、同等のサポート対象のデフォルト・ソフトウェア仕様にマップされます (モデル・タイプがまだサポートされている場合のみ)。
  • マイグレーションされた 資産 の新規 デプロイメント を作成すると、更新されたソフトウェア仕様が 資産 メタデータで使用されます。
  • マイグレーションされた 資産 の既存の デプロイメント は、新しいソフトウェア仕様を使用するように更新されます。 フレームワークまたはライブラリーのバージョンの非互換性が原因で デプロイメント またはスコアリングが失敗した場合は、 ソフトウェア仕様の更新 の手順に従ってください。 問題が解決しない場合は、 機械学習モデルの更新 にリストされている手順に従ってください。

廃止されたフレームワーク・バージョンを参照する資産のマイグレーション

  • マイグレーション中に、モデル・タイプは更新されません。 モデル・タイプの情報は手動で更新する必要があります。 詳しくは、 機械学習モデルの更新 を参照してください。
  • マイグレーション後、既存の デプロイメント は削除され、非推奨のフレームワークの新しい デプロイメント は許可されません。

ソフトウェア仕様の更新

ソフトウェア仕様は、 UI から、または API を使用して更新できます。 詳しくは、以下のセクションを参照してください。

UI からのソフトウェア仕様の更新

  1. デプロイメント・スペース がないことを確認してください。)
  2. i 記号をクリックして、モデルの詳細を確認します。
  3. ドロップダウン・リストを使用して、ソフトウェア仕様を更新します。

以下のイメージ例を参照してください。

UI を使用したソフトウェア仕様の更新

API を使用したソフトウェア仕様の更新

API の Patch コマンドを使用して、ソフトウェア仕様を更新できます。

software_spec フィールドに /software_spec と入力します。 value フィールドには、新規ソフトウェア仕様の ID または名前のいずれかを使用します。

この例を参照してください:

curl -X PATCH '<deployment endpoint url>/ml/v4/models/6f01d512-fe0f-41cd-9a52-1e200c525c84?space_id=f2ddb8ce-7b10-4846-9ab0-62454a449802&project_id=<project_id>&version=<YYYY-MM-DD>' \n--data-raw '[
   {
      "op":"replace",
      "path":"/software_spec",
      "value":{
         "id":"6f01d512-fe0f-41cd-9a52-1e200c525c84"   // or "name":"tensorflow_rt22.1-py3.9"
      }
   }
]'

詳しくは、 パッチ API コマンドを使用した 資産 の更新 を参照してください。

機械学習モデルの更新

以下の手順に従って、非推奨のフレームワークで作成されたモデルを更新します。

オプション 1: 互換性のあるフレームワークを使用してモデルを保存する

  1. Watson Machine Learning Data and AI Common Core API または watsonx.ai Python クライアント・ライブラリーを使用して、モデルをダウンロードします。

    以下の例は、モデルをダウンロードする方法を示しています。

    client.repository.download(<model-id>, filename="xyz.tar.gz")
    
  2. 現行リリースでサポートされているモデル・タイプとバージョンを使用して、モデル・メタデータを編集します。 詳しくは、 デプロイメントのソフトウェア仕様とハードウェア仕様 を参照してください。 デプロイメント

    以下の例は、モデル・メタデータの編集方法を示しています。

    model_metadata = {
       client.repository.ModelMetaNames.NAME: "example model",
       client.repository.ModelMetaNames.DESCRIPTION: "example description",
       client.repository.ModelMetaNames.TYPE: "<new model type>",
       client.repository.ModelMetaNames.SOFTWARE_SPEC_UID:
       client.software_specifications.get_uid_by_name("<new software specification name>")
    }
    
  3. Watson Machine Learning リポジトリーにモデルを保存します。 次の例は、モデルをリポジトリーに保存する方法を示しています。

    model_details = client.repository.store_model(model="xyz.tar.gz", meta_props=model_metadata)
    
  4. モデルをデプロイします。

  5. モデルをスコアリングして予測を生成します。

デプロイメント またはスコアリングが失敗した場合、モデルはモデルの保存に使用された新しいバージョンと互換性がありません。 この場合は、 オプション 2 を使用します。

オプション 2: 互換性のあるフレームワークを使用してモデルをリトレーニングする

  1. 現行バージョンでサポートされているモデル・タイプとバージョンを使用してモデルをリトレーニングしてください。
  2. サポートされていたモデル・タイプとバージョンを使用してモデルを保存します。
  3. モデルをデプロイしてスコアリングします。

API を使用してモデルを更新することもできます。 詳しくは、 パッチ API コマンドを使用した 資産 の更新 を参照してください。

Python 関数の更新

非推奨のフレームワークを使用して作成された Python 関数を更新するには、以下の手順を実行します。

オプション 1: 互換性のあるランタイムまたはソフトウェア仕様を使用して Python 関数を保存します

  1. Python REST API または watsonx.ai Python クライアント・ライブラリーを使用して、 Watson Machine Learning 関数をダウンロードします。
  2. サポートされていたランタイムまたはソフトウェア仕様のバージョンを使用して Python 関数を保存します。 詳しくは、 デプロイメントのソフトウェア仕様とハードウェア仕様 を参照してください。 デプロイメント
  3. Python 関数をデプロイします。
  4. Python 関数をスコアリングして予測を生成します。

Python 関数がスコアリング中に失敗した場合、その関数は、 Python 関数の保存に使用された新しいランタイムまたはソフトウェア仕様バージョンと互換性がありません。 この場合は、 オプション 2 を使用します。

オプション 2: 関数コードを変更し、互換性のあるランタイムまたはソフトウェア仕様を使用してその関数コードを保存する

  1. Python 関数コードが新しいランタイムまたはソフトウェア仕様のバージョンと互換性を持つように、その Python 関数コードを変更します。 場合によっては、 Python 機能コード内にインストールされている従属ライブラリーを更新する必要があります。
  2. 新しいランタイムまたはソフトウェア仕様のバージョンで Python 関数を保存します。
  3. Python 関数をデプロイし、スコアリングします。

API を使用して関数を更新することもできます。 詳しくは、 パッチ API コマンドを使用した 資産 の更新 を参照してください。