0 / 0
資料の 英語版 に戻る
オンライン配備の作成
最終更新: 2024年11月28日
オンライン配備の作成

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

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

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

制約事項:

R Shinyアプリケーションアセットをデプロイすることはできませんwatsonx.ai。

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

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

オンライン・デプロイメントを作成すると、エンドポイント 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"]]
}]}

ただし、デプロイされたプロンプト・テンプレートの入力データを入力するために、構造は、モデルにプロンプトを出すための入力と出力をミラーリングします。 例えば、以下のコード・スニペットを参照してください。

{
    "parameters": {
        "prompt_variables": {
            "input": "input text goes here."
        }
    }
}
注:

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」を参照してください。

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

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