0 / 0
資料の 英語版 に戻る
デプロイメント・スペースへのモデルのインポート
最終更新: 2024年11月28日
デプロイメント・スペースへのモデルのインポート

IBM watsonx.aiRuntime の外部でトレーニングされた機械学習モデルをインポートして、モデルをデプロイしてテストできるようにします。 モデルのインポートに使用できるモデル・フレームワークを確認します。

ここで、 トレーニング済みモデルをインポートする は以下を意味します:

  1. 学習済みモデルをwatsonx.aiRuntime リポジトリに保存する
  2. オプション:ストアドモデルをwatsonx.aiRuntime サービスにデプロイする

また、 リポジトリー は、 Cloud Object Storage バケットを意味します。 詳しくは、 デプロイメント・スペースの作成を参照してください。

以下の方法でモデルをインポートできます。

詳しくは、以下を参照してください。

Python クライアントを使用してプログラムでモデルを追加する方法の例については、このノートブックを参照してください。

REST APIを使用してプログラムでモデルを追加する方法の例については、以下のノートブックを参照してください。

フレームワーク・タイプごとにモデルをインポートするために使用可能な方法

この表は、フレームワークの種類ごとに、watsonx.aiRuntime にモデルをインポートする方法を示したものです。

フレームワーク・タイプごとのモデルのインポート・オプション
import オプション Spark MLlib Scikit-learn XGBoost TensorFlow PyTorch
モデル・オブジェクトのインポート
ファイルへのパスを使用したモデルのインポート
ディレクトリーへのパスを使用したモデルのインポート

UI を使用したモデルの追加

注:

PMML 形式でモデルをインポートする場合は、モデルの .xml ファイルを直接インポートできます。

UI を使用してモデルをインポートするには、以下のようにします。

  1. watsonx.aiRuntime のスペースのAssetsタブで、Import assets をクリックします。
  2. 「ローカル・ファイル」 に移動し、 「モデル」を選択します。
  3. インポートするモデル・ファイルを選択し、 「インポート」をクリックします。

インポート・メカニズムは、 .xml ファイル内のバージョン・ストリングに基づいて、一致するモデル・タイプとソフトウェア仕様を自動的に選択します。

モデル・オブジェクトのインポート

注:

このインポート方式は、限られた数の ML フレームワークによってサポートされます。 詳しくは、 フレームワーク・タイプごとにモデルをインポートするために使用可能な方法を参照してください。

モデル・オブジェクトをインポートするには:

  1. モデルがリモート・ロケーションにある場合は、 リモート・ロケーションに保管されているモデルのダウンロードに従ってください。
  2. モデルオブジェクトをwatsonx.aiRuntime リポジトリに保存します。 詳しくは、 watsonx.aiRuntime リポジトリにモデルを保存するをご覧ください。

ファイルへのパスを使用したモデルのインポート

注:

このインポート方式は、限られた数の ML フレームワークによってサポートされます。 詳しくは、 フレームワーク・タイプごとにモデルをインポートするために使用可能な方法を参照してください。

ファイルへのパスを使用してモデルをインポートするには、以下のようにします。

  1. モデルがリモート・ロケーションにある場合は、 リモート・ロケーションに保管されているモデルのダウンロード に従ってダウンロードします。

  2. モデルがローカルに配置されている場合は、特定のディレクトリーに置いてください:

      !cp <saved model> <target directory>
      !cd <target directory>
    
  3. scikit-learnXGBoostTensorflow、および PyTorch の各モデルでは、ダウンロードしたファイルが .tar.gz アーカイブではない場合、アーカイブを作成します:

      !tar -zcvf <saved model>.tar.gz <saved model>
    

    モデル・ファイルは、ディレクトリーの最上位フォルダーになければなりません。以下に例を示します。

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  4. 保存したファイルへのパスを使用して、モデルファイルをwatsonx.aiRuntime リポジトリに保存します。 詳しくは、 watsonx.aiRuntime リポジトリにモデルを保存するをご覧ください。

ディレクトリーへのパスを使用したモデルのインポート

注:

このインポート方式は、限られた数の ML フレームワークによってサポートされます。 詳しくは、 フレームワーク・タイプごとにモデルをインポートするために使用可能な方法を参照してください。

ディレクトリーへのパスを使用してモデルをインポートするには、以下のようにします。

  1. モデルがリモート・ロケーションにある場合は、 リモート・ロケーションに保存されているモデルのダウンロードを参照してください。

  2. モデルがローカルに配置されている場合は、特定のディレクトリーに置いてください:

    !cp <saved model> <target directory>
    !cd <target directory>
    

    scikit-learnXGBoostTensorflow、および PyTorch モデルの場合、モデル・ファイルはディレクトリーの最上位フォルダーになければなりません。以下に例を示します。

    assets/
    <saved model>
    variables/
    variables/variables.data-00000-of-00001
    variables/variables.index
    
  3. モデルファイルをwatsonx.aiRuntime リポジトリに保存するには、ディレクトリパスを使用します。 詳しくは、 watsonx.aiRuntime リポジトリにモデルを保存するをご覧ください。

リモート・ロケーションに保存されているモデルのダウンロード

以下のサンプル・コードに従って、リモート・ロケーションからモデルをダウンロードします:

import os
from wget import download

target_dir = '<target directory name>'
if not os.path.isdir(target_dir):
    os.mkdir(target_dir)
filename = os.path.join(target_dir, '<model name>')
if not os.path.isfile(filename):
    filename = download('<url to model>', out = target_dir)

モデルをインポートする際の考慮事項

特定のモデル・タイプのインポートについて詳しくは、以下を参照してください。

watsonx.aiRuntime で使用できるフレームワークの詳細については、サポートされているフレームワークをご覧ください。

PMML 形式で保存されたモデル

  • PMML からインポートされるモデルに使用可能なデプロイメント・タイプは、オンライン・デプロイメントのみです。
  • PMML ファイルのファイル拡張子は .xml でなければなりません。
  • PMML モデルを SPSS ストリーム・フローで使用することはできません。
  • PMML ファイルにはプロローグを含めることはできません。 モデルの保存時に使用しているライブラリーによっては、デフォルトでプロローグがファイルの先頭に追加される場合があります。 例えば、ファイルに spark-mllib-lr-model-pmml.xmlなどのプロローグ・ストリングが含まれている場合は、PMML ファイルをデプロイメント・スペースにインポートする前に、そのストリングを削除してください。

モデルの保存時に使用しているライブラリーによっては、以下の例のように、デフォルトでプロローグがファイルの先頭に追加される場合があります。

::::::::::::::
spark-mllib-lr-model-pmml.xml
::::::::::::::

PMML ファイルをwatsonx.aiRuntime にインポートする前に、このプロログを削除する必要があります。

Spark MLlib モデル

  • 使用できるのは、分類モデルと回帰モデルのみです。
  • カスタム変換プログラム、ユーザー定義関数、およびクラスは使用できません。

Scikit-learn モデル

  • .pkl および .pickle は、使用可能なインポート形式です。
  • モデルをシリアライズまたはピックするには、 joblib パッケージを使用します。
  • 使用できるのは、分類モデルと回帰モデルのみです。
  • predict() API の Pandas データ・フレーム入力タイプは使用できません。
  • scikit-learn モデルに使用できるデプロイメント・タイプは、オンライン・デプロイメントのみです。

XGBoost モデル

  • .pkl および .pickle は、使用可能なインポート形式です。
  • モデルをシリアライズまたはピックするには、 joblib パッケージを使用します。
  • 使用できるのは、分類モデルと回帰モデルのみです。
  • predict() API の Pandas データ・フレーム入力タイプは使用できません。
  • XGBoost モデルで使用可能なデプロイメント・タイプは、オンライン・デプロイメントのみです。

TensorFlow モデル

  • .pb.h5、および .hdf5 は、使用可能なインポート形式です。
  • TensorFlow モデルを保存またはシリアライズするには、 tf.saved_model.save() メソッドを使用します。
  • tf.estimator は使用できません。
  • TensorFlow モデルで使用可能なデプロイメント・タイプは、オンライン・デプロイメントとバッチ・デプロイメントのみです。

PyTorch モデル

  • PyTorch モデルに使用可能なデプロイメント・タイプは、オンライン・デプロイメントのみです。

  • Pytorch モデルをwatsonx.aiRuntime にインポートするには、事前に '.onnxフォーマットにエクスポートしておく必要があります。 このコードを参照してください。

    torch.onnx.export(<model object>, <prediction/training input data>, "<serialized model>.onnx", verbose=True, input_names=<input tensor names>, output_names=<output tensor names>)
    

watsonx.aiランタイムリポジトリにモデルを保存する

このコードを使用して、モデルをwatsonx.aiRuntime リポジトリに保存します:

from ibm_watson_machine_learning import APIClient

client = APIClient(<your credentials>)
sw_spec_uid = client.software_specifications.get_uid_by_name("<software specification name>")

meta_props = {
    client.repository.ModelMetaNames.NAME: "<your model name>",
    client.repository.ModelMetaNames.SOFTWARE_SPEC_UID: sw_spec_uid,
    client.repository.ModelMetaNames.TYPE: "<model type>"}

client.repository.store_model(model=<your model>, meta_props=meta_props)

注記:

  • 使用されるモデル・フレームワークに応じて、 <your model> は、実際のモデル・オブジェクト、保存されたモデル・ファイルへの絶対パス、またはモデル・ファイルが配置されているディレクトリーへのパスになります。 詳しくは、 フレームワーク・タイプごとにモデルをインポートするために使用可能な方法を参照してください。

  • <software specification name>として使用する使用可能なソフトウェア仕様のリストについては、 client.software_specifications.list() メソッドを使用してください。

  • model_typeとして使用できるモデル・タイプのリストについては、 デプロイメントのためのソフトウェア仕様とハードウェア仕様を参照してください。

  • Pytorch モデルを '.onnxフォーマットにエクスポートするときは、'keep_initializers_as_inputs=Trueフラグを指定し、'opset_versionを 9 に設定しますwatsonx.aiランタイムのデプロイメントでは、'caffe2ONNX ランタイムを使用します。)

    torch.onnx.export(net, x, 'lin_reg1.onnx', verbose=True, keep_initializers_as_inputs=True, opset_version=9)
    

親トピック: デプロイメント・スペース内のアセット

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細