ユースケースに応じて、デプロイメントスペースからAIサービス資産のオンラインデプロイメントまたはバッチデプロイメントを作成できます。 watsonx.aiユーザーインターフェース、REST API、またはPythonクライアントライブラリを使用して、AI サービスをデプロイします。
AIサービスの展開の種類
ユースケースに応じて、AIサービス資産をオンラインまたはバッチデプロイメントとしてデプロイできます。 AIサービスで使用される機能に基づいて、展開タイプを選択します。
- オンライン採点(AIサービスに「
generate()
関数が含まれている)またはストリーミングアプリケーション(AIサービスに「generate_stream()
関数が含まれている)用のAIサービス資産のオンライン配置を作成する必要があります。 - バッチスコアリングアプリケーション用のAIサービスアセットのバッチデプロイメントを作成する必要があります(AIサービスには「
generate_batch()
関数が含まれています)。
前提条件
AIサービスをデプロイするためのタスク認証情報を設定する必要があります。 詳細については、タスク資格情報の追加を参照のこと。
配備スペースにAIサービス資産を宣伝しなければならない。
ユーザーインターフェイスでAIサービスを展開する
デプロイメントスペースのユーザーインターフェイスから、AIサービスアセットをデプロイすることができます。
AIサービスのオンライン展開
次の手順に従って、配置スペースのユーザー インターフェイスから AI サービス アセットのオンライン配置を作成します:
デプロイメント スペースから[Assets]タブを開きます。
アセットリストのAIサービスアセットでMenuアイコンをクリックし、Deployを選択します。
展開のタイプとしてOnlineを選択します。
配置の名前を入力し、オプションでサービング名、説明、タグを入力します。
「作成」 をクリックします。
AIサービスの一括デプロイの作成
次の手順に従って、配置スペースのユーザー インターフェイスから AI サービス アセットのバッチ配置を作成します:
デプロイメント スペースから[Assets]タブを開きます。
アセットリストのAIサービスアセットでMenuアイコンをクリックし、Deployを選択します。
配置タイプとしてバッチを選択します。
配置の名前を入力し、オプションでサービング名、説明、タグを入力します。
ハードウェアの仕様を選択します:
- エクストラ・スモール:1CPU、4GB RAM
- 小型:2CPU、8GB RAM
- ミディアム:4CPU、16GB RAM
- ラージ:8CPU、32GB RAM
- 特大サイズ:16CPU、64GB RAM
「作成」 をクリックします。
Pythonクライアント・ライブラリを使ったAIサービスの展開
Pythonクライアントライブラリを使用して、AIサービス資産のオンラインまたはバッチデプロイメントを作成できます。
オンライン配備の作成
次の例は、watsonx.ai Pythonクライアントライブラリを使用して、AI サービスのオンラインデプロイメントを作成する方法を示しています:
deployment_details = client.deployments.create(
artifact_id=ai_service_id,
meta_props={
client.deployments.ConfigurationMetaNames.NAME: "ai-service - online test",
client.deployments.ConfigurationMetaNames.ONLINE: {},
client.deployments.ConfigurationMetaNames.HARDWARE_SPEC: {
"id": client.hardware_specifications.get_id_by_name("XS")
},
},
)
deployment_id = client.deployments.get_uid(deployment_details)
print("The deployment id:", deployment_id)
バッチ展開の作成
次の例は、watsonx.ai Pythonクライアントライブラリを使用して、AI サービスのバッチデプロイメントを作成する方法を示しています:
deployment_details = client.deployments.create(
artifact_id=ai_service_id,
meta_props={
client.deployments.ConfigurationMetaNames.NAME: f"ai-service - batch",
client.deployments.ConfigurationMetaNames.BATCH: {},
client.deployments.ConfigurationMetaNames.HARDWARE_SPEC: {
"id": client.hardware_specifications.get_id_by_name("XS")
},
},
)
deployment_id = client.deployments.get_uid(deployment_details)
print("The batch deployment id:", deployment_id)
REST APIを使ったAIサービスの展開
/ml/v4/deployments
watsonx.aiREST API エンドポイントを使用して、AI サービス資産のオンラインまたはバッチデプロイメントを作成できます。
オンライン配備の作成
次の例では、REST APIを使用してAIサービスのオンラインデプロイメントを作成する方法を示します:
# POST /ml/v4/deployments
response = requests.post(
f'{HOST}/ml/v4/deployments?version={VERSION}',
headers=headers,
verify=False,
json={
"space_id": space_id,
"name": "genai flow online",
"custom": {
"key1": "value1",
"key2": "value2",
"model": "meta-llama/llama-3-8b-instruct"
},
"asset": {
"id": asset_id
},
"online": {}
}
)
バッチ展開の作成
次の例では、REST APIを使用してAIサービスのバッチデプロイメントを作成する方法を示します:
response = requests.post(
f'{HOST}/ml/v4/deployments?version={VERSION}',
headers=headers,
verify=False,
json={
"hardware_spec": {
"id": "........",
"num_nodes": 1
},
"space_id": space_id,
"name": "ai service batch dep",
"custom": {
"key1": "value1",
"key2": "value2",
"model": "meta-llama/llama-3-8b-instruct"
},
"asset": {
"id": asset_id
},
"batch": {}
}
)
print(f'POST {HOST}/ml/v4/deployments?version={VERSION}', response.status_code)
print(json.dumps(response.json(), indent=2))
dep_id = response.json()["metadata"]["id"]
print(f"{dep_id=}")
詳細情報
親トピック ダイレクトコーディングによるAIサービスの展開