0 / 0

オンライン配備の作成

最終更新: 2025年7月04日
オンライン配備の作成

予測または結果をリアルタイムで生成するために、機械学習モデル、 Decision Optimization ソリューション、または Python 関数のオンライン・デプロイメントを作成します。 例えば、銀行の顧客が販売促進に登録するかどうかを予測するようにトレーニングされた分類モデルのオンライン・デプロイメントを作成します。 新規顧客データをデプロイメント・エンドポイントに送信すると、リアルタイムで予測が返されます。

オンライン・デプロイメントのデプロイ可能なアセット・タイプ

以下のタイプの資産に対してオンライン・デプロイメントを作成できます。

制約事項:

R ShinyアプリケーションアセットをデプロイすることはできませんCloud Pak for Data as a Service。

オンライン・デプロイメントを作成する方法

オンライン・デプロイメントは、以下のいずれかの方法で作成できます。

オンラインデプロイメント作成すると、エンドポイント URL が生成されます。 エンドポイント( URL )を使用して、 デプロイメントテストしたり、 デプロイメントアプリケーションに含めることができます。

始める前に

APIキーを生成して、タスクの認証情報を設定する必要があります。 詳細については、タスク資格情報の管理を参照のこと。

デプロイメント・スペースからのオンライン・デプロイメントの作成

デプロイメント・スペースからオンライン・デプロイメントを作成するには、以下の手順を実行します。

  1. スペースにデプロイする資産をプロモートするか追加します。 詳しくは、「 デプロイメント・スペース内の資産」を参照してください。

  2. 「アセット」ページで、アクション・メニューから 「デプロイ」 をクリックします。

  3. 「デプロイメントの詳細」ページで、 「新規デプロイメント」をクリックします。

  4. デプロイメント・タイプとして オンライン を選択してください。

  5. デプロイメントの名前と説明 (オプション) を指定します。

  6. 「サービス名」 フィールドを使用して、デプロイメント ID ではなくデプロイメントの名前を指定します。

    注:
    • サービス名は、名前空間内で固有のものでなければなりません。
    • サービス名には、[a-z,0-9, _] の文字のみを含める必要があり、最大 36 文字の長さでなければなりません。
    • サーブ名は予測の一部としてのみ機能する URL。 場合によっては、デプロイメント ID を使用する必要があります。
  7. オプション: Python 関数、 Tensorflow モデル、または カスタム・ソフトウェア仕様を使用するモデルをデプロイする場合は、 ハードウェア仕様 を選択します。 例えば、 デプロイメントをスケーリングする場合は、ハードウェア・リソースを増やすことができます。

    制約事項:

    デプロイメント・スペースのユーザー・インターフェースからカスタム・ハードウェア仕様を作成したり選択したりすることはできません。 ハードウェア仕様を作成および選択する方法について詳しくは、 デプロイメントのためのハードウェア仕様の管理を参照してください。

  8. オプション: 資産と互換性のある ソフトウェア仕様 を選択します。 機能のソフトウェア仕様のみを選択できます。

  9. 作成 をクリックして、デプロイメントを作成します。

オンライン・デプロイメントのテスト

オンライン・デプロイメントをテストするには、以下の手順を実行します。

  1. スペースの 「デプロイメント」 タブで、デプロイメント名をクリックします。
  2. 「テスト」 タブをクリックしてデータを入力し、デプロイ済み資産から予測またはその他の応答を取得します。

オンライン・デプロイメントのテスト・データを提供する方法は、デプロイした資産のタイプによって異なります。 ほとんどのアセットでは、テスト・データをフォームに直接入力したり、テスト・データを含むファイルをアップロードしたり、テスト・データを JSON コードとして貼り付けたりすることができます。 例えば、分類モデルのテスト・インターフェースを以下に示します。

オンライン・デプロイメントをテストするための入力データの入力

注:

テスト・データを提供する場合:

  • デプロイされたモデルにスキーマが定義されている場合、テスト・データは同じスキーマを使用する必要があります。 例えば、分類モデルの場合、予測列を省略して、同じ列を使用してテスト・データを入力します。

デプロイメントをテストするためのサンプル JSON コード

デプロイメントのペイロードまたは入力データとして JSON コードを送信する場合、入力データはデプロイされた資産の要件と一致する必要があります。

