From 669cc76911d27945b3a26607d0ae0db6cdfa2a96 Mon Sep 17 00:00:00 2001 From: rpancham Date: Sat, 21 Sep 2024 00:04:23 +0530 Subject: [PATCH 1/2] add automation tests for keras grpc --- .../kserve-triton-keras-gRPC-input.json | 1 + .../kserve-triton-keras-gRPC-output.json | 1 + .../triton_keras_gRPC_servingruntime.yaml | 63 +++++++++++++++++++ ods_ci/tests/Resources/OCP.resource | 6 +- ...1009__model_serving_triton_on_kserve.robot | 60 ++++++++++++++++-- 5 files changed, 122 insertions(+), 9 deletions(-) create mode 100644 ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json create mode 100644 ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json create mode 100644 ods_ci/tests/Resources/Files/triton/triton_keras_gRPC_servingruntime.yaml diff --git a/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json b/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json new file mode 100644 index 000000000..8fdd88be7 --- /dev/null +++ b/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json @@ -0,0 +1 @@ +{"id":"test1","model_name":"resnet50","model_version":"1","inputs":[{"name":"keras_tensor","datatype":"FP32","shape":[1,224,224,3]}],"outputs":[{"name":"output_0"}],"raw_input_contents":["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"]} \ No newline at end of file diff --git a/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json b/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json new file mode 100644 index 000000000..04338013c --- /dev/null +++ b/ods_ci/tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json @@ -0,0 +1 @@ +{"outputs":[{"shape":["1","1000"],"parameters":{},"name":"output_0","datatype":"FP32","contents":null}],"raw_output_contents":["AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="],"parameters":{},"model_name":"resnet50","model_version":"1","id":"test1"} \ No newline at end of file diff --git a/ods_ci/tests/Resources/Files/triton/triton_keras_gRPC_servingruntime.yaml b/ods_ci/tests/Resources/Files/triton/triton_keras_gRPC_servingruntime.yaml new file mode 100644 index 000000000..9709ee579 --- /dev/null +++ b/ods_ci/tests/Resources/Files/triton/triton_keras_gRPC_servingruntime.yaml @@ -0,0 +1,63 @@ +apiVersion: serving.kserve.io/v1alpha1 +kind: ServingRuntime +metadata: + name: triton-keras-grpc +spec: + annotations: + prometheus.kserve.io/path: /metrics + prometheus.kserve.io/port: "8002" + containers: + - args: + - tritonserver + - --model-store=/mnt/models + - --grpc-port=9000 + - --http-port=8080 + - --allow-grpc=true + - --allow-http=true + image: nvcr.io/nvidia/tritonserver:23.05-py3 + name: kserve-container + ports: + - containerPort: 9000 + name: h2c + protocol: TCP + volumeMounts: + - mountPath: /dev/shm + name: shm + resources: + limits: + cpu: "1" + memory: 2Gi + requests: + cpu: "1" + memory: 2Gi + protocolVersions: + - v2 + - grpc-v2 + supportedModelFormats: + - autoSelect: true + name: tensorrt + priority: 1 + version: "8" + - autoSelect: true + name: tensorflow + priority: 1 + version: "1" + - autoSelect: true + name: tensorflow + priority: 1 + version: "2" + - autoSelect: true + name: onnx + priority: 1 + version: "1" + - name: pytorch + version: "1" + - autoSelect: true + name: triton + priority: 1 + version: "2" +volumes: + - emptyDir: null + medium: Memory + sizeLimit: 2Gi + name: shm \ No newline at end of file diff --git a/ods_ci/tests/Resources/OCP.resource b/ods_ci/tests/Resources/OCP.resource index f2bcc1b88..c1382ebab 100644 --- a/ods_ci/tests/Resources/OCP.resource +++ b/ods_ci/tests/Resources/OCP.resource @@ -111,7 +111,7 @@ Wait For Pods To Be Ready ... This keyword can also check for the expected number of the pod replicas using `${exp_replicas}` ... argument. [Arguments] ${label_selector} ${namespace} ${timeout}=600s ${exp_replicas}=${NONE} - Wait Until Keyword Succeeds ${timeout} 3s + Wait Until Keyword Succeeds ${timeout} 15s ... Check If Pod Exists namespace=${namespace} label_selector=${label_selector} ... status_only=${FALSE} ${rc} ${out}= Run And Return Rc And Output @@ -147,7 +147,7 @@ Wait For Deployment Replica To Be Ready Wait For Pods To Succeed [Arguments] ${label_selector} ${namespace} ${timeout}=300s ${exp_replicas}=${NONE} - Wait Until Keyword Succeeds ${timeout} 3s + Wait Until Keyword Succeeds ${timeout} 15s ... Check If Pod Exists namespace=${namespace} label_selector=${label_selector} ... status_only=${FALSE} ${rc} ${out}= Run And Return Rc And Output @@ -164,7 +164,7 @@ Wait For Pods To Succeed Wait For Pods To Be Terminated [Arguments] ${label_selector} ${namespace} ${timeout}=180s - Wait Until Keyword Succeeds ${timeout} 3s + Wait Until Keyword Succeeds ${timeout} 15s ... Check If Pod Exists namespace=${namespace} label_selector=${label_selector} ... status_only=${FALSE} ${rc} ${out}= Run And Return Rc And Output diff --git a/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot b/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot index e449146f6..4aeb19230 100644 --- a/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot +++ b/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot @@ -46,11 +46,13 @@ ${TENSORFLOW_GRPC_RUNTIME_NAME}= triton-tensorflow-grpc ${TENSORFLOW_RUNTIME_FILEPATH}= ${RESOURCES_DIRPATH}/triton_tensorflow_gRPC_servingruntime.yaml ${EXPECTED_INFERENCE_GRPC_OUTPUT_FILE_TENSORFLOW}= tests/Resources/Files/triton/kserve-triton-inception_graphdef-gRPC-output.json ${KERAS_RUNTIME_NAME}= triton-keras-rest -${KERAS_MODEL_NAME}= resnet50 ${KERAS_RUNTIME_FILEPATH}= ${RESOURCES_DIRPATH}/triton_keras_rest_servingruntime.yaml ${INFERENCE_REST_INPUT_KERAS}= @tests/Resources/Files/triton/kserve-triton-keras-rest-input.json ${EXPECTED_INFERENCE_REST_OUTPUT_FILE_KERAS}= tests/Resources/Files/triton/kserve-triton-keras-rest-output.json - +${KERAS_RUNTIME_NAME_GRPC}= triton-keras-grpc +${KERAS_GRPC_RUNTIME_FILEPATH}= ${RESOURCES_DIRPATH}/triton_keras_gRPC_servingruntime.yaml +${INFERENCE_GRPC_INPUT_KERAS}= @tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json +${EXPECTED_INFERENCE_GRPC_OUTPUT_FILE_KERAS}= tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json *** Test Cases *** @@ -208,6 +210,52 @@ Test Tensorflow Model Grpc Inference Via UI (Triton on Kserve) # robocop: off ... AND ... Delete Serving Runtime Template From CLI displayed_name=triton-tensorflow-grpc +Test KERAS Model Grpc Inference Via UI (Triton on Kserve) # robocop: off=too-long-test-case + [Documentation] Test the deployment of an keras model in Kserve using Triton + [Tags] Sanity RHOAIENG-10327 + Open Data Science Projects Home Page + Create Data Science Project title=${PRJ_TITLE} description=${PRJ_DESCRIPTION} + ... existing_project=${FALSE} + Open Dashboard Settings settings_page=Serving runtimes + Upload Serving Runtime Template runtime_filepath=${KERAS_GRPC_RUNTIME_FILEPATH} + ... serving_platform=single runtime_protocol=gRPC + Serving Runtime Template Should Be Listed displayed_name=${KERAS_RUNTIME_NAME_GRPC} + ... serving_platform=single + Recreate S3 Data Connection project_title=${PRJ_TITLE} dc_name=model-serving-connection + ... aws_access_key=${S3.AWS_ACCESS_KEY_ID} aws_secret_access=${S3.AWS_SECRET_ACCESS_KEY} + ... aws_bucket_name=ods-ci-s3 + Deploy Kserve Model Via UI model_name=${PYTORCH_MODEL_NAME} serving_runtime=triton-keras-grpc + ... data_connection=model-serving-connection path=tritonkeras/model_repository/ model_framework=tensorflow - 2 + ... token=${TRUE} + Wait For Pods To Be Ready label_selector=serving.kserve.io/inferenceservice=${PYTORCH_MODEL_NAME} + ... namespace=${PRJ_TITLE} + ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS}= Load Json File file_path=${EXPECTED_INFERENCE_GRPC_OUTPUT_FILE_KERAS} + ... as_string=${TRUE} + ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS}= Load Json String ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS} + ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS}= Evaluate json.dumps(${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS}) + Log ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS} + Open Model Serving Home Page + ${host_url}= Get Model Route Via UI model_name=${PYTORCH_MODEL_NAME} + ${host}= Evaluate re.search(r"${PATTERN}", r"${host_url}").group(1) re + Log ${host} + ${token}= Get Access Token Via UI single_model=${TRUE} model_name=resnet50 project_name=${PRJ_TITLE} + ${inference_output}= Query Model With GRPCURL host=${host} port=443 + ... endpoint=inference.GRPCInferenceService/ModelInfer + ... json_body=@ input_filepath=${INFERENCE_GRPC_INPUT_KERAS} + ... insecure=${True} protobuf_file=${PROTOBUFF_FILE} json_header="Authorization: Bearer ${token}" + Log ${inference_output} + ${inference_output}= Evaluate json.dumps(${inference_output}) + Log ${inference_output} + ${result} ${list}= Inference Comparison ${EXPECTED_INFERENCE_GRPC_OUTPUT_KERAS} ${inference_output} + Log ${result} + Log ${list} + [Teardown] Run Keywords Get Kserve Events And Logs model_name=${PYTORCH_MODEL_NAME} + ... project_title=${PRJ_TITLE} + ... AND + ... Clean All Models Of Current User + ... AND + ... Delete Serving Runtime Template From CLI displayed_name=triton-keras-grpc + Test KERAS Model Inference Via UI(Triton on Kserve) [Documentation] Test the deployment of an keras model in Kserve using Triton [Tags] Sanity RHOAIENG-10328 @@ -223,17 +271,17 @@ Test KERAS Model Inference Via UI(Triton on Kserve) Recreate S3 Data Connection project_title=${PRJ_TITLE} dc_name=model-serving-connection ... aws_access_key=${S3.AWS_ACCESS_KEY_ID} aws_secret_access=${S3.AWS_SECRET_ACCESS_KEY} ... aws_bucket_name=ods-ci-s3 - Deploy Kserve Model Via UI model_name=${KERAS_MODEL_NAME} serving_runtime=triton-keras-rest + Deploy Kserve Model Via UI model_name=${PYTORCH_MODEL_NAME} serving_runtime=triton-keras-rest ... data_connection=model-serving-connection path=tritonkeras/model_repository/ model_framework=tensorflow - 2 - Wait For Pods To Be Ready label_selector=serving.kserve.io/inferenceservice=${KERAS_MODEL_NAME} + Wait For Pods To Be Ready label_selector=serving.kserve.io/inferenceservice=${PYTORCH_MODEL_NAME} ... namespace=${PRJ_TITLE} timeout=180s ${EXPECTED_INFERENCE_REST_OUTPUT_KERAS}= Load Json File ... file_path=${EXPECTED_INFERENCE_REST_OUTPUT_FILE_KERAS} as_string=${TRUE} Log ${EXPECTED_INFERENCE_REST_OUTPUT_KERAS} Run Keyword And Continue On Failure Verify Model Inference With Retries - ... ${KERAS_MODEL_NAME} ${INFERENCE_REST_INPUT_KERAS} ${EXPECTED_INFERENCE_REST_OUTPUT_KERAS} + ... ${PYTORCH_MODEL_NAME} ${INFERENCE_REST_INPUT_KERAS} ${EXPECTED_INFERENCE_REST_OUTPUT_KERAS} ... token_auth=${FALSE} project_title=${PRJ_TITLE} - [Teardown] Run Keywords Get Kserve Events And Logs model_name=${KERAS_MODEL_NAME} + [Teardown] Run Keywords Get Kserve Events And Logs model_name=${PYTORCH_MODEL_NAME} ... project_title=${PRJ_TITLE} ... AND ... Clean All Models Of Current User From d1144aaff65d9d3c5448b8876ad8b3e32b58c041 Mon Sep 17 00:00:00 2001 From: rpancham Date: Thu, 26 Sep 2024 20:12:53 +0530 Subject: [PATCH 2/2] remove @ from file path --- .../1009__model_serving_triton_on_kserve.robot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot b/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot index 4aeb19230..e84727d5b 100644 --- a/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot +++ b/ods_ci/tests/Tests/1000__model_serving/1009__model_serving_triton_on_kserve/1009__model_serving_triton_on_kserve.robot @@ -51,7 +51,7 @@ ${INFERENCE_REST_INPUT_KERAS}= @tests/Resources/Files/triton/kserve-triton-ke ${EXPECTED_INFERENCE_REST_OUTPUT_FILE_KERAS}= tests/Resources/Files/triton/kserve-triton-keras-rest-output.json ${KERAS_RUNTIME_NAME_GRPC}= triton-keras-grpc ${KERAS_GRPC_RUNTIME_FILEPATH}= ${RESOURCES_DIRPATH}/triton_keras_gRPC_servingruntime.yaml -${INFERENCE_GRPC_INPUT_KERAS}= @tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json +${INFERENCE_GRPC_INPUT_KERAS}= tests/Resources/Files/triton/kserve-triton-keras-gRPC-input.json ${EXPECTED_INFERENCE_GRPC_OUTPUT_FILE_KERAS}= tests/Resources/Files/triton/kserve-triton-keras-gRPC-output.json