AIサービスはオンライン推論機能を提供しており、新しいデータに対してリアルタイムで推論を行うことができる。 バッチスコアリングが必要なユースケースの場合、バッチデプロイジョブを実行してAIサービスのデプロイをテストできます。
AIサービス展開のテスト方法
AIサービスはオンライン推論機能を提供しており、新しいデータに対してリアルタイムで推論を行うことができる。 この推論機能は、チャットボット、推薦システム、不正検知システムなど、リアルタイムの予測を必要とするアプリケーションに有用である。
オンライン推論用のAIサービスをテストするには、watsonx.aiユーザーインターフェース、Pythonクライアントライブラリ、またはREST APIを使用できます。 詳しくは、オンライン採点のための推論AIサービス展開をご覧ください。
推論ストリーミングアプリケーション用のAIサービスをテストするには、watsonx.ai PythonクライアントライブラリまたはREST APIを使用できます。 詳しくは、ストリーミング・アプリケーションのための推論AIサービスの展開をご覧ください。
バッチスコアリングが必要なユースケースの場合は、バッチデプロイジョブを作成して実行します。 推論用の REST API エンドポイントには、有効な JSON 入力をペイロードとして提供できます。 詳しくは、AIサービスのバッチデプロイメントのテストを参照。
オンライン採点のためのAIサービス展開のテスト
watsonx.aiユーザーインターフェース、REST API、またはwatsonx.ai Pythonクライアントライブラリを使用して、AIサービスのオンラインデプロイメントを推論することができます。
ユーザー・インターフェースによる推論
モデルスキーマに沿った有効なJSON入力ペイロードを提供することで、AIサービスの推論にユーザーインターフェースを使用できます。 AIサービスの展開を推論するには、以下の手順に従ってください:
配置スペースまたはプロジェクトで、[配置]タブを開き、配置名をクリックします。
テスト]タブをクリックして、プロンプトのテキストを入力し、配置された資産からの応答を取得します。
テストデータをJSON形式で入力し、JSON形式の出力を生成する。
制約事項:AIサービスの導入をテストするために、テキスト形式で入力データを入力することはできません。 テストにはJSON形式を使用する必要があります。
Pythonクライアント・ライブラリによる推論
run_ai_service
関数を使用して、スコアリングのペイロードを提供してAIサービスを実行する:
ai_service_payload = {"query": "testing ai_service generate function"}
client.deployments.run_ai_service(deployment_id, ai_service_payload)
詳細については、AI サービス資産を実行するためwatsonx.ai Pythonクライアントライブラリのドキュメントを/span>のを参照してください。
REST APIによる推論
オンライン採点用のAIサービス(「generate()
機能を含むAIサービス)の推論には、「/ml/v4/deployments/{id_or_name}/ai_service
RESTエンドポイントを使用する:
# Any valid json is accepted in POST request to /ml/v4/deployments/{id_or_name}/ai_service
payload = {
"mode": "json-custom-header",
't1': 12345 ,
't2': ["hello", "wml"],
't3': {
"abc": "def",
"ghi": "jkl"
}
}
response = requests.post(
f'{HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}',
headers=headers,
verify=False,
json=payload
)
print(f'POST {HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}', response.status_code)
from json.decoder import JSONDecodeError
try:
print(json.dumps(response.json(), indent=2))
except JSONDecodeError:
print(f"response text >>\n{response.text}")
print(f"\nThe user customized content-type >> '{response.headers['Content-Type']}'")
ストリーミング・アプリケーションのためのAIサービス展開のテスト
watsonx.aiREST APIまたはwatsonx.ai Pythonクライアント・ライブラリを使用することで、ストリーミング・アプリケーション向けにAIサービスのオンライン・デプロイメントを推論することができます。
Pythonクライアント・ライブラリによる推論
run_ai_service_stream
関数を使用して、スコアリングのペイロードを提供することにより、ストリーミングアプリケーション用のAIサービスを実行する。
ai_service_payload = {"sse": ["Hello", "WatsonX", "!"]}
for data in client.deployments.run_ai_service_stream(deployment_id, ai_service_payload):
print(data)
詳しくは、watsonx.ai Pythonクライアントライブラリ ドキュメント(ストリーミング用AIサービス資産の実行)をご覧ください。
REST APIによる推論
ストリーミングアプリケーション用のAIサービス(「generate_stream()
機能を含むAIサービス)の推論には、「/ml/v4/deployments/{id_or_name}/ai_service_stream
RESTエンドポイントを使用する:
TOKEN=f'{client._get_icptoken()}'
%%writefile payload.json
{
"sse": ["Hello" ,"WatsonX", "!"]
}
!curl -N \
-H "Content-Type: application/json" -H "Authorization: Bearer {TOKEN}" \
{HOST}'/ml/v4/deployments/'{dep_id}'/ai_service_stream?version='{VERSION} \
--data @payload.json
出力
id:1 event: message data:こんにちは
id: 2 event: message data:WatsonX
id:3 event: message data: !
ID4 event: eos
AIサービスのバッチ・デプロイメントのテスト
watsonx.aiユーザーインターフェース、Pythonクライアントライブラリ、または REST API を使用して、AI サービス (「generate_batch()
関数を含む AI サービスアセット) 用のバッチデプロイジョブを作成し、実行できます。
前提条件
AIサービスのバッチデプロイジョブを実行するには、タスク認証情報を設定する必要があります。 詳細については、タスク資格情報の管理を参照のこと。
ユーザーインターフェースのテスト
配置スペースのユーザー インターフェイスから AI サービスのバッチ配置ジョブを作成し、実行する方法については、「配置スペースでジョブを作成する」を参照してください。
Pythonクライアントライブラリを使ったテスト
以下の手順に従って、ジョブを作成して実行し、バッチ配備をテストしてください:
AIサービスのバッチ展開をテストするジョブを作成します:
batch_reference_payload = { "input_data_references": [ { "type": "connection_asset", "connection": {"id": "2d07a6b4-8fa9-43ab-91c8-befcd9dab8d2"}, "location": { "bucket": "wml-v4-fvt-batch-pytorch-connection-input", "file_name": "testing-123", }, } ], "output_data_reference": { "type": "data_asset", "location": {"name": "nb-pytorch_output.zip"}, }, } job_details = client.deployments.create_job(deployment_id, batch_reference_payload) job_uid = client.deployments.get_job_uid(job_details) print("The job id:", job_uid)
仕事のステータスを確認する:
## Get job status client.deployments.get_job_status(job_uid)
詳細情報
親トピック AIサービスの展開