例えば、スキーマを持つモデルの場合、 fields はデータの列ヘッダーと一致する必要があり、 values にはデータが (同じ順序で) 含まれている必要があります。 次の形式を使用します。

{"input_data":[{
        "fields": [<field1>, <field2>, ...],
        "values": [[<value1>, <value2>, ...]]
}]}

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

{"input_data":[{
        "fields": ["PassengerId","Pclass","Name","Sex","Age","SibSp","Parch","Ticket","Fare","Cabin","Embarked"],
        "values": [[1,3,"Braund, Mr. Owen Harris",0,22,1,0,"A/5 21171",7.25,null,"S"]]
}]}
注:

JSON 入力のフォーマット設定の場合:

  • すべてのストリングは二重引用符で囲まれます。 辞書の Python 表記は似ていますが、単一引用符で囲まれた Python ストリングは JSON データでは受け入れられません。
  • 欠落している値を nullで示します。

オンライン・デプロイメントのエンドポイントの取得

次の手順に従って、オンラインデプロイメントエンドポイント URL を取得し、アプリケーションからデプロイメントアクセスできるようにします:

  1. スペースの 「デプロイメント」 タブで、デプロイメント名をクリックします。
  2. 「API リファレンス」 タブで、プライベート・エンドポイントとパブリック・エンドポイントのリンクを見つけます。 また、 Pythonや Java などのさまざまなプログラミング言語でコード・スニペットを検索して、エンドポイントの詳細をアプリケーションに組み込むこともできます。
注:

オンライン・デプロイメントの作成時に 「サービス名」 を追加した場合は、2 つのエンドポイント URL が表示されます。 最初の URL にはデプロイメント IDが、2番目の URL にはサービング名が含まれています。 これらの URL のいずれかをデプロイメントで使用できます。

オンライン・デプロイメントの詳細へのアクセス

デプロイメントの詳細を確認または更新するには、以下の手順を実行します。

  1. スペースの 「デプロイメント」 タブで、デプロイメント名をクリックします。
  2. 「デプロイメントの詳細」 タブをクリックして、オンライン・デプロイメントに関連する情報にアクセスします。

ノートブックを使用したプログラムによるオンライン・デプロイメントの作成

以下を使用して、オンライン・デプロイメントをプログラマチックに作成できます。

watsonx.aiRuntimePythonクライアントを使用してデプロイメントを作成・管理する方法を示したサンプル・ノートブックにアクセスするには、機械学習のサンプルと例をご覧ください。

プログラムによるオンライン・デプロイメントのテスト

オンライン・デプロイメントをプログラマチックにテストするには、デプロイされた資産の既存のモデル要件のスキーマに一致するペイロードを準備する必要があります。 例えば、分類モデルの入力データ (ペイロード) は、デプロイされたモデルのスキーマと一致する必要があります。 分類モデルの以下のサンプルは、モデル・スキーマに完全に一致する列と値を持つテスト・データを提供します。

model_details = client.repository.get_details("<model_id>")  # retrieves details and includes schema
columns_in_schema = []
for i in range(0, len(model_details['entity']['schemas']['input'][0].get('fields'))):
    columns_in_schema.append(model_details['entity']['schemas']['input'][0].get('fields')[i]['name'])

X = X[columns_in_schema] # where X is a pandas dataframe that contains values to be scored
#(...)
scoring_values = X.values.tolist()
array_of_input_fields = X.columns.tolist()
payload_scoring = {"input_data": [{"fields": [array_of_input_fields],"values": scoring_values}]}

プログラムによるオンライン・デプロイメントのエンドポイントの取得

ノートブックからオンラインデプロイメントエンドポイント URL を取得するには、次の手順に従います:

  1. Pythonクライアントメソッド'client.deployments.list()を呼び出して、デプロイメントをリストする。
  2. デプロイメントの行を見つけます。 デプロイメントエンドポイント URL は url 列に表示されます。

もっと見る

バッチ・デプロイメントの作成方法については、 バッチ・デプロイメントの作成を参照してください。

デプロイメント・ジョブを管理する方法、およびオンライン・デプロイメントを更新、スケーリング、または削除する方法については、 資産の管理を参照してください。

デプロイメント エンドポイントの詳細については、「エンドポイント URL」を参照してください。

親トピック: 予測デプロイメントの管理