From 93f7dc58d7bdd3fba5e74c1c81034d5ec94a920c Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 11:48:53 -0500 Subject: [PATCH 01/23] Imported trained model spec and model spec --- python/kfserving/kfserving/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/python/kfserving/kfserving/__init__.py b/python/kfserving/kfserving/__init__.py index eb3ecdb0f7..a8bce03ef2 100644 --- a/python/kfserving/kfserving/__init__.py +++ b/python/kfserving/kfserving/__init__.py @@ -33,6 +33,12 @@ from kfserving.exceptions import ApiKeyError from kfserving.exceptions import ApiException +# import v1alpha1 models into kfserving packages +from kfserving.models.v1alpha1_model_spec import V1alpha1ModelSpec +from kfserving.models.v1alpha1_trained_model import V1alpha1TrainedModel +from kfserving.models.v1alpha1_trained_model_list import V1alpha1TrainedModelList +from kfserving.models.v1alpha1_trained_model_spec import V1alpha1TrainedModelSpec + # import v1alpha2 models into kfserving package from kfserving.models.knative_addressable import KnativeAddressable from kfserving.models.knative_condition import KnativeCondition @@ -82,7 +88,6 @@ from kfserving.models.v1beta1_inference_services_config import V1beta1InferenceServicesConfig from kfserving.models.v1beta1_ingress_config import V1beta1IngressConfig from kfserving.models.v1beta1_logger_spec import V1beta1LoggerSpec -from kfserving.models.v1beta1_model_spec import V1beta1ModelSpec from kfserving.models.v1beta1_onnx_runtime_spec import V1beta1ONNXRuntimeSpec from kfserving.models.v1beta1_pod_spec import V1beta1PodSpec from kfserving.models.v1beta1_predictor_config import V1beta1PredictorConfig @@ -98,6 +103,4 @@ from kfserving.models.v1beta1_transformers_config import V1beta1TransformersConfig from kfserving.models.v1beta1_triton_spec import V1beta1TritonSpec from kfserving.models.v1beta1_xg_boost_spec import V1beta1XGBoostSpec -from kfserving.models.v1alpha1_trained_model import V1alpha1TrainedModel -from kfserving.models.v1alpha1_trained_model_list import V1alpha1TrainedModelList from kfserving.models.v1beta1_light_gbm_spec import V1beta1LightGBMSpec From cd4f9c73f274ba3a5296e04d003cc5e68490f4d9 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 12:00:00 -0500 Subject: [PATCH 02/23] Update description: trained model -> TrainedModel --- pkg/apis/serving/v1alpha1/trained_model.go | 4 ++-- pkg/apis/serving/v1beta1/openapi_generated.go | 4 ++-- pkg/apis/serving/v1beta1/swagger.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/apis/serving/v1alpha1/trained_model.go b/pkg/apis/serving/v1alpha1/trained_model.go index 1feaa44389..0ce9794233 100644 --- a/pkg/apis/serving/v1alpha1/trained_model.go +++ b/pkg/apis/serving/v1alpha1/trained_model.go @@ -46,7 +46,7 @@ type TrainedModelList struct { Items []TrainedModel `json:"items"` } -// TrainedModelSpec defines the trained model spec +// TrainedModelSpec defines the TrainedModel spec // +k8s:openapi-gen=true type TrainedModelSpec struct { // parent inference service to deploy to @@ -57,7 +57,7 @@ type TrainedModelSpec struct { Model ModelSpec `json:"model"` } -// ModelSpec describes a trained model +// ModelSpec describes a TrainedModel // +k8s:openapi-gen=true type ModelSpec struct { // Storage URI for the model repository diff --git a/pkg/apis/serving/v1beta1/openapi_generated.go b/pkg/apis/serving/v1beta1/openapi_generated.go index 072c4b057c..4f4486fe00 100644 --- a/pkg/apis/serving/v1beta1/openapi_generated.go +++ b/pkg/apis/serving/v1beta1/openapi_generated.go @@ -77,7 +77,7 @@ func schema_pkg_apis_serving_v1alpha1_ModelSpec(ref common.ReferenceCallback) co return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ModelSpec describes a trained model", + Description: "ModelSpec describes a TrainedModel", Type: []string{"object"}, Properties: map[string]spec.Schema{ "storageUri": { @@ -209,7 +209,7 @@ func schema_pkg_apis_serving_v1alpha1_TrainedModelSpec(ref common.ReferenceCallb return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "TrainedModelSpec defines the trained model spec", + Description: "TrainedModelSpec defines the TrainedModel spec", Type: []string{"object"}, Properties: map[string]spec.Schema{ "inferenceService": { diff --git a/pkg/apis/serving/v1beta1/swagger.json b/pkg/apis/serving/v1beta1/swagger.json index 66d1d5a4a8..ba40639766 100644 --- a/pkg/apis/serving/v1beta1/swagger.json +++ b/pkg/apis/serving/v1beta1/swagger.json @@ -8,7 +8,7 @@ "paths": {}, "definitions": { "v1alpha1.ModelSpec": { - "description": "ModelSpec describes a trained model", + "description": "ModelSpec describes a TrainedModel", "type": "object", "required": [ "storageUri", @@ -80,7 +80,7 @@ } }, "v1alpha1.TrainedModelSpec": { - "description": "TrainedModelSpec defines the trained model spec", + "description": "TrainedModelSpec defines the TrainedModel spec", "type": "object", "required": [ "inferenceService", From edaf7d05c9864fc4460fd5f16f1382277617ef14 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 12:00:56 -0500 Subject: [PATCH 03/23] Considers model name in predict query --- test/e2e/common/utils.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/e2e/common/utils.py b/test/e2e/common/utils.py index 648313abbe..5b90485823 100644 --- a/test/e2e/common/utils.py +++ b/test/e2e/common/utils.py @@ -28,7 +28,8 @@ KFSERVING_TEST_NAMESPACE = "kfserving-ci-e2e-test" -def predict(service_name, input_json, protocol_version="v1", version=constants.KFSERVING_V1BETA1_VERSION): +def predict(service_name, input_json, protocol_version="v1", + version=constants.KFSERVING_V1BETA1_VERSION, model_name=None): isvc = KFServing.get( service_name, namespace=KFSERVING_TEST_NAMESPACE, @@ -40,9 +41,12 @@ def predict(service_name, input_json, protocol_version="v1", version=constants.K host = urlparse(isvc["status"]["url"]).netloc headers = {"Host": host} - url = f"http://{cluster_ip}/v1/models/{service_name}:predict" + if model_name is None: + model_name = service_name + + url = f"http://{cluster_ip}/v1/models/{model_name}:predict" if protocol_version == "v2": - url = f"http://{cluster_ip}/v2/models/{service_name}/infer" + url = f"http://{cluster_ip}/v2/models/{model_name}/infer" with open(input_json) as json_file: data = json.load(json_file) From 9b100a94319299f25e319a15384cd25c07535118 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 12:01:10 -0500 Subject: [PATCH 04/23] Multi model serving test for sklearn and xgboost --- .../e2e/predictor/test_multi_model_serving.py | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 test/e2e/predictor/test_multi_model_serving.py diff --git a/test/e2e/predictor/test_multi_model_serving.py b/test/e2e/predictor/test_multi_model_serving.py new file mode 100644 index 0000000000..c1ea59c537 --- /dev/null +++ b/test/e2e/predictor/test_multi_model_serving.py @@ -0,0 +1,222 @@ +# Copyright 2021 kubeflow.org. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +from kubernetes import client +from kfserving import ( + constants, + KFServingClient, + V1beta1PredictorSpec, + V1alpha1TrainedModel, + V1alpha2EndpointSpec, + V1beta1InferenceService, + V1beta1InferenceServiceSpec, + V1alpha1ModelSpec, + V1alpha1TrainedModelSpec, + V1beta1SKLearnSpec, + V1beta1XGBoostSpec, + V1alpha2TritonSpec, +) + +from ..common.utils import predict, get_cluster_ip +from ..common.utils import KFSERVING_TEST_NAMESPACE + +api_v1alpha1_version = constants.KFSERVING_GROUP + "/v1alpha1" +api_v1beta1_version = constants.KFSERVING_GROUP + "/" + constants.KFSERVING_V1BETA1_VERSION + +KFServing = KFServingClient(config_file=os.environ.get("KUBECONFIG", "~/.kube/config")) + +def test_mms_sklearn_kfserving(): + # Define an inference service + predictor = V1beta1PredictorSpec( + min_replicas=1, + sklearn=V1beta1SKLearnSpec( + protocol_version="v1", + resources=client.V1ResourceRequirements( + requests={"cpu": "100m", "memory": "256Mi"}, + limits={"cpu": "100m", "memory": "256Mi"}, + ) + ) + ) + + service_name = "isvc-sklearn" + isvc = V1beta1InferenceService( + api_version=api_v1beta1_version, + kind=constants.KFSERVING_KIND, + metadata=client.V1ObjectMeta( + name=service_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1beta1InferenceServiceSpec(predictor=predictor) + ) + + # Define trained models + model1_spec = V1alpha1ModelSpec( + storage_uri=f"gs://kfserving-samples/models/sklearn/iris", + memory='256Mi', + framework="sklearn" + ) + + model2_spec = V1alpha1ModelSpec( + storage_uri=f"gs://kfserving-samples/models/sklearn/iris", + memory='256Mi', + framework="sklearn" + ) + + model1_name = "model1-sklearn" + model2_name = "model2-sklearn" + model1 = V1alpha1TrainedModel( + api_version=api_v1alpha1_version, + kind=constants.KFSERVING_KIND_TRAINEDMODEL, + metadata=client.V1ObjectMeta( + name=model1_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1alpha1TrainedModelSpec( + inference_service=service_name, + model=model1_spec + ) + ) + + model2 = V1alpha1TrainedModel( + api_version=api_v1alpha1_version, + kind=constants.KFSERVING_KIND_TRAINEDMODEL, + metadata=client.V1ObjectMeta( + name=model2_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1alpha1TrainedModelSpec( + inference_service=service_name, + model=model2_spec + ) + ) + + # Create an instance of inference service with isvc + KFServing.create(isvc, version=constants.KFSERVING_V1BETA1_VERSION) + KFServing.wait_isvc_ready(service_name, namespace=KFSERVING_TEST_NAMESPACE) + + # Create instances of trained models using model1 and model2 + KFServing.create(model1, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, + plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + KFServing.create(model2, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, + plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + + cluster_ip = get_cluster_ip() + + KFServing.wait_model_ready(service_name, model1_name, isvc_namespace=KFSERVING_TEST_NAMESPACE, + isvc_version=constants.KFSERVING_V1BETA1_VERSION, cluster_ip=cluster_ip) + KFServing.wait_model_ready(service_name, model2_name, isvc_namespace=KFSERVING_TEST_NAMESPACE, + isvc_version=constants.KFSERVING_V1BETA1_VERSION, cluster_ip=cluster_ip) + + # Call predict on the two models + res_model1 = predict(service_name, "./data/iris_input.json", model_name=model1_name) + res_model2 = predict(service_name, "./data/iris_input.json", model_name=model2_name) + + assert res_model1["predictions"] == [1,1] + assert res_model2["predictions"] == [1,1] + + # Clean up inference service + KFServing.delete(service_name, KFSERVING_TEST_NAMESPACE) + +def test_mms_xgboost_kfserving(): + # Define an inference service + predictor = V1beta1PredictorSpec( + min_replicas=1, + xgboost=V1beta1XGBoostSpec( + protocol_version="v1", + resources=client.V1ResourceRequirements( + requests={"cpu": "100m", "memory": "256Mi"}, + limits={"cpu": "100m", "memory": "256Mi"}, + ) + ) + ) + + service_name = "isvc-xgboost" + isvc = V1beta1InferenceService( + api_version=api_v1beta1_version, + kind=constants.KFSERVING_KIND, + metadata=client.V1ObjectMeta( + name=service_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1beta1InferenceServiceSpec(predictor=predictor) + ) + + # Define trained models + model1_spec = V1alpha1ModelSpec( + storage_uri="gs://kfserving-samples/models/xgboost/iris", + memory='256Mi', + framework="xgboost" + ) + + model2_spec = V1alpha1ModelSpec( + storage_uri="gs://kfserving-samples/models/xgboost/iris", + memory='256Mi', + framework="xgboost" + ) + + model1_name = "model1-xgboost" + model2_name = "model2-xgboost" + model1 = V1alpha1TrainedModel( + api_version=api_v1alpha1_version, + kind=constants.KFSERVING_KIND_TRAINEDMODEL, + metadata=client.V1ObjectMeta( + name=model1_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1alpha1TrainedModelSpec( + inference_service=service_name, + model=model1_spec + ) + ) + + model2 = V1alpha1TrainedModel( + api_version=api_v1alpha1_version, + kind=constants.KFSERVING_KIND_TRAINEDMODEL, + metadata=client.V1ObjectMeta( + name=model2_name, + namespace=KFSERVING_TEST_NAMESPACE + ), + spec=V1alpha1TrainedModelSpec( + inference_service=service_name, + model=model2_spec + ) + ) + + # Create an instance of inference service with isvc + KFServing.create(isvc, version=constants.KFSERVING_V1BETA1_VERSION) + KFServing.wait_isvc_ready(service_name, namespace=KFSERVING_TEST_NAMESPACE) + + # Create instances of trained models using model1 and model2 + KFServing.create(model1, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, + plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + KFServing.create(model2, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, + plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + + cluster_ip = get_cluster_ip() + + KFServing.wait_model_ready(service_name, model1_name, isvc_namespace=KFSERVING_TEST_NAMESPACE, + isvc_version=constants.KFSERVING_V1BETA1_VERSION, cluster_ip=cluster_ip) + KFServing.wait_model_ready(service_name, model2_name, isvc_namespace=KFSERVING_TEST_NAMESPACE, + isvc_version=constants.KFSERVING_V1BETA1_VERSION, cluster_ip=cluster_ip) + + # Call predict on the two models + res_model1 = predict(service_name, "./data/iris_input.json", model_name=model1_name) + res_model2 = predict(service_name, "./data/iris_input.json", model_name=model2_name) + + assert res_model1["predictions"] == [1,1] + assert res_model2["predictions"] == [1,1] + + # Clean up inference service + KFServing.delete(service_name, KFSERVING_TEST_NAMESPACE) From a0e58a088af84fb69f197720d274c48b49dce596 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 14:47:19 -0500 Subject: [PATCH 05/23] Constants for v1alpha versions --- python/kfserving/kfserving/constants/constants.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/python/kfserving/kfserving/constants/constants.py b/python/kfserving/kfserving/constants/constants.py index cc04deb6a3..d2e235fe22 100644 --- a/python/kfserving/kfserving/constants/constants.py +++ b/python/kfserving/kfserving/constants/constants.py @@ -18,12 +18,16 @@ KFSERVING_GROUP = 'serving.kubeflow.org' KFSERVING_KIND = 'InferenceService' KFSERVING_PLURAL = 'inferenceservices' +KFSERVING_KIND_TRAINEDMODEL = 'TrainedModel' +KFSERVING_PLURAL_TRAINEDMODEL = 'trainedmodels' KFSERVING_VERSION = os.environ.get('KFSERVING_VERSION', 'v1alpha2') KFSERVING_V1BETA1_VERSION = 'v1beta1' KFSERVING_V1ALPHA2_VERSION = 'v1alpha2' +KFSERVING_V1ALPHA1_VERSION = "v1alpha1" KFSERVING_API_VERSION = KFSERVING_GROUP + '/' + KFSERVING_VERSION KFSERVING_V1BETA1 = KFSERVING_GROUP + '/' + KFSERVING_V1BETA1_VERSION KFSERVING_V1ALPHA2 = KFSERVING_GROUP + '/' + KFSERVING_V1ALPHA2_VERSION +KFSERVING_V1ALPHA1 = KFSERVING_GROUP + '/' + KFSERVING_V1ALPHA1_VERSION KFSERVING_LOGLEVEL = os.environ.get('KFSERVING_LOGLEVEL', 'INFO').upper() From 98ea9b97f151d2680293d7a6317e8835c372579f Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 18:13:53 -0500 Subject: [PATCH 06/23] Provider client is generated when downloading --- pkg/agent/downloader.go | 1 + pkg/agent/storage/utils.go | 64 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/pkg/agent/downloader.go b/pkg/agent/downloader.go index ed52e4d3f3..a81d98258c 100644 --- a/pkg/agent/downloader.go +++ b/pkg/agent/downloader.go @@ -67,6 +67,7 @@ func (d *Downloader) download(modelName string, storageUri string) error { if err != nil { return errors.Wrapf(err, "unsupported protocol") } + storage.CreateProviderIfNotExists(d.Providers, protocol) provider, ok := d.Providers[protocol] if !ok { return errors.Wrapf(err, "protocol manager for %s is not initialized", protocol) diff --git a/pkg/agent/storage/utils.go b/pkg/agent/storage/utils.go index 06dc0c4fa4..3907f75146 100644 --- a/pkg/agent/storage/utils.go +++ b/pkg/agent/storage/utils.go @@ -17,9 +17,20 @@ limitations under the License. package storage import ( + gstorage "cloud.google.com/go/storage" + "context" "fmt" + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/aws/aws-sdk-go/service/s3/s3manager" + "github.com/googleapis/google-cloud-go-testing/storage/stiface" + gcscredential "github.com/kubeflow/kfserving/pkg/credentials/gcs" + s3credential "github.com/kubeflow/kfserving/pkg/credentials/s3" + "google.golang.org/api/option" "os" "path/filepath" + "strings" ) func FileExists(filename string) bool { @@ -56,3 +67,56 @@ func RemoveDir(dir string) error { } return nil } + +func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protocol) { + if _, ok := providers[protocol]; ok { + return + } + + switch protocol { + case GCS: + var gcs_client *gstorage.Client + var err error + + ctx := context.Background() + if _, ok := os.LookupEnv(gcscredential.GCSCredentialEnvKey); ok { + // GCS relies on environment variable GOOGLE_APPLICATION_CREDENTIALS to point to the service-account-key + // If set, it will be automatically be picked up by the client. + gcs_client, err = gstorage.NewClient(ctx) + } else { + gcs_client, err = gstorage.NewClient(ctx, option.WithoutAuthentication()) + } + + if err != nil { + panic(err) + } + + providers[GCS] = &GCSProvider{ + Client: stiface.AdaptClient(gcs_client), + } + case S3: + if endpoint, ok := os.LookupEnv(s3credential.AWSEndpointUrl); ok { + region, _ := os.LookupEnv(s3credential.AWSRegion) + useVirtualBucketString, ok := os.LookupEnv(s3credential.S3UseVirtualBucket) + useVirtualBucket := true + if ok && strings.ToLower(useVirtualBucketString) == "false" { + useVirtualBucket = false + } + sess, err := session.NewSession(&aws.Config{ + Endpoint: aws.String(endpoint), + Region: aws.String(region), + S3ForcePathStyle: aws.Bool(!useVirtualBucket)}, + ) + if err != nil { + panic(err) + } + sessionClient := s3.New(sess) + providers[S3] = &S3Provider{ + Client: sessionClient, + Downloader: s3manager.NewDownloaderWithClient(sessionClient, func(d *s3manager.Downloader) { + }), + } + } + + } +} From 8056ce8eafbeec2ddda04137178312fec36bca6e Mon Sep 17 00:00:00 2001 From: achoo30 Date: Mon, 18 Jan 2021 18:24:08 -0500 Subject: [PATCH 07/23] New method to create/deploy trained model object --- go.mod | 3 +- .../kfserving/api/kf_serving_client.py | 63 +++++++++++++++++++ .../e2e/predictor/test_multi_model_serving.py | 29 ++++----- 3 files changed, 77 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 9ad10c636e..326217cfe7 100644 --- a/go.mod +++ b/go.mod @@ -18,8 +18,8 @@ require ( github.com/google/uuid v1.1.1 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 github.com/json-iterator/go v1.1.10 - github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a // indirect github.com/kelseyhightower/envconfig v1.4.0 + github.com/mattbaird/jsonpatch v0.0.0-20171005235357-81af80346b1a // indirect github.com/onsi/ginkgo v1.14.0 github.com/onsi/gomega v1.10.2 github.com/pkg/errors v0.9.1 @@ -39,6 +39,7 @@ require ( istio.io/gogo-genproto v0.0.0-20191029161641-f7d19ec0141d // indirect k8s.io/api v0.18.8 k8s.io/apimachinery v0.18.8 + k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible k8s.io/klog v1.0.0 k8s.io/kube-openapi v0.0.0-20200410145947-bcb3869e6f29 knative.dev/networking v0.0.0-20200922180040-a71b40c69b15 diff --git a/python/kfserving/kfserving/api/kf_serving_client.py b/python/kfserving/kfserving/api/kf_serving_client.py index ec306fffaa..ac3a0c8ce6 100644 --- a/python/kfserving/kfserving/api/kf_serving_client.py +++ b/python/kfserving/kfserving/api/kf_serving_client.py @@ -13,8 +13,10 @@ # limitations under the License. import time +import requests import logging from kubernetes import client, config +from urllib.parse import urlparse from ..constants import constants from ..utils import utils @@ -358,3 +360,64 @@ def wait_isvc_ready(self, name, namespace=None, # pylint:disable=too-many-argum current_isvc = self.get(name, namespace=namespace, version=version) raise RuntimeError("Timeout to start the InferenceService {}. \ The InferenceService is as following: {}".format(name, current_isvc)) + + def create_trained_model(self, trainedmodel, namespace): + """ + Create a trained model + :param trainedmodel: trainedmodel object + :param namespace: defaults to current or default namespace + :return: + """ + + if trainedmodel.api_version == constants.KFSERVING_V1ALPHA2: + logging.warning("The version v1alpha2 will be deprecated from KFServing 0.6 release.") + version = trainedmodel.api_version.split("/")[1] + + try: + outputs = self.api_instance.create_namespaced_custom_object( + constants.KFSERVING_GROUP, + version, + namespace, + constants.KFSERVING_PLURAL_TRAINEDMODEL, + trainedmodel) + except client.rest.ApiException as e: + raise RuntimeError( + "Exception when calling CustomObjectsApi->create_namespaced_custom_object:\ + %s\n" % e) + + def wait_model_ready(self, service_name, model_name, isvc_namespace=None, # pylint:disable=too-many-arguments + isvc_version=constants.KFSERVING_V1BETA1_VERSION, + cluster_ip=None, + timeout_seconds=600, + polling_interval=10): + """ + Waiting for model to be ready to service, print out trained model if timeout. + :param service_name: inference service name + :param model_name: trained model name + :param isvc_namespace: defaults to current or default namespace of inference service + :param isvc_version: api group version of inference service + :param cluster_ip: ip of the kuberenetes cluster + :param timeout_seconds: timeout seconds for waiting, default to 600s. + Print out the InferenceService if timeout. + :param polling_interval: The time interval to poll status + :return: + """ + isvc = self.get( + service_name, + namespace=isvc_namespace, + version=isvc_version, + ) + + host = urlparse(isvc["status"]["url"]).netloc + headers = {"Host": host} + + for _ in range(round(timeout_seconds/polling_interval)): + time.sleep(polling_interval) + # Check model health API + url = f"http://{cluster_ip}/v1/models/{model_name}" + response = requests.get(url, headers=headers).status_code + if response == 200: + return + + raise RuntimeError(f"InferenceService ({service_name}) has not loaded the \ + model ({model_name}) before the timeout.") \ No newline at end of file diff --git a/test/e2e/predictor/test_multi_model_serving.py b/test/e2e/predictor/test_multi_model_serving.py index c1ea59c537..558414324e 100644 --- a/test/e2e/predictor/test_multi_model_serving.py +++ b/test/e2e/predictor/test_multi_model_serving.py @@ -32,7 +32,6 @@ from ..common.utils import predict, get_cluster_ip from ..common.utils import KFSERVING_TEST_NAMESPACE -api_v1alpha1_version = constants.KFSERVING_GROUP + "/v1alpha1" api_v1beta1_version = constants.KFSERVING_GROUP + "/" + constants.KFSERVING_V1BETA1_VERSION KFServing = KFServingClient(config_file=os.environ.get("KUBECONFIG", "~/.kube/config")) @@ -50,7 +49,7 @@ def test_mms_sklearn_kfserving(): ) ) - service_name = "isvc-sklearn" + service_name = "isvc-sklearn-mms" isvc = V1beta1InferenceService( api_version=api_v1beta1_version, kind=constants.KFSERVING_KIND, @@ -77,7 +76,7 @@ def test_mms_sklearn_kfserving(): model1_name = "model1-sklearn" model2_name = "model2-sklearn" model1 = V1alpha1TrainedModel( - api_version=api_v1alpha1_version, + api_version=constants.KFSERVING_V1ALPHA1, kind=constants.KFSERVING_KIND_TRAINEDMODEL, metadata=client.V1ObjectMeta( name=model1_name, @@ -90,7 +89,7 @@ def test_mms_sklearn_kfserving(): ) model2 = V1alpha1TrainedModel( - api_version=api_v1alpha1_version, + api_version=constants.KFSERVING_V1ALPHA1, kind=constants.KFSERVING_KIND_TRAINEDMODEL, metadata=client.V1ObjectMeta( name=model2_name, @@ -103,14 +102,12 @@ def test_mms_sklearn_kfserving(): ) # Create an instance of inference service with isvc - KFServing.create(isvc, version=constants.KFSERVING_V1BETA1_VERSION) + KFServing.create(isvc) KFServing.wait_isvc_ready(service_name, namespace=KFSERVING_TEST_NAMESPACE) # Create instances of trained models using model1 and model2 - KFServing.create(model1, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, - plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) - KFServing.create(model2, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, - plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + KFServing.create_trained_model(model1, KFSERVING_TEST_NAMESPACE) + KFServing.create_trained_model(model2, KFSERVING_TEST_NAMESPACE) cluster_ip = get_cluster_ip() @@ -142,7 +139,7 @@ def test_mms_xgboost_kfserving(): ) ) - service_name = "isvc-xgboost" + service_name = "isvc-xgboost-mms" isvc = V1beta1InferenceService( api_version=api_v1beta1_version, kind=constants.KFSERVING_KIND, @@ -169,7 +166,7 @@ def test_mms_xgboost_kfserving(): model1_name = "model1-xgboost" model2_name = "model2-xgboost" model1 = V1alpha1TrainedModel( - api_version=api_v1alpha1_version, + api_version=constants.KFSERVING_V1ALPHA1, kind=constants.KFSERVING_KIND_TRAINEDMODEL, metadata=client.V1ObjectMeta( name=model1_name, @@ -182,7 +179,7 @@ def test_mms_xgboost_kfserving(): ) model2 = V1alpha1TrainedModel( - api_version=api_v1alpha1_version, + api_version=constants.KFSERVING_V1ALPHA1, kind=constants.KFSERVING_KIND_TRAINEDMODEL, metadata=client.V1ObjectMeta( name=model2_name, @@ -195,14 +192,12 @@ def test_mms_xgboost_kfserving(): ) # Create an instance of inference service with isvc - KFServing.create(isvc, version=constants.KFSERVING_V1BETA1_VERSION) + KFServing.create(isvc) KFServing.wait_isvc_ready(service_name, namespace=KFSERVING_TEST_NAMESPACE) # Create instances of trained models using model1 and model2 - KFServing.create(model1, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, - plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) - KFServing.create(model2, namespace=KFSERVING_TEST_NAMESPACE, version=constants.KFSERVING_V1ALPHA1_VERSION, - plural=constants.KFSERVING_PLURAL_TRAINEDMODEL) + KFServing.create_trained_model(model1, KFSERVING_TEST_NAMESPACE) + KFServing.create_trained_model(model2, KFSERVING_TEST_NAMESPACE) cluster_ip = get_cluster_ip() From 3c39c54f357557b7b6ff997c44d0183bf84aa9e2 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 10:18:21 -0500 Subject: [PATCH 08/23] Example on running multi model serving --- docs/MULTIMODELSERVING_GUIDE.md | 109 ++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 docs/MULTIMODELSERVING_GUIDE.md diff --git a/docs/MULTIMODELSERVING_GUIDE.md b/docs/MULTIMODELSERVING_GUIDE.md new file mode 100644 index 0000000000..b2f229e9b4 --- /dev/null +++ b/docs/MULTIMODELSERVING_GUIDE.md @@ -0,0 +1,109 @@ +# Multi Model Serving + +### Example + +Firstly, you should have kfserving installed. Check [this](https://github.com/kubeflow/kfserving#install-kfserving) out if you have not installed kfserving. + +Copy the content below into a file `inferenceservice.yaml`. + +```yaml +apiVersion: "serving.kubeflow.org/v1beta1" +kind: "InferenceService" +metadata: + name: "sklearn-iris-example" +spec: + predictor: + minReplicas: 1 + sklearn: + protocolVersion: v1 + name: "sklearn-iris-predictor" + resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 100m + memory: 256Mi +``` +Run the command `kubectl apply -f inferenceservice.yaml` to create the inference service. Check if the service is properly deployed by running `k get inferenceservice`. The output should be similar to the below. +```yaml +NAME URL READY PREV LATEST PREVROLLEDOUTREVISION LATESTREADYREVISION AGE +sklearn-iris-example http://sklearn-iris-example.default.example.com True 100 sklearn-iris-example-predictor-default-kgtql 22s +``` + +Next, create another file for the trained models `trainedmodels.yaml` and copy the content below. +```yaml +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model1" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" +--- +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model2" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" +``` +Run the command `kubectl apply -f trainedmodels.yaml` to create the trained models. Run `k get trainedmodel` to view the resource. + +Run `kubectl logs -c agent` to check if the models are properly loaded. You should get the same output as below. Run `k get po` to get the name of the predictor pod. The name should be similar to sklearn-iris-example-predictor-default-xxxxx-deployment-xxxxx. + +```yaml +{"level":"info","ts":"2021-01-19T15:04:53.503Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model1"} +{"level":"info","ts":"2021-01-19T15:04:53.503Z","caller":"agent/puller.go:114","msg":"completion event for model model1, in flight ops 0"} +{"level":"info","ts":"2021-01-19T15:04:53.599Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model2"} +{"level":"info","ts":"2021-01-19T15:04:53.599Z","caller":"agent/puller.go:114","msg":"completion event for model model2, in flight ops 0"} +``` + +Run the command `kubectl get cm modelconfig-sklearn-iris-example-0 -oyaml` to get the configmap. The output should be similar to the below. +```yaml +apiVersion: v1 +data: + models.json: '[{"modelName":"model1","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}},{"modelName":"model2","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}}]' +kind: ConfigMap +metadata: + creationTimestamp: "2021-01-19T15:02:09Z" + name: modelconfig-sklearn-iris-example-0 + namespace: default + ownerReferences: + - apiVersion: serving.kubeflow.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: InferenceService + name: sklearn-iris-example + uid: 6ff54022-4287-4000-b96e-97abcc13c8f2 + resourceVersion: "1553737" + selfLink: /api/v1/namespaces/default/configmaps/modelconfig-sklearn-iris-example-0 + uid: 0756af76-413c-4c86-a071-f2413989fe11 +``` + +The models will be ready to serve once they are successfully loaded. + +For KIND/minikube: +1. Run `kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80` +2. In a different window, run: + 1. `export INGRESS_HOST=localhost` + 2. `export INGRESS_PORT=8080` + 3. `export SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris-example -n default -o jsonpath='{.status.url}' | cut -d "/" -f 3)` +3. Go to the root directory of `kfserving` +4. Query the two models by running: + 1. `curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model1:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json` + 2. `curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model2:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json` + +The outputs should be +```yaml +{"predictions": [1, 1]}* Closing connection 0 +``` + +To remove the resources, run the command `kubectl delete inferenceservice sklearn-iris-example`. This will delete the inference service and result in the trained models being deleted. \ No newline at end of file From a174505085f01564ae257dedd2cd6778c20e2250 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 11:05:40 -0500 Subject: [PATCH 09/23] Snake case variable -> Camel case --- pkg/agent/storage/utils.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/agent/storage/utils.go b/pkg/agent/storage/utils.go index 3907f75146..12b9112532 100644 --- a/pkg/agent/storage/utils.go +++ b/pkg/agent/storage/utils.go @@ -75,16 +75,16 @@ func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protoco switch protocol { case GCS: - var gcs_client *gstorage.Client + var gcsClient *gstorage.Client var err error ctx := context.Background() if _, ok := os.LookupEnv(gcscredential.GCSCredentialEnvKey); ok { // GCS relies on environment variable GOOGLE_APPLICATION_CREDENTIALS to point to the service-account-key // If set, it will be automatically be picked up by the client. - gcs_client, err = gstorage.NewClient(ctx) + gcsClient, err = gstorage.NewClient(ctx) } else { - gcs_client, err = gstorage.NewClient(ctx, option.WithoutAuthentication()) + gcsClient, err = gstorage.NewClient(ctx, option.WithoutAuthentication()) } if err != nil { @@ -92,7 +92,7 @@ func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protoco } providers[GCS] = &GCSProvider{ - Client: stiface.AdaptClient(gcs_client), + Client: stiface.AdaptClient(gcsClient), } case S3: if endpoint, ok := os.LookupEnv(s3credential.AWSEndpointUrl); ok { From c125a2fa32f634d2f29ad1fac93869b09906c6b8 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 12:19:07 -0500 Subject: [PATCH 10/23] Using new version constants --- test/e2e/predictor/test_multi_model_serving.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/e2e/predictor/test_multi_model_serving.py b/test/e2e/predictor/test_multi_model_serving.py index 558414324e..1a74d17372 100644 --- a/test/e2e/predictor/test_multi_model_serving.py +++ b/test/e2e/predictor/test_multi_model_serving.py @@ -32,8 +32,6 @@ from ..common.utils import predict, get_cluster_ip from ..common.utils import KFSERVING_TEST_NAMESPACE -api_v1beta1_version = constants.KFSERVING_GROUP + "/" + constants.KFSERVING_V1BETA1_VERSION - KFServing = KFServingClient(config_file=os.environ.get("KUBECONFIG", "~/.kube/config")) def test_mms_sklearn_kfserving(): @@ -51,7 +49,7 @@ def test_mms_sklearn_kfserving(): service_name = "isvc-sklearn-mms" isvc = V1beta1InferenceService( - api_version=api_v1beta1_version, + api_version=constants.KFSERVING_V1BETA1, kind=constants.KFSERVING_KIND, metadata=client.V1ObjectMeta( name=service_name, @@ -141,7 +139,7 @@ def test_mms_xgboost_kfserving(): service_name = "isvc-xgboost-mms" isvc = V1beta1InferenceService( - api_version=api_v1beta1_version, + api_version=constants.KFSERVING_V1BETA1, kind=constants.KFSERVING_KIND, metadata=client.V1ObjectMeta( name=service_name, From 154424aaa889eca746c2b9b06828ad7f32e4fd4d Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 12:20:04 -0500 Subject: [PATCH 11/23] CreateProviderIfNotExists will return provider and error --- pkg/agent/storage/utils.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/agent/storage/utils.go b/pkg/agent/storage/utils.go index 12b9112532..31e1cef0e7 100644 --- a/pkg/agent/storage/utils.go +++ b/pkg/agent/storage/utils.go @@ -68,9 +68,9 @@ func RemoveDir(dir string) error { return nil } -func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protocol) { - if _, ok := providers[protocol]; ok { - return +func GetProvider(providers map[Protocol]Provider, protocol Protocol) (Provider, error) { + if provider, ok := providers[protocol]; ok { + return provider, nil } switch protocol { @@ -88,7 +88,7 @@ func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protoco } if err != nil { - panic(err) + return nil, err } providers[GCS] = &GCSProvider{ @@ -108,7 +108,7 @@ func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protoco S3ForcePathStyle: aws.Bool(!useVirtualBucket)}, ) if err != nil { - panic(err) + return nil, err } sessionClient := s3.New(sess) providers[S3] = &S3Provider{ @@ -119,4 +119,6 @@ func CreateProviderIfNotExists(providers map[Protocol]Provider, protocol Protoco } } + + return providers[protocol], nil } From 9b6d50bb3358c6587eea365c8cb05693a018d5ba Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 12:20:55 -0500 Subject: [PATCH 12/23] Updated to use GetProvider --- pkg/agent/downloader.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/agent/downloader.go b/pkg/agent/downloader.go index a81d98258c..464a00eb42 100644 --- a/pkg/agent/downloader.go +++ b/pkg/agent/downloader.go @@ -67,10 +67,9 @@ func (d *Downloader) download(modelName string, storageUri string) error { if err != nil { return errors.Wrapf(err, "unsupported protocol") } - storage.CreateProviderIfNotExists(d.Providers, protocol) - provider, ok := d.Providers[protocol] - if !ok { - return errors.Wrapf(err, "protocol manager for %s is not initialized", protocol) + provider, err := storage.GetProvider(d.Providers, protocol) + if err != nil { + return errors.Wrapf(err, "unable to create or get provider for protocol %s", protocol) } if err := provider.DownloadModel(d.ModelDir, modelName, storageUri); err != nil { return errors.Wrapf(err, "failed to download model") From b736afeda43377ceff954ef88e5ff88637a96254 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 18:30:57 -0500 Subject: [PATCH 13/23] Corrected the file path --- pkg/agent/watcher_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/agent/watcher_test.go b/pkg/agent/watcher_test.go index 1a1d6c7699..d378962721 100644 --- a/pkg/agent/watcher_test.go +++ b/pkg/agent/watcher_test.go @@ -321,7 +321,7 @@ var _ = Describe("Watcher", func() { logger.Printf("Creating mock GCS Client") ctx := context.Background() client := mocks.NewMockClient() - cl := storage.GCSProvider { + cl := storage.GCSProvider{ Client: client, } @@ -340,7 +340,7 @@ var _ = Describe("Watcher", func() { err := cl.DownloadModel(modelDir, modelName, modelStorageURI) Expect(err).To(BeNil()) - testFile := filepath.Join(modelDir, "model1/testModel1") + testFile := filepath.Join(modelDir, "model1") dat, err := ioutil.ReadFile(testFile) Expect(err).To(BeNil()) Expect(string(dat)).To(Equal(modelContents)) @@ -354,7 +354,7 @@ var _ = Describe("Watcher", func() { logger.Printf("Creating mock GCS Client") ctx := context.Background() client := mocks.NewMockClient() - cl := storage.GCSProvider { + cl := storage.GCSProvider{ Client: client, } @@ -381,7 +381,7 @@ var _ = Describe("Watcher", func() { logger.Printf("Creating mock GCS Client") ctx := context.Background() client := mocks.NewMockClient() - cl := storage.GCSProvider { + cl := storage.GCSProvider{ Client: client, } @@ -432,7 +432,7 @@ var _ = Describe("Watcher", func() { // Creating GCS mock client and populating buckets ctx := context.Background() client := mocks.NewMockClient() - cl := storage.GCSProvider { + cl := storage.GCSProvider{ Client: client, } bkt := client.Bucket("testBucket") From a626c22e58e28f46172c7f7daf65861c8d0c52d8 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Tue, 19 Jan 2021 18:43:01 -0500 Subject: [PATCH 14/23] Removed object file path when creating fileName --- pkg/agent/storage/gcs.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/agent/storage/gcs.go b/pkg/agent/storage/gcs.go index bb74679c14..df342a093f 100644 --- a/pkg/agent/storage/gcs.go +++ b/pkg/agent/storage/gcs.go @@ -26,13 +26,13 @@ func (p *GCSProvider) DownloadModel(modelDir string, modelName string, storageUr prefix = tokens[1] } ctx := context.Background() - gcsObjectDownloader := &GCSObjectDownloader { - Context: ctx, + gcsObjectDownloader := &GCSObjectDownloader{ + Context: ctx, StorageUri: storageUri, - ModelDir: modelDir, - ModelName: modelName, - Bucket: tokens[0], - Item: prefix, + ModelDir: modelDir, + ModelName: modelName, + Bucket: tokens[0], + Item: prefix, } it, err := gcsObjectDownloader.GetObjectIterator(p.Client) if err != nil { @@ -71,7 +71,8 @@ func (g *GCSObjectDownloader) Download(client stiface.Client, it stiface.ObjectI return fmt.Errorf("an error occurred while iterating: %v", err) } foundObject = true - fileName := filepath.Join(g.ModelDir, g.ModelName, attrs.Name) + objectValue := strings.TrimPrefix(attrs.Name, g.Item) + fileName := filepath.Join(g.ModelDir, g.ModelName, objectValue) if FileExists(fileName) { log.Info("Deleting", fileName) if err := os.Remove(fileName); err != nil { From 187fb7a3766afc11156058eceedf32fcb2ed18cd Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 11:16:19 -0500 Subject: [PATCH 15/23] Added overview of multi-model serving --- docs/MULTIMODELSERVING_GUIDE.md | 129 ++++++++------------------------ 1 file changed, 32 insertions(+), 97 deletions(-) diff --git a/docs/MULTIMODELSERVING_GUIDE.md b/docs/MULTIMODELSERVING_GUIDE.md index b2f229e9b4..57b9cd7f6f 100644 --- a/docs/MULTIMODELSERVING_GUIDE.md +++ b/docs/MULTIMODELSERVING_GUIDE.md @@ -1,109 +1,44 @@ -# Multi Model Serving +# Multi-Model Serving +## Introduction -### Example +### Problem -Firstly, you should have kfserving installed. Check [this](https://github.com/kubeflow/kfserving#install-kfserving) out if you have not installed kfserving. +With machine learning approaches becoming more widely adopted in organizations, there is a trend to deploy many models. More models aims to provide personalized experience which often need to train a lot of models. Additionally, many models help to isolate each user’s data and train models separately for data privacy. +Unfortunately, KFserving follows a one model and one server paradigm which presents a challenge for the Kubernetes cluster. +For example, Kubernetes sets a default limit of 110 pods per node. A 100 nodes cluster can host at most 11,000 pods, which is often not enough. +Additionally, there is no easy way to request a fraction of GPU in Kubernetes infrastructure, it makes sense to load multiple models in one model server to share GPU resources. KFserving's multi-model serving is a solution that allows for loading multiple models into a server while still keeping the out of the box serverless features. -Copy the content below into a file `inferenceservice.yaml`. +KFServing's multi-model serving is a solution that can load multiple models into a model server while keeping the out of the box serverless feature. -```yaml -apiVersion: "serving.kubeflow.org/v1beta1" -kind: "InferenceService" -metadata: - name: "sklearn-iris-example" -spec: - predictor: - minReplicas: 1 - sklearn: - protocolVersion: v1 - name: "sklearn-iris-predictor" - resources: - limits: - cpu: 100m - memory: 256Mi - requests: - cpu: 100m - memory: 256Mi -``` -Run the command `kubectl apply -f inferenceservice.yaml` to create the inference service. Check if the service is properly deployed by running `k get inferenceservice`. The output should be similar to the below. -```yaml -NAME URL READY PREV LATEST PREVROLLEDOUTREVISION LATESTREADYREVISION AGE -sklearn-iris-example http://sklearn-iris-example.default.example.com True 100 sklearn-iris-example-predictor-default-kgtql 22s -``` +### Benefits +- Allow multiple models to share the same GPU +- Increase the total number of models that can be deployed in a cluster +- Reduced model deployment resource overhead + - An InferenceService needs at least 1 CPU and 1GB overhead for each replica + - Loading multiple models in one inferenceService is more resource efficient + - Good option for teams that have many small models -Next, create another file for the trained models `trainedmodels.yaml` and copy the content below. -```yaml -apiVersion: "serving.kubeflow.org/v1alpha1" -kind: "TrainedModel" -metadata: - name: "model1" -spec: - inferenceService: "sklearn-iris-example" - model: - storageUri: "gs://kfserving-samples/models/sklearn/iris" - framework: "sklearn" - memory: "256Mi" ---- -apiVersion: "serving.kubeflow.org/v1alpha1" -kind: "TrainedModel" -metadata: - name: "model2" -spec: - inferenceService: "sklearn-iris-example" - model: - storageUri: "gs://kfserving-samples/models/sklearn/iris" - framework: "sklearn" - memory: "256Mi" -``` -Run the command `kubectl apply -f trainedmodels.yaml` to create the trained models. Run `k get trainedmodel` to view the resource. +### Design +Multi-model serving is created from a parent-child relationship. InferenceService needs to be deployed first and be ready before deploying TrainedModel otherwise it will not persist. -Run `kubectl logs -c agent` to check if the models are properly loaded. You should get the same output as below. Run `k get po` to get the name of the predictor pod. The name should be similar to sklearn-iris-example-predictor-default-xxxxx-deployment-xxxxx. +The picture below shows the relationship between InferenceService and TrainedModel, and how models are stored/removed. -```yaml -{"level":"info","ts":"2021-01-19T15:04:53.503Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model1"} -{"level":"info","ts":"2021-01-19T15:04:53.503Z","caller":"agent/puller.go:114","msg":"completion event for model model1, in flight ops 0"} -{"level":"info","ts":"2021-01-19T15:04:53.599Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model2"} -{"level":"info","ts":"2021-01-19T15:04:53.599Z","caller":"agent/puller.go:114","msg":"completion event for model model2, in flight ops 0"} -``` +![Multi-model Diagram](./diagrams/mms-overview.png) -Run the command `kubectl get cm modelconfig-sklearn-iris-example-0 -oyaml` to get the configmap. The output should be similar to the below. -```yaml -apiVersion: v1 -data: - models.json: '[{"modelName":"model1","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}},{"modelName":"model2","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}}]' -kind: ConfigMap -metadata: - creationTimestamp: "2021-01-19T15:02:09Z" - name: modelconfig-sklearn-iris-example-0 - namespace: default - ownerReferences: - - apiVersion: serving.kubeflow.org/v1beta1 - blockOwnerDeletion: true - controller: true - kind: InferenceService - name: sklearn-iris-example - uid: 6ff54022-4287-4000-b96e-97abcc13c8f2 - resourceVersion: "1553737" - selfLink: /api/v1/namespaces/default/configmaps/modelconfig-sklearn-iris-example-0 - uid: 0756af76-413c-4c86-a071-f2413989fe11 -``` +The general overview of multi-model serving: +1. Deploy InferenceService with the framework specified +2. Deploy TrainedModel(s) with the storageUri, framework, and memory +3. A config map will be created and will contain details about each trained model +4. Model Agent will load model onto the model config +5. An endpoint is set up and is ready to serve model(s) +6. Deleting a model leads to removing model from config map which causes the model agent to unload the model +7. Deleting the InferenceService causes the TrainedModel(s) to be deleted -The models will be ready to serve once they are successfully loaded. -For KIND/minikube: -1. Run `kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80` -2. In a different window, run: - 1. `export INGRESS_HOST=localhost` - 2. `export INGRESS_PORT=8080` - 3. `export SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris-example -n default -o jsonpath='{.status.url}' | cut -d "/" -f 3)` -3. Go to the root directory of `kfserving` -4. Query the two models by running: - 1. `curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model1:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json` - 2. `curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model2:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json` +### Integration with model servers +Multi-model serving will work with any model server that implements KFServing V2 protocol. More specifically, if the model server implements the load and unload endpoint then it can use KFServing's TrainedModel. +Currently, the only supported frameworks are Triton, SKLearn, and XGBoost. Click on [Triton](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/triton/multimodel) or [SKLearn](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/sklearn/multimodel) to see examples on how to run multi-model serving! -The outputs should be -```yaml -{"predictions": [1, 1]}* Closing connection 0 -``` -To remove the resources, run the command `kubectl delete inferenceservice sklearn-iris-example`. This will delete the inference service and result in the trained models being deleted. \ No newline at end of file + +For a more in depth details checkout this [document](https://docs.google.com/document/d/11qETyR--oOIquQke-DCaLsZY75vT1hRu21PesSUDy7o). \ No newline at end of file From 054c1b38e885cdff974d8933168b528405a4eb1a Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 11:16:40 -0500 Subject: [PATCH 16/23] Overview of inferenceservice, trainedmodel, and model agent --- docs/diagrams/mms-overview.png | Bin 0 -> 79389 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/diagrams/mms-overview.png diff --git a/docs/diagrams/mms-overview.png b/docs/diagrams/mms-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..8f6ace3173539d9a360f7665967019462a3bd8f6 GIT binary patch literal 79389 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≧d}@?Olg%@r^!E|<>B+*n;FZy@F%74FfWMAC6b5l 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 Iol`;+0JXBBzyJUM literal 0 HcmV?d00001 From ad717d35f1bd56f662f4d4c86e1ffde07d7423c2 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 11:31:12 -0500 Subject: [PATCH 17/23] Removed check for version in create_trained_model --- python/kfserving/kfserving/api/kf_serving_client.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/python/kfserving/kfserving/api/kf_serving_client.py b/python/kfserving/kfserving/api/kf_serving_client.py index ac3a0c8ce6..af286d8faa 100644 --- a/python/kfserving/kfserving/api/kf_serving_client.py +++ b/python/kfserving/kfserving/api/kf_serving_client.py @@ -368,9 +368,6 @@ def create_trained_model(self, trainedmodel, namespace): :param namespace: defaults to current or default namespace :return: """ - - if trainedmodel.api_version == constants.KFSERVING_V1ALPHA2: - logging.warning("The version v1alpha2 will be deprecated from KFServing 0.6 release.") version = trainedmodel.api_version.split("/")[1] try: From 095e1c3b9f6c54009c5b785979688d865eb6dd56 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 12:01:25 -0500 Subject: [PATCH 18/23] Multi-model serving example for sklearn --- .../v1beta1/sklearn/multimodel/README.md | 146 ++++++++++++++++++ .../sklearn/multimodel/inferenceservice.yaml | 17 ++ .../sklearn/multimodel/trainedmodels.yaml | 21 +++ 3 files changed, 184 insertions(+) create mode 100644 docs/samples/v1beta1/sklearn/multimodel/README.md create mode 100644 docs/samples/v1beta1/sklearn/multimodel/inferenceservice.yaml create mode 100644 docs/samples/v1beta1/sklearn/multimodel/trainedmodels.yaml diff --git a/docs/samples/v1beta1/sklearn/multimodel/README.md b/docs/samples/v1beta1/sklearn/multimodel/README.md new file mode 100644 index 0000000000..fd1c5b6da1 --- /dev/null +++ b/docs/samples/v1beta1/sklearn/multimodel/README.md @@ -0,0 +1,146 @@ +#Multi-Model Serving with Sklearn + +Firstly, you should have kfserving installed. Check [this](https://github.com/kubeflow/kfserving#install-kfserving) out if you have not installed kfserving. + +The content below is in the file `inferenceservice.yaml`. + +```yaml +apiVersion: "serving.kubeflow.org/v1beta1" +kind: "InferenceService" +metadata: + name: "sklearn-iris-example" +spec: + predictor: + minReplicas: 1 + sklearn: + protocolVersion: v1 + name: "sklearn-iris-predictor" + resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 100m + memory: 256Mi +``` +Run the command `kubectl apply -f inferenceservice.yaml` to create the inference service. Check if the service is properly deployed by running `kubectl get inferenceservice`. The output should be similar to the below. +```yaml +NAME URL READY PREV LATEST PREVROLLEDOUTREVISION LATESTREADYREVISION AGE +sklearn-iris-example http://sklearn-iris-example.default.example.com True 100 sklearn-iris-example-predictor-default-kgtql 22s +``` + +Next, the other file the trained models `trainedmodels.yaml` is shown below. +```yaml +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model1-sklearn" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" +--- +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model2-sklearn" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" +``` +Run the command `kubectl apply -f trainedmodels.yaml` to create the trained models. Run `kubectl get trainedmodel` to view the resource. + +Run `kubectl get po` to get the name of the predictor pod. The name should be similar to sklearn-iris-example-predictor-default-xxxxx-deployment-xxxxx. + +Run `kubectl logs -c agent` to check if the models are properly loaded. You should get the same output as below. Wait a few minutes and try again if you do not see "Downloading model". +```yaml +{"level":"info","ts":"2021-01-20T16:24:00.421Z","caller":"agent/puller.go:129","msg":"Downloading model from gs://kfserving-samples/models/sklearn/iris"} +{"level":"info","ts":"2021-01-20T16:24:00.421Z","caller":"agent/downloader.go:47","msg":"Downloading gs://kfserving-samples/models/sklearn/iris to model dir /mnt/models"} +{"level":"info","ts":"2021-01-20T16:24:00.424Z","caller":"agent/puller.go:121","msg":"Worker is started for model1-sklearn"} +{"level":"info","ts":"2021-01-20T16:24:00.424Z","caller":"agent/puller.go:129","msg":"Downloading model from gs://kfserving-samples/models/sklearn/iris"} +{"level":"info","ts":"2021-01-20T16:24:00.424Z","caller":"agent/downloader.go:47","msg":"Downloading gs://kfserving-samples/models/sklearn/iris to model dir /mnt/models"} +{"level":"info","ts":"2021-01-20T16:24:09.255Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model2-sklearn"} +{"level":"info","ts":"2021-01-20T16:24:09.256Z","caller":"agent/puller.go:114","msg":"completion event for model model2-sklearn, in flight ops 0"} +{"level":"info","ts":"2021-01-20T16:24:09.260Z","caller":"agent/puller.go:146","msg":"Successfully loaded model model1-sklearn"} +{"level":"info","ts":"2021-01-20T16:24:09.260Z","caller":"agent/puller.go:114","msg":"completion event for model model1-sklearn, in flight ops 0"} +``` + +Run the command `kubectl get cm modelconfig-sklearn-iris-example-0 -oyaml` to get the configmap. The output should be similar to the below. +```yaml +apiVersion: v1 +data: + models.json: '[{"modelName":"model1-sklearn","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}},{"modelName":"model2-sklearn","modelSpec":{"storageUri":"gs://kfserving-samples/models/sklearn/iris","framework":"sklearn","memory":"256Mi"}}]' +kind: ConfigMap +metadata: + creationTimestamp: "2021-01-20T16:22:52Z" + name: modelconfig-sklearn-iris-example-0 + namespace: default + ownerReferences: + - apiVersion: serving.kubeflow.org/v1beta1 + blockOwnerDeletion: true + controller: true + kind: InferenceService + name: sklearn-iris-example + uid: f91d8414-0bfa-4182-af25-5d0c1a7eff4e + resourceVersion: "1958556" + selfLink: /api/v1/namespaces/default/configmaps/modelconfig-sklearn-iris-example-0 + uid: 79e68f80-e31a-419b-994b-14a6159d8cc2 +``` + +The models will be ready to serve once they are successfully loaded. + +Check to see which case applies to you. + +If the EXTERNAL-IP value is set, your environment has an external load balancer that you can use for the ingress gateway. Set them by running: +````bash +export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}') +export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}') +export SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris-example -n default -o jsonpath='{.status.url}' | cut -d "/" -f 3) +```` + +If the EXTERNAL-IP is none, and you can access the gateway using the service's node port: +```bash +# GKE +export INGRESS_HOST=worker-node-address +# Minikube +export INGRESS_HOST=$(minikube ip)Ã¥ +# Other environment(On Prem) +export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}') +export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}') +``` + +For KIND/Port Fowarding: +- Run `kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80` +- In a different window, run: + ```bash + export INGRESS_HOST=localhost + export INGRESS_PORT=8080 + export SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris-example -n default -o jsonpath='{.status.url}' | cut -d "/" -f 3) + ``` + + +After setting up the above: +- Go to the root directory of `kfserving` +- Query the two models: + - Curl from ingress gateway: + ```bash + curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model1-sklearn:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json + curl -v -H "Host: ${SERVICE_HOSTNAME}" http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/model2-sklearn:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json + ``` + - Curl from local cluster gateway + ``` + curl -v http://sklearn-iris-example.default/v1/models/model1-sklearn:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json + curl -v http://sklearn-iris-example.default/v1/models/model2-sklearn:predict -d @./docs/samples/v1alpha2/sklearn/iris-input.json + ``` + +The outputs should be +```yaml +{"predictions": [1, 1]}* +``` + +To remove the resources, run the command `kubectl delete inferenceservice sklearn-iris-example`. This will delete the inference service and result in the trained models being deleted. \ No newline at end of file diff --git a/docs/samples/v1beta1/sklearn/multimodel/inferenceservice.yaml b/docs/samples/v1beta1/sklearn/multimodel/inferenceservice.yaml new file mode 100644 index 0000000000..0d9d939507 --- /dev/null +++ b/docs/samples/v1beta1/sklearn/multimodel/inferenceservice.yaml @@ -0,0 +1,17 @@ +apiVersion: "serving.kubeflow.org/v1beta1" +kind: "InferenceService" +metadata: + name: "sklearn-iris-example" +spec: + predictor: + minReplicas: 1 + sklearn: + protocolVersion: v1 + name: "sklearn-iris-predictor" + resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 100m + memory: 256Mi diff --git a/docs/samples/v1beta1/sklearn/multimodel/trainedmodels.yaml b/docs/samples/v1beta1/sklearn/multimodel/trainedmodels.yaml new file mode 100644 index 0000000000..7c7b2598b4 --- /dev/null +++ b/docs/samples/v1beta1/sklearn/multimodel/trainedmodels.yaml @@ -0,0 +1,21 @@ +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model1-sklearn" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" +--- +apiVersion: "serving.kubeflow.org/v1alpha1" +kind: "TrainedModel" +metadata: + name: "model2-sklearn" +spec: + inferenceService: "sklearn-iris-example" + model: + storageUri: "gs://kfserving-samples/models/sklearn/iris" + framework: "sklearn" + memory: "256Mi" \ No newline at end of file From 7349a1bae3f61ff4b65c2b44bcf331c9ce3441ef Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 16:03:42 -0500 Subject: [PATCH 19/23] Moved provider creation to package agent storage --- cmd/agent/main.go | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/cmd/agent/main.go b/cmd/agent/main.go index d8e18a4867..4120ec2b2c 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -1,22 +1,14 @@ package main import ( - gstorage "cloud.google.com/go/storage" "context" "flag" "fmt" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/s3" - "github.com/aws/aws-sdk-go/service/s3/s3manager" - "github.com/googleapis/google-cloud-go-testing/storage/stiface" "github.com/kelseyhightower/envconfig" "github.com/kubeflow/kfserving/pkg/agent" "github.com/kubeflow/kfserving/pkg/agent/storage" "github.com/kubeflow/kfserving/pkg/apis/serving/v1beta1" "github.com/kubeflow/kfserving/pkg/batcher" - gcscredential "github.com/kubeflow/kfserving/pkg/credentials/gcs" - s3credential "github.com/kubeflow/kfserving/pkg/credentials/s3" kfslogger "github.com/kubeflow/kfserving/pkg/logger" "github.com/pkg/errors" "go.uber.org/zap" @@ -34,7 +26,6 @@ import ( "net/url" "os" "strconv" - "strings" "time" ) @@ -276,44 +267,6 @@ func startModelPuller(logger *zap.SugaredLogger) { Logger: logger, } - if endpoint, ok := os.LookupEnv(s3credential.AWSEndpointUrl); ok { - region, _ := os.LookupEnv(s3credential.AWSRegion) - useVirtualBucketString, ok := os.LookupEnv(s3credential.S3UseVirtualBucket) - useVirtualBucket := true - if ok && strings.ToLower(useVirtualBucketString) == "false" { - useVirtualBucket = false - } - sess, err := session.NewSession(&aws.Config{ - Endpoint: aws.String(endpoint), - Region: aws.String(region), - S3ForcePathStyle: aws.Bool(!useVirtualBucket)}, - ) - logger.Infof("Initializing s3 client with endpoint %s, region %s", endpoint, region) - if err != nil { - panic(err) - } - sessionClient := s3.New(sess) - downloader.Providers[storage.S3] = &storage.S3Provider{ - Client: sessionClient, - Downloader: s3manager.NewDownloaderWithClient(sessionClient, func(d *s3manager.Downloader) { - }), - } - } - - if _, ok := os.LookupEnv(gcscredential.GCSCredentialEnvKey); ok { - // GCS relies on environment variable GOOGLE_APPLICATION_CREDENTIALS to point to the service-account-key - // If set, it will be automatically be picked up by the client. - logger.Info("Initializing gcs client, using existing GOOGLE_APPLICATION_CREDENTIALS variable.") - ctx := context.Background() - client, err := gstorage.NewClient(ctx) - if err != nil { - panic(err) - } - downloader.Providers[storage.GCS] = &storage.GCSProvider{ - Client: stiface.AdaptClient(client), - } - } - watcher := agent.NewWatcher(*configDir, *modelDir, logger) logger.Info("Starting puller") agent.StartPuller(downloader, watcher.ModelEvents, logger) From c53961ea6cc2d2574313a217ab23f86042a03f7d Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 16:24:26 -0500 Subject: [PATCH 20/23] Fixed up confusing wording --- docs/MULTIMODELSERVING_GUIDE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/MULTIMODELSERVING_GUIDE.md b/docs/MULTIMODELSERVING_GUIDE.md index 57b9cd7f6f..717e0d3a54 100644 --- a/docs/MULTIMODELSERVING_GUIDE.md +++ b/docs/MULTIMODELSERVING_GUIDE.md @@ -4,9 +4,9 @@ ### Problem With machine learning approaches becoming more widely adopted in organizations, there is a trend to deploy many models. More models aims to provide personalized experience which often need to train a lot of models. Additionally, many models help to isolate each user’s data and train models separately for data privacy. -Unfortunately, KFserving follows a one model and one server paradigm which presents a challenge for the Kubernetes cluster. +When KFServing was originally designed, it followed the one model and one server paradigm which presents a challenge for the Kubernetes cluster when users want to deploy many models. For example, Kubernetes sets a default limit of 110 pods per node. A 100 nodes cluster can host at most 11,000 pods, which is often not enough. -Additionally, there is no easy way to request a fraction of GPU in Kubernetes infrastructure, it makes sense to load multiple models in one model server to share GPU resources. KFserving's multi-model serving is a solution that allows for loading multiple models into a server while still keeping the out of the box serverless features. +Additionally, there is no easy way to request a fraction of GPU in Kubernetes infrastructure, it makes sense to load multiple models in one model server to share GPU resources. KFServing's multi-model serving is a solution that allows for loading multiple models into a server while still keeping the out of the box serverless features. KFServing's multi-model serving is a solution that can load multiple models into a model server while keeping the out of the box serverless feature. @@ -14,7 +14,7 @@ KFServing's multi-model serving is a solution that can load multiple models into - Allow multiple models to share the same GPU - Increase the total number of models that can be deployed in a cluster - Reduced model deployment resource overhead - - An InferenceService needs at least 1 CPU and 1GB overhead for each replica + - An InferenceService needs some CPU and overhead for each replica - Loading multiple models in one inferenceService is more resource efficient - Good option for teams that have many small models From f51ca06aaa3fe80ffb865344ad59f95083aaa534 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Wed, 20 Jan 2021 16:56:32 -0500 Subject: [PATCH 21/23] Fixed up typo --- docs/MULTIMODELSERVING_GUIDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MULTIMODELSERVING_GUIDE.md b/docs/MULTIMODELSERVING_GUIDE.md index 717e0d3a54..f3b1c80283 100644 --- a/docs/MULTIMODELSERVING_GUIDE.md +++ b/docs/MULTIMODELSERVING_GUIDE.md @@ -37,7 +37,7 @@ The general overview of multi-model serving: ### Integration with model servers Multi-model serving will work with any model server that implements KFServing V2 protocol. More specifically, if the model server implements the load and unload endpoint then it can use KFServing's TrainedModel. -Currently, the only supported frameworks are Triton, SKLearn, and XGBoost. Click on [Triton](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/triton/multimodel) or [SKLearn](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/sklearn/multimodel) to see examples on how to run multi-model serving! +Currently, the only supported model servers are Triton, SKLearn, and XGBoost. Click on [Triton](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/triton/multimodel) or [SKLearn](https://github.com/kubeflow/kfserving/tree/master/docs/samples/v1beta1/sklearn/multimodel) to see examples on how to run multi-model serving! From 8268464c4aa1715cba81b747141db566704b9db9 Mon Sep 17 00:00:00 2001 From: achoo30 Date: Thu, 21 Jan 2021 15:08:43 -0500 Subject: [PATCH 22/23] Included detailed diagram --- docs/MULTIMODELSERVING_GUIDE.md | 20 ++------------------ docs/diagrams/mms-design.png | Bin 0 -> 269528 bytes docs/diagrams/mms-overview.png | Bin 79389 -> 0 bytes 3 files changed, 2 insertions(+), 18 deletions(-) create mode 100644 docs/diagrams/mms-design.png delete mode 100644 docs/diagrams/mms-overview.png diff --git a/docs/MULTIMODELSERVING_GUIDE.md b/docs/MULTIMODELSERVING_GUIDE.md index f3b1c80283..0f39de031a 100644 --- a/docs/MULTIMODELSERVING_GUIDE.md +++ b/docs/MULTIMODELSERVING_GUIDE.md @@ -8,32 +8,16 @@ When KFServing was originally designed, it followed the one model and one server For example, Kubernetes sets a default limit of 110 pods per node. A 100 nodes cluster can host at most 11,000 pods, which is often not enough. Additionally, there is no easy way to request a fraction of GPU in Kubernetes infrastructure, it makes sense to load multiple models in one model server to share GPU resources. KFServing's multi-model serving is a solution that allows for loading multiple models into a server while still keeping the out of the box serverless features. -KFServing's multi-model serving is a solution that can load multiple models into a model server while keeping the out of the box serverless feature. - ### Benefits - Allow multiple models to share the same GPU - Increase the total number of models that can be deployed in a cluster - Reduced model deployment resource overhead - An InferenceService needs some CPU and overhead for each replica - Loading multiple models in one inferenceService is more resource efficient - - Good option for teams that have many small models + - Allow deploying hundreds of thousands of models with ease and monitoring deployed trained models at scale ### Design -Multi-model serving is created from a parent-child relationship. InferenceService needs to be deployed first and be ready before deploying TrainedModel otherwise it will not persist. - -The picture below shows the relationship between InferenceService and TrainedModel, and how models are stored/removed. - -![Multi-model Diagram](./diagrams/mms-overview.png) - -The general overview of multi-model serving: -1. Deploy InferenceService with the framework specified -2. Deploy TrainedModel(s) with the storageUri, framework, and memory -3. A config map will be created and will contain details about each trained model -4. Model Agent will load model onto the model config -5. An endpoint is set up and is ready to serve model(s) -6. Deleting a model leads to removing model from config map which causes the model agent to unload the model -7. Deleting the InferenceService causes the TrainedModel(s) to be deleted - +![Multi-model Diagram](./diagrams/mms-design.png) ### Integration with model servers Multi-model serving will work with any model server that implements KFServing V2 protocol. More specifically, if the model server implements the load and unload endpoint then it can use KFServing's TrainedModel. diff --git a/docs/diagrams/mms-design.png b/docs/diagrams/mms-design.png new file mode 100644 index 0000000000000000000000000000000000000000..55d2195018e2e8824330eea33c575a8448f7680b GIT binary patch literal 269528 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

& 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�Tbatz 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

SH!C}6L?-2Vh~=F{=K=YTO=F2>(fJ(d z(ZNsy;>bfI4l`xu!+grZkmwiF=VwM;986kuSzcD^HI}}w^+jJ)P-saucx)h_?#!Vh zMMnT_=P`0e2j9(9UMF|WLtWI@6HE8hPu4^)e~OEZFb=;83kmVBt&OYph~IHNN(uwa zCrJxaXU0u{?P;Iu7m?0S+8u5t+tZI2r>njcX9je1chk0X9BEmz8ooITo&Daj_TY4P zE=)h8bF78iaciv2N8|dLP1l3xJUBOvhkFxkHvvWS*)uKCqUI?lT27l&`KoJ8F1MIo zH?~Nj?}$_cNDkT5O1-p>TP~%?D5m{l^Qu^$k5w@W*}#)aeXp*)jIc zD{#x0Tk=%Bz6&+&ow!t!w>sP_#s$z{=}c}XJ4hGK-bWmaQuC!SmuGY^`sPQR@4 zSTT<~+ZGS@EdArY^V54;f!sq@ZU`1{{(1Of(HQ#5&fP)l1%&1m^4?vt& z-aOT8sDdqq9G1cLOPq~-Td0=RmotF#!0&a&hRvd1OV-)`Ic5uT`V3pQhPd2xsEjhV z*>8V(vJ%%kC~z9-7^Qjio>;4>mo+LPLa%mER_NivkB!g-YfnGGQVwG0m0h(ojW4al z?Upv(VKz246>T9WPJT8eNKN5~!5Pr%tDXj2k5N#Qc31;RvLE2;pdkdbkL^b5B)6Pi zYlI)IS=hBK&Nk>Udz{`BB_~N*szIv&KsBK+<&QV<Cqnb) z)3qb^*vR;y(mbCNJZ#p1MG~v9JY*|?V+FjL#YvUa_Aj(c7S6Ob{4TTbjaQopII%Ak{6J4U&dB*)mdFczoyulvVJF1x&ult-_xf7% z%AuxKS+6XB=GwE>%B89r>wC&Pa?nkF&L#dIKUUUk7NlW{9jyjCml=HpW##5h?|8Fs z$2(qBqBpm8$nyF;a}H*5cr>%}G49~|UFx^c;yblLeI9aOC(PF4xm@cXIYKJvu@U-| z=X=F*a~-80W51_L^h>gg?5UY2v0M5j=rn&kO_^GmVlKtT{BSfbxwm+x<8OCk(d&Ar ze#6zAe1h71b0GN~1X^_r(%j@EeAuC5@%_qZ;`co%((es=cM_*-=HRX6v%>xHKjk-JVR!0K})`Dnyh=i29)Fx3m_ z|F6Bb{)@8f{>AAK5R?*77*Rr6QhF4mOHvw??(P~eXpo*ErMr880a57&>5zt@JBM@O zeLtV)KA-RRIp_QVAAY!AGuO=Qy|2CUz1Ctch0bTCxfb*j(+Q4x`8D_%_k1dOTRZHf=LqzbXzgD}YX{96_ZxwbAysBi&lcj%4LbCf zcG}OKDV^;4YpzDF4EGk6EgJ$MPCI9P=JQMYH=+@vqtz+N2l@$Y5(n-JeU$TE`Wxr0Yw}J5`oKrP-;y($x|Py& zFq_z6{UyeTmvsjEV+~pKS>^8Ie#P1q6frMlVR50<;vyv0b*0q_^h;!q{#6UW)#GWf zA03droV^vJ7-PG9vj1eLz*_png9zZPI@ZLpPgv>?@kI-BQ`Vl9tQco~S~!GOjcqV+ zNy~Ldq;Sng3M;OPPS(u*D3w57!m!Qm0NI+1pUH_I%?6 zuKx4UwjQ7Ln2P`BDK`rugqdHoZ+7v_qNjL!oUtmL9ai-~mC>QwH@3R{;3}?_y~K6f z6Y~?!OgK&i4M>Pv=UOywZ8Q+|G-#w~pan8_?e#5BXO3Zdc^(VDrHUvz<{;!fQ-o9z zKf6ka6yL)sx=_)Z?KVI&6{0aUn0G}oibpB8?B%-&yQNnSj8>c$atBQT-G~_`ON88! zAB0?y3$1gQ6J$-=rtpxk2rbB)sg{-Ns_Ge=bX`BCryh#dF$HpRFRkXwuJry}Kh;g*qqS%CSUyK5 zOdiOr@vW0FiaE~}UqBH)PZPWp)lia~mX^y_Y`#&_Q0?UpkeD`rrT6LZYM?9M4}NMp zcEG1a1T?}?(b1%PUht;M>#O~nK&#x@!+L$LXaKUGEgZUUbvM@7jo*3F5v~FuyD#E$ zWl`Vw3F~cN+Hnobc*0@k{rvr%qFr6Bo`Hh69N5W`gd60As*=^PsQbbfIITw8+h3Ta z+=s_`^OM+^UGC?r(q%6(467OaadC(q1q<&IeLwO}FUR>QOA-_JIwpOx(rTdjBJNJ% zFsh}~m4P(^OSe-UVeEUfK0*}ZnB$#p_k-m!SG0$9pvjn$@af8~*wukPJe}y=+cnGI z{k z2M%a><|+tqycUKoM+ZV|@xl1qaZdL40}eW8qYBWt1y6~q){ONQEO>2ZK;yoh2mufxY#mW}xK&D<(4qaMW z+UHrqus*1h9 z_5-YzEpArOy|SiDdd7Lm{E}|~4sdWtXRwZTWys(jD%Ne7Yn0pZJh>VGiukJ|oaO|? zd~y^prK+vv6F?=llhs5q==mA7?jewFEfBC-I;(>>j^Po_vYvjuSOM z6ynCI)HQx)+}zm=U@mO|46Exv24_$kozCS#MATMbd-ZY7@iTPtc}~58{1oUr%)np9@^0^OlXDuI#gjUu)xMy}_RhB=WbdF1?p5DDH1dNoX>QmjR&n zr2W;ZUmExIYOT(7kWL0X_h*h*W(E!jabm7%F8RO3a*CO`=bOZJ7s(1fXMdnt8`Zqz zCbIu6tDFd@QdDW@bUZ$+1U;s(X@Qk)VkdL;$5s_FqP#TGUw6eEgiuh3fo#>B8dUBW z&Y8>gup`#|ejl5UBC2XOM^#sLm*+!o19I~_{}p!uKgM!uSwx-<8{+Zp+#YiPxJdag zZmR$sTUh6w{e`My0+e>~Qswns-FVQduF!daQYlZhTq?#YDn`<1JMJg#CYtG%RA$*w zZuUbf{oJX9FP2hfjG&IL0`9)mVrQ#0jvUD zG%ry7&E=sO6kso{(D-+p!Pt^)`C)!18gJgP1=LfhXp$8(7gaU}FO*vEz9qr-)~*Q1 z50k-trmAie%Cfe2Yw1LOj{1a3dav3$?I_!KP&-m1QuIV$XPX}CeV!;^hGW*Sw zK#~88eFD3HHXkqiHKTrqsBmX;EGYzI-v88>G0c>AV2}nk*{oT$Pw#yZwbOEibm#1o z-F-9dgX3W*@qY3By%FxUqJ}vU%+kj1CdYeH+3Q2A18JT%fmc@}1B_3GfMCQjgy|>F zs^7{-qv-aJnEjMQnsVdEG!t3|K5m)X=8fkEf+glgVB@E2N!yb=$~IT}^-9 z^*7-!Lnof~VuZ!_WGfJh?&S+4<9HHMbAv2fBL!lUpDoAqa2~-hF0W7LS0a;l;@}+- z2Lp_;K6BJYIcsi>NxbCBiwp^ePBW4_rqSB zDalDhhuBkCL~f-JQTD~@$kK8JZhD;KsR$^H(l6C%gc_9HW_yu0*>+cSkt9~I*9;|B zlVKKq;12szka?(wiE}KRrD$e(x+x#4$j^M^b#?vu_=Wn(oWJr-zSA{z3cp9I%I*ux z5w+h+1NMC~Ch!X)_voTB#J9V-SGRa0W$aX8$ZWiNB=?vXsg~C)9mzz=*nq{t_5Z1vn71b24zFKx?0oxks!s#zbgdOG{eI zhp$JLYlxXb%o@A0ttXiGmy-Jte%HHDHqGB6HCE$s%_s774>MRT8{UVtHpZBWLNDe% zLp-_rJhJ*|ES%pPa}O>&UNS?6gtLA4KF3_%vGz4!W6T02ijE?IXcfMN?<+x z@S4+K*9V8OO(=(f>@~yv!1%_8UKtiVN>Df0SJ|LBPnZAZRv-zeKbmAS&F!k)I7sjL(P1?q2c~B_|>v}{^RXE0;CjaTBlWS)R^`R z^RDX|@1?w7)30`L1ci;ZeRh?FRrK`l-i)G2_zS$(*?ZfG?`;*`?YU=Z1qpH_{O=o3gW-wzYwWf8cWU_%V&ha?8<@(xA5=5nJeHvpCRL zz~QdL-F3kX{d!uELkXb<&IcUKDsF%o{&2()B?!cP(Gh%~{`QWf4A@^?=6En=6DXXT zwk$}9801hT!y?Ilg#odSX;5jd_}Qkr2-D3;od&#K!#%AyXaf{YqQ!TP^C>L z-82vl`#~}v&vj}(%eWyOE1=(5k}^-v2l&TB(!L}UuM>kzXkli%Or<>l`-|xcknFbbxUuaiz|;!Cdhf^`4FO7r(kQ& zQo!D`4^?S5Yd^Qwp_b=)JvHJt?gsg-jya_;y7Pz>smO15HsLnm9A#3K^Kjg6{JZC( z_`E8IN(R1{J$(M-oVDb!DTLyGbdj&^T4m?Caep>>5H4Z#9_zl= z6GOwyaow6nD?UH(lcVoM?UL*LYC0Ya0%$^}3UXlQrexbKjQ6U7d{iCy2@vE~cu9iO z&=fzt-c3@Wzr6ublxZ#68=*aPcu1*OL=)EVEU>r5;y%H>90DD5I-yM2_GaBciO+Dc-ZmZYUH`-Qk;lb@!SmdTmr(N`n$>7!hBhFps3))qBRs{c>>xt8-TrsosBTIirpNAwI z#~i5qyvsdn#)<-Wh-l1rXeYqfnA0|~ot1HRzlMju!yQadYCPsKeuL6(!o4LKMa~25 zBafOq}_4lHEw1l2Cis$3NpDOz#22inuo@pLkC2lM_eNlGA=JZyUe&$KN7}C#f9} zkiks%sQc6H9TH23$v|svgss4tbY8OOk-rY+y59vW=9A_ivb*S5{NCuh)TSq+git!p z>H#VzR=n+U|7Ei>HCOj?*^!@%H|V0I_(T>SM!iAYo{MqdLuDvia+&Amj*0+h(QrVT zp&#mp?l`fvUmWo(#b8fTp7o&x=4q_yx*`M-+Yo5fN5|-$MaIi4$%NR!>_8$bXFb@n zwW1?RNiK_$Ef| z;P)k6Pq4Lp0w*GArDSJAI{o>`71Um{>`vMm%(RGP_7`7We~(rBOA(aWYUONzxQrCf zvyJ0+w@IJRb(3y1lTJPC7*u6jUYQ5l%ysIQ<4vYj>ah=^fHQHnL>(5=COq$T;+!QZ zpX!6Q$8+0zQ(Y7cshu{l@(Gx)zP=;C1F2L5G%$LO^W}9ke1hsII`<753x`1|-j)de z=qE|~`CkN61PGS@=wA1&yn;xm(0xmZ)F(WN8|`pFC37Q;-@g|ujC7qqCVd)5Qj9<) z_eQBOtiyX-R7n8U3d1<5G^?TkQkm}T&M+C?c>f*jekEdSPb9vwkw+}qAR8yt?IP%O zq32UKfii-bhCgngddX0^`O&7_cspE1*0MkZmCke>doY|{w#CAlP}VE&xg~d{4XK{w z_17xWEI;SIsdn&hzBvAt#bSDvzvShC{_@7xz0d+}pmy38Y3uzSMlce8)gm@wqPtC4 z)iQxGI#Kv(n=c*dr@uy&cvzY$zDwSt4y-{cw=M;n1@op=d=r;NR&AA(S&`BaPrw(|SFw&v@)0WWn$h!2ciUcIh0*{1* zEMf`#?2po<=U5QAU@Y8e3Kcs=*Gb0Xc?mxGt&P0w4XW(l;HO;m4vswAQ56B`@(yFA z%re9}iS%r}2rWD$ZbD96_pwE(y#`^#ET6V%aK0%XyC6N2Qk>fioeZ+Xkv%7_NUUFniWDyytXl}ohVhH@ z129D+MPJ#q*kudOP1#JC*z#{xizl;N9qREXhnn#U<|EOy6SFN3jd;L4iGELh7mIIb zHrjL@v@UNWZFY&q3n&i^YG1io!LtNJ^_5>ZzwwxJIDCIy*7Wv7)M$6lhKjh(GEuvM z+rZf3=d)OY#M3z+!xsJP)N{Dw=y8nvPjaH}2R`lOPO1YVP3*nrR%rm~ey?6?`o+$J z;H^IoxJXd_QJ(8`s&F^AHsRU_6)}>BCN*^h3}Z!FiSz!z;m|GG3Hl`3uh%kW&1%zO zUs&k$zs?-I;r|5zf5qw*t+ISNlWL3QDDjy&sb79;lEDGDLe) z*Y{CKsF)HRtCAe>Ti5w|MQ)OnnaYP6b}UWvXx8(`!DZt0uS@M;5`X$bN0Q)BH1wBm z1nv(JMT?RegWL}zyH za9~TIL0A|UG^QHF->thUmA&uJJ7Ge_{lq77`Uy3*$L=3x`KguT?!L9Y4>8KH8Y}8r zk-+J6WIB!kHau~7HIL5!u0oiwtrgZ!a_0=C*=mim2 z!olIP#L&((sxmX}&K#v?NwCVS*UR0#rVake;=uPKm9B@ai>5T)2X1LtnkjjZGPC}K z&vYKWy2-R11Q+RRMCKz|eVw)yKPV2S?Gex)-!%JPDGHmCo+T&>9`Mam>6L5Y4E;4L_0wm@5Nb)6l z%wO1J$UzUQJfZkFl`mh>-@BZxQoWkM13Xo=RzpYgGF$!!`PEMu85lxZL5I0jG|VQ6 zhlVt^wnj#Jyza@WE3!tzVP!bKcu^J4D|aE6SU(wP&QS1O%&aU5lI)MxLxmrGP#cuF zDTaQ}drUfpc3XeC9nblt zVqeXbl8JE1*`A}ngqE>9RM!}%bjg7hUg>)n01Ee}GN-Lq;`au-4mM^W>U6SqkL?S! zU9(yd*ppEyDb5)jJ=b%AsH2u#+ui(C^h9@jM#t~`oRVh>=lj{3?AXm>73m7JBQ2J( z50+H?jwuzj1}1eaNSIFAXP4-3S~ce}O}{>!O49J^;kTX}CBV~ZcB&~hL>Qos^29wy z)Q;K87Otv#&V%-B80m%C$JXkKH1l9_V`r}#O*Kf&q%y!5bBK!*Tn7Oe1AE*iLh8jb z;=yhVeHJ@E?WiA1tCQk8aQ_UB3@~ok7<~X(6QiX^H9t~~(~zIJ69-=~k)LNy>3}x0ew&YfC~9mu}&*Zy34!ikIY$6GeTla5v6MP z)=dV=$sy05jbY2Be13ObAvsUNE1t4mx=GAT4U+r}SW-!FtNK_2rQkK!xS)VUv_a3& zMQ&Rp^@HUBvSmHY**fgml$R$uR1@s;xpIoMjB&2>cE&UWW-SnoD%VLaB0JnFUr!m(~auH#@ zC`Y0WrdaKhT>Fwx4L;2lvQmmB%>W}%*&;}Ij$h=$!|P8dp0To$+Vb0U_muU}rn)Bz z8usxe7il5VwweuBwSBKlM_1dbp@RB#Zqy{h_6yjmIxq{bE^!3HFvtyc*{^P|UX-c> zsP{_!wPs;hD+7_yu-!00ncNL4XMw{k0@YYL<7qW+DQ<0}A;H^f{lh6wu-KB$m*t{4 zU%Mzbm0=}sj_yRTq0B-m@n;`(^5OC~)SA3y&2U_g%@&rZfmLJMbxYsHycV~AKgOFX z8#vX77!QQqt-(PhF>>69jVO0yXQ?3F#3rj_eO6#zpvO{WNZWUS>-yuBVg1!DnoCJF z=7CH-oDyU@jmIHE$}iE?q@yLX6JyrLdb z4*6HQ@E=;Kh%hQ~MVHZn2?}}Y6+_7jXKqabNv9-8Uo@ZqlQ|^B_hlzOiIV}@@C8O5 zN9%d@5Lgz8!Tk*H@RsiYL<`OV%)R=vUK^}ivtXn~4)E9_|2g^HJC)+m$e>EnqovV< zjV;sXU$_r(YH0A5>FbX}l3DOqq|hLJ3au>&%BB`Ubg-8#4>_d5=wn7Kd#5kW;FZu~ z=GmnH50e`cbGZZR9cMW>&xBf?%lp^Ea|-~M#+$;%=*v|gxQ%qK^&$YynA5a-;FBeC z-Tj`?;Rg*g+kC8h?4VVgj#u%SCCL}Fp$3b=j}XBcOLiKP>^8nEdxVx3pLuepDBt*v~BjUwo!r1kK) z$~xHI-2Il-L*y=An0&Q{`rLQMH(&Ne*q(}A;*+6|5{fcXAsxgeIm%i81&q$vG1JdrMf5}?j7q*{~-2W zwS;$HtNAJ8m2so}f|sl|}VYO3zu|Xc)SdO8bCg6g)3KK;&c32QG7uQd^GbvNx@kb%ig4 zhha{}y3M{f7hG8Q?*5~6eI{(+3r@u5^h;9ay6V8yg-`l?dPhRW@Ey?}To+HQK-nBK_{Hp%y3mSB`)Sl794l$YMHX*Cu+CkYb+Q z$f#qZD@N^Ib>wT?PoR;M%04_Bao=$xQl@2^+*^%z8{Y|K0)NU_oUAgveG3UDNTM`Y zRKg)V9HfbYk}bf_r9Ug`IPmoQJ{q*P1CF8IuaDcP_L%X0!u5qJxMMMx&MWjYIG(gz zi=nwzP~5Lx@xuo3Bd_K|Y+PtJc;rJ8Daf)keuV{Xo4V+sY5e5xlG-^rfWcH(`_s%% zJkN*iO(ry+EZYkZf7u)>N^~AH`vyQBnPCvIKN`3JJM6`~^@yOAb%{tyqN5?DWQ>v4 z3>qnvV(qNmG`Nd5*yL;>dAa0S2%A{#7F94B8V#MS98zLE& zq5aBjw|-hGUTWNN=e2o{Xx7i9V~d5Z{aK|r8tGZk?=2oL`{M!Oj&A+B$h#&5)Vv-6 z)iV{Z8=SV9biL1e&ds~eyl+f%H!6g_UdlS1*1s9{Ojm-O^L1LZp8Ln|B6^B9a;Bz7 zV_uFE#ytjP=XkwBq{^LcLm;E$_9qSO*pvBbyrY-80(Gru|xn3MUWy*s`e1Z1UC) z%5_tH>z20ia5`?27^GPFOQT2i?aFb}QuA#3aMy||sB$yTjMzJM5Nl$>6Q3@?b2qSw;3DNJpH2VmbE$7(u4`8^Qczd z1nUyT1vQ6Wy%MGTG`YlG{mIXDsPc(B zl!ooqwDaSGO#9m_G%4X$wgBkaj)bFhq zVeuX!Ym~!m#Ag?gFW__C^G|BuQekKjT^6OdZ+gKI+UapwUk*#7>tu+o> zkJ{XA+E4T0bFS5TYAd(iH$HcQVN1dBc3Ck@HHtsz*G(B^*CT=1mF+AX$)@Wm;bFJ6 z+R8(_?d)nDK5btAFHJXq8APp%S+tH`N6oPUKqJ~Eu{wl}h_<{>(Q@#Mne_Qu>ZvT? z4a%l^xh@}W7$%`TP4={$$2>_Op1b7QxL|pojT5}(y&$&w;IhvBXkYX?NbvM@+dr*K z{cwe{s#l0tW;sR-Q_-Q@?vY!3ZeMcu7N>d7S~^PE@9m+4kuVIhl0tBE|G^sFy8n;Y zw?On@gNditg2+X%X529QSg9l%Nbckm+XN}xSbXXQ;&u;S=bHPws0y@Pbes7?-eT_XSXbP_mPuxiz7T7V}sX*Sc)JtBKh3TG zS*6ntmWI>aQ|#KKAK}nUe`EeD<<&v7Pz0iL5j)~{+`^z)`G%|hZh?3fv9|V-%im;7F z-aYwdJ{6vS$2sgUyl}14XO3H5>|pm=BY@L+wy35APuuAks0o+(Xm*+uBt^k?(g8Un z;0!0Mt;0qHE%>r#ZUi6Y$o+LPyzOKK#7WY5`YyUuJ~2n)ZtK`iy2w2w&9=*}FZ>kSr%hxo ziu!)+ebTEX69OmLYZ)xu$px9_Z-V5(A#{?xVnT^6GCLd}yQ9E~62x(boT6GkX9R!g zel-(oxS=EVXh+fZJ;)S)Xbt|h(UHD_t!ok8$JbtVhu3u3ur%qKI=fPOZFXf7H6Ch~ zFr-xFVPOuEsaC^ zp-PKvu@eua!v{d5`#zq-BWyW(OXUZm@)$)~rn1K;hL)PP#9{2r8l;9fISkwj-SWMj zNgVl7Jd;Tr2?{2e(%9TNIqV5j$tgWGX;ZpSqrdKMGgwHgMedm> z&C9>Jkq{dXubU)v@((i>Mh1vA;jp03nzheRqABX^-7nc@eQx}UHoO3fm)sxrs1u-M z>gMRpISW>E&id^bp-d#D#qwAuFUUQG^cMMPR-1^J88tjI?hiJRuN%f95FVF56Ii8< z1{Y9HD&v^Tt4KS($=5NqHMeQu>vcP)xgTpXvtF*fY`AWstpv4ifyA!Q-j4btqQ|d` zg7e}#RDRYRhR=?< zSy}ic2d#^7L-Y)e^j^nG`eajbDdc4UX$2+=o?A zMl{wYNQt!_I}9p=nFFMz_(cRa%5ffEFB!VS0*WqoXw6}*2Lt)q5I37?9UMK^5DN;{ zK96|IJP2prsh|e$#JjWTWRofB5j8Wnp@76N9DO5L`>-uV(MY9|hy|VJY6bqm>T+GL zyGqcks;igH39_>6A&|O$IDMHEUUj-IX65WK#Ri+Qa7#6r9%4M}Xs21<~ z{-?DYr!7uN$Me~hlY8#4Ei;ta@D)?Ae~0Ui^xUJnoUm) zuM7q$1Vkk~8L|6}Bi!j6n;!k#eb%0vdvf9R%>j@|=O52g8@NCOnq;$NC;N-9OJ_vi z>biFxDKF^Mo-K&%3u_0;9hut+NH`Rr)=N%XVdR}e4_LwkAz-0m@;i+-^mmyZ{cVuc zcN#d0X#nR|hAFz9UeI~c3(XnoTxNf9Rkm~u4YWZNFmXXYq-Zhp9kj$>c#V(;SprJz z7FDUpVpNps!(nUD`%4}2JqhfrmQ^-5f81n<1;H8X?h%pG;iq(q3}wCU>S1MZ#VRAm z$%VT}5uv$rm!MFE*BNRniTQ-#CoO71e=;rx3>nvub~Ds-=uk>8IQNyxXJ2R#?+Y1! z!n&8SQ}!%qz8mcV0z*(%^X_tiQUUl_-V$`!X?itzn!~JF{K9?(h|xlGEp1kbZCMHw z;g1wG!;7^Z{KodX`ppEr9Mgk}T1Upk|4=-XR!kPSN90qeDSGN|SM6ETP_^2fi5&*S zbsHIjTqd;IZbXh+z&4J*U8$mJOE6!t zh5g*CU`qv&cA7fx2Df$QNZ`ljw_eq%^k{om6&dO6%B9%3vNSWe1vd1#_}H5aZ#B`e z8Y+Z#y-kR6HE(SH=+xtKnSAL(@QW?RafFT+KIuI^=d{StEO4q{T7AuH7!!V zE9f62wwoBTo>xH3Tm?9TSF!m54x7aJxcSwX9YCZXWDao<4Jhrr3EyoZTo&1#PW;eh z)22hbP$V#DN{Z}hkYNk{gS*i%1o4XX;hMj$_Ojv<5`_H63S}*2LpGQ|%(yBPe>50y zgt!tz+Kx3>r!?z@f=YCxKpPkZ&XCOcir^k1B0gBayL-S4C@Kg&{?i-LDc|Wy_SpXS z^Mr(&cc$*NNftV&?XQ)N9#L8%Sl(A*VQGBgp8k`D2f&#L1{M~BTGxC%u-Hc@h^zO8 zB;2l;1_?%ab71**iTFSzj;bo15yP1z8l;=Tfo@VFSozd; z;?5{(QciE!%dT;{sfR&-Gk>%@#05Ar0MP>UTCaTdmt#!Nm@&!TI}N!ArV$`+xS+@o zqe`@JHlAX88`4jj7~|2aNWN2aka>C+eA1JMmya>1hl32ZC-OVPJD`{>pjaJPg zOJ{tg*G4ZMbf%7}po0QM`zL&~$Zni2a1>Y4(qBSu#Y5bnY%61m)$v53w zx9cmB?sb{&y$uMHy>4yzAZUMLiC+C};JO+D&V9!-#r5!#8e_h(ARvf9Z_q zqJX&$E75?P70}_61{$*Ls1xc3>Q+ef-f$fnkm_a&*|I3gTeKnJ)5CnZi7%*p$^W3!I%c%ahaoEp@&gH4E@KVqlEX*+oZ$A~DJA?g>CBISwJ!XIo38&S5t{$DRTE3d9#<$HQX4v; zz!M(;MBXpJr`zHsWTX9e4=wa6c$@(qsm9tOrZqTD+qFd)VP_;vr}hXaSD$j= z5H2;q`7=`FT9}F}n!p2@p4Hy9 zF^VJ>^iq!>LRL0^#Wx_Kx9gh-7W~Vbs1NYWuTieey*ntIXgz;_RF)be?##u!wx{0D zgrIDZ={`KFl@UbJXyeInf{VVrmte)phCJ5WH#(yGYp; zK~7&$+pPq^Z$>d~aF{UQ0j*{n(Ur8|)9KU2C4G;rav+Nnwg4jPE=4RYH7S!V}!BRL5c$AiCe9O>D7zL#ozq`fRv!LTzFW>e$ zRoVUxTyGV_0XsmWL180KmCh0Z8A9ATB~kET&|{!(2k3m|g~sk!&k^7iuudy2_ovPy z0L+b!5g1dz1r&AMawHjsfoX=4`%*w4d7xX{f_K1gT%@G)J2yYE+xn4ia+%}y*X3lt zixN5OzkoA9Y@rIQ$=nCi7JrvJhi zz@gq)SmZYkR51Qbs;JPaxe2v-S-TY?B+kQV@KP+Jm$r4g`}|gfLz#@qJW)L`0f3J0 zdj35fo;oa``9{%@IO9i!b1nzP;eg-& z&rkk6Cy53+j4*8T%U8XBeoi6_`88daFr_;hX)?)7_V;hqA3-#yYYK&gd(!@)b8p8o zVF#j?#a(azv21j#!pc^PvD#<^tw%%e+kI^fGo$&xA1osnW7@VM)x~bKAeg~u5llsvi{)0qFJLfCZ(;Y9h9 zo=gEDVMY3JS2Yeu#H6jCXY#*U-$Ka0X+RaqleNfSJPPeT)zdW(+-@mGatR7%N!?g$z}ylx*gN*w7x|{Yq4tfO&t)vaSi+|FaFilhgvo_I!Vr`OIu9oq|73oVjr& q&*We9`M;~iXp%i#bcUaySK{Il+w^3VvXW@PpX_TT$KOC$ON;XJ6H8lL8W@}DLqLf5M=QdrMGE7$IOs)`0?@+H&e8QTKtfNbKX{72mV1LP zg2PA-#AH{=*IFP6z$glMsZ!)Q;pJzC)oD%;3>E#BR^fg6vAPJzwB`GC%F@x|^;X^1 z?QqY+^&(_i&T79NbS^K1&lri5jvS7ut20dC1RSa-6#O?BLRYUhU7{j>(9$s1E&Y3Y zBY1t7?5xv#-FF2z@PhD=5F+GXX5RRup{`;Sp-HMDmx@7`}^gw8ieg!T8cbPj}Lc!D6xGkJedr{X%I0omfz(Y zzsTo=@04B%25-II2Oj979({;QzJWG8T>4S*>Br^I`R9ebrl6h`be}>`zO_4=!Mm7t zz(yJh>{lZlC)*5852cR8OIe+XIGFb}EL?ON>ZX26Z$Bo~LwU+{_H926<}sm@w$i?V zz|e7c&c_X-W8?QC3;KPTikp21X#^~z8tt~NC>p&omqWM+T6pHhJaK9S4xgXRx>|_6 z1&=20vZDD?_JGui(WPa8VB_msMY7d(7QZ|QtqC1blV@M*QSm8{BXwBV;w1dz@Y#)C zD3a%|)p*CzMhN*B|0o-H=A@S~rJ<0EGk{HvA?EmAMNOVmGGuB3c8+!#<%=cYy|+l8 zDDFBMWmh-yCdpGDVI%AAS;4WV=FMMul;0_3*jt1a62CSLjTD4_XVQf9#UNmn^gzwk z7ELV)&z)OAAu6oUA7i+0EmU;mi#N8nQY-X|Cv;S)zBeT?ipXpOe!~j=pa|(Q6h{v< z$#V82;*bbFPI$W^`b$U;5Gf!a-ANnjGl?|f8PTW8gdF@HTpU`$xNsCgezhk$AjqFZ z&*I1kj$_~nUk9%fEkZL)0lrS?-c7tuBUdPRhkRUq3PbCU_Qgtvg)w3~C~>9Dk(dx6 zHNDhn)ok8_VRrcZWA{hocBppN4*^!D<(YD~@-(_$@W;X?%tNHz;1R|qcal^c)jwBWR%pP>3E z{oZGPR+rrT`SkFT8=IEg3eFJ>9E}6};su#ns+Z3&*3x~+;(vrt|1>GhO1fNQWdGS@DO(UWv>^C=8 z10N72{nWPAnK#4|jI)(+JU~nfAxTRpr4<|aK^hgZ%hNFoajcD0$&gWP*qQ-p0C4ge zHy5J64X>2Y3}&vCt`z$jMDX&HSCH;7TWw@kNb|mXIT+kfJj<-x{HPy4j-bKl1SmZ} z_oH6*FAdis1^5f1hue}O^a^JBp~w5sfT+Tvdz|&CWdeVCJ`<88HVj8z$Fe5cd2{<_ z@iWd_{$Oc@2}lB;@^{F1-sGP#M%8SoR6fuN#Ae7FA=Sg0gQU{7Mon|!-F(k=AjaF` z;#fC*%NXgfLiM#c;+`dXN9#r_At{8ic6eODXSdgvIlMwMT&9^vDqb<-hQ?l&{m$_N z-Ib>q!LoJk8}$#jM%X)nG>ieb;*Su3P==H+u{fcZFXYheQIXLk+ZHB79VJN7;{}8> zh~|TLzHqOKucEICt@7$1lzIOM`zl5fE-qS}Ni4(dFGWQX9X=I)9u^Ww7s)AV*~_U% zT~5Ifk@PwyLaaA>ePLa9y?>ozoi~8DGX)*wpYw#0`DOphIm*GPz$nSLM3bJoB1jqJ zvM0GGdGZs^yOg^GyJ7?c1o#9V$?rMQlbtx_Ij`-8w&$mvgqbtzMrtd?6C$dksw1b~ zGzhwg=8O|;r=KD^qq$Kw#kfbfhu$j0rgO=}=1@;07pNA^rMW0y)Da2}YlMDg7cCJe zkvU3R6l}6^3uyM{RZK166K+wtE4@X!(SY*x`t-W-b$T1R_X3O|QVL!KA_3wHL?2%S zq#E257T2CuoN7cm{#K>duS2gow^>N=IPks)9S2bbo#R#EpW)!+x!~vENwF8R@tPFs z=!nCThbp(Kb#b>g4!QCT=-?Q}8GT*VKI@=EanWU(C!G+`ld&itUQg(Ck&Q9_XxzL5 zKQ1)hU{D($IP=*8L%?_3qR9sJ{=nPk5&y`g1ncsD_jXob- zQT-(JDJO(Hgu5HPo3oos(l!S*Cr^@9QZdfw2J-`L-I*6~0Z@{DY4(-kXvKdkk5*BcaXp1m_GEeZswsOsA zbo<~l5zGwmyLUBA-UsD2ze zJ=`^RgY&p*92IeyfvY&!GP<(kubXAtUm0~3gPSl6i70|igJ8cm{*eFffbk3?oBStB z$SXQ+wX@o8e?tEXbSVnP2y%)8N$2EeF^x2r_5rd1Oj)e*^sLNPY-bWGjFi{AK1enppZ;;w2zp{{2(e!u_v)9#TzHs z^R|CB`OJ%GxMbzR;G~>g@8U`AhpG>T?b0hI+OaQ1DrHVdDP9`t4~@^K&CA!RucE%s zs#R@|E{tvL2^^YBx*+G{^)Phzc&*ab{Ki^aVMRMHokeq&t<$>il#+l+Q8`|ml~rpu zA&=)6=Mot@BQDp7is{3r3xu~68|;18oo$_yot8OSl3cGAwCZiId~oTQv4$OG(3OvG z#9gzs4EAXDlury7QU~Lk?2wr#TqO6@=IRi(?1usqYD{_U+;4wszFiPgjA>R0t4?!D z?`(HMAachzlTeShh;Q8Qs_|N~(D+CnL1Uu1U*)*4Dz(vmY=e1-8I4I4^CTwedT6a7 z|L7`qlg3HLoT3v-60Qpb+O;P&8Hb{~uUC9|?Ros(kbsi7eLzV8cs6BQ|y+!GTr;D!61h%4LnE4 zE0UM$Hx1Dj14olTH-FCYMwjev-+a5qCM4yly^;R*ZRSPiXOv_FqH!Wc-ZE#I>xq+{ z@Zz3gu@lz=Ee>G`kJqui^?9sGbS&gAzQ`on?)&^ zQgCtnlP#|j0UMMXlI{|hw2)SO*M&QT{V)D6I%k+_z(q%lzLKbcgaiZ?`1%P1G$c9% z6!;1f{0#w#2Lb)-8Uo@iB>vymGLSF-JOhA$_+$(L{PT>wQ} zUpyp6wzgKB^z;r64s;I8be7hJ^o$%F9P|uK^h`{&;3sHpoGfg$9ce9WUi=>9uWO)z-1Jv*jTnxu59ouit#y8XNpGlZDNnWq}t+e}9Lbk&c1>zsU3* zjsG8H_ji7i{aV-W>A3F)az4s4$zn_=Ux3M&{yMJ8X!q}FV z=?}@j-hM!JKR2hmjlMO%rMWqHD&Bwe%1!@2H~&p2ZS1ITrX*ktrUauBm_=rmSAWR< zed|9-mH#1SV}3;W;LaaPZu)z@JkZl`Blz_$*a~>zx#|D5C|>vy{zYA-;b z3D(#IFOvUW59GT=sQ(rFJ%h`5U;!4_O&~t~@AW+KJ0|>35kNprKS4#c8_Y6D`|pv# zD!uq`5&WM@|C06psTB49y!3DP`9ClHKj8fvYyS^;fvEp~v6T18e+GV~V9(*b=mF2A zpFmPAiyQYAy~0h?>5`6EM^~}0trW#pvz7YDCe^X-l*AcNBF za+~{a`oF_pX*0m*(y2VFOp=X#LR8XTVPB6hl3*7FSVW{rJU(v_FijK|glH|GD?({2 z%q+kki7_=iv0f`4f9*sVx}IRVsHUkKoatdDGE}7&eG*&J=LZ*)ZPH)6*7hk|w(8^* z|F3}ZxA~xgwA_Gw0fFnS#pW`K>c+{$9l-8mcrmh;%s0n@)TCS`T5gg9?;?d;fuf&a zUGz(HWMN#m^z_mcS*-H;w&*n@W2I6=dkfzIGDN>&A;g`r9$S}_(X*>s51QML{Iu)b zV&1ceBWg;vSz61&Qb1Q@tN$nU2!jEvSP5hgI2+5R=f$fw5wTqiu1Sjsb#>_*>B;%} z3hRBH_Z_pPtzxN-LWG0_PDvBR!jjn26tY@(C#U0RQ_C0>fZXtNPC~qX@wSv*JXDAQsTS?bzM?~OFx+q-Y{>b)0 zrg%_rLMmGKa49CpF2#97FSOcTAW)(*;RA;58c-yecU~C6YXWt|?#+_bdRTO0RvA3f z$CydB$f#(%SbFWI2|lXos-*DqenSC1;gZDR4vG|~=R0>wA|Tt~B_@rEv{D$*UOrVJ z5t85Rpzc_o4MG6fbYV?+q^91~?8~Pf2CkkHi!rJXQ&ka3NTje3TbOd4fBJr0&{|~84PvPLHFQ$Dq>t{Jd^zOAK|KAk0JcwpxZ69=g9+#b#$2Xxa+D%O~{L?sqV;{giLMuuzmur*@sBN_8e zEj+IMi9}QtFHDfD4zE#Bo8WW?Z|9ry-c_@*ix?1V5%d~n*I`E~h-xcG%i9Ha`dR|w z)E`t6BCjE7UyUv;&_OK}F^!C)CF+#yg_^ARR~Wcel|7~64*wAAN%z9Dl?i%R;_S!u zQR5(0RHf4r8g)q7fcgxg7c_KziDpEMEPecj;hW=RP<3Sd5}-1?~JVrsFyyn0AR-ne}Z~rhV|po!Jl3cA3d5 zulM~Zy|-c{ zG8#3aOx`n0ylgaeZJt%YSaNm5 z;GmwK?XNnYmRZ5}t0e&pi3hyJG&nDSc~g++P~6MN@dRK4U70fEM_ImpA+B0hp&;wU ztDHcu%o!1MlUw{Uvctte)cAe+WYf?aV;v8q8*{I$&4{pYZnos*r?z(O{r3SlU$VPc2ct9OWhaz5y?C3KB|d@@y6;+Hwv!<5_wTz?_JCQ z$kO$_RbBXt;S|z>^D^CcLzuGHTI$f;2KE997R}0H*ZFcW(S63UO40?R6!mDRc50BR z!=@k7xHeMeP~K{56rYLt!@Oa2O9JIW1vES~j?!#ETM{=VyYgq194*^i&46QTz3xpR zIG>I&bHHbodsWZ^4;$@TqT-cHS;>dq$rab_umGntiH&&Y$h(Bdm^i4$!;Ovib~WxI z>E6QtGMGV}Jh#CY^V(G1iUEA6m1AA_)k``zZ^}PDr+@Lt8rbQzn1t-$3k-q`^c?l( zfkLL#{h7u2?Ns$Fyo^pKTgy+t6|{=iaRdp6wN?qR;$(njlYet59&uWQ;af0v4>e7A z@m_3ZVJ>J$qn<=IeWc5w{k_mMtbm(F$-H|%Vcps?Z!hAHB0JaW{gxN?k}vOGy;`K2 zf7t2p3Pv5#%Ei*8DlUxtKKlH-s8Th1qS>g3QoZvPTLwZB6gWOfFI!ZwXf@|iE!Cc+ zvHEZzed-B|Py*!)nWDPamWVZyW997mlb6?V604}i(OYub%k8pIvoMRX9dVIho~eG( zr9*t&xe>|q93~2j$aglqEKYB>$fKl>ek+TqQgBMnSwS97mjuo?6zI}AGpdYi?cKvC z%oiGtp-N!^ro?G``lc~P+U_Aqbt5{o2o*4&)F+>-;iE2;)rlT*IVbADddsN2qfoWv zFrhVSrV_M&^QfaSB?@W*VJS|jng$wNF$qu$Tp%I#Er09bOb+iL@dVYwJ!5JciD(B< z<0M3@hFNsza#NCot$Y{xGGLFha}?8?C;f(c$VKLh*VInx&B;RgGAdjK}38!CCa?pm!}^W+VDJ0{RhfWMPwmc zhAF_Q$tr@Lj0mMf$$KiKf`O-~6L}|B-Aw{)nj})qqgzAFruy7gTjnxyVV3&d7PBr5 zMy$g3;p88S3fl)%+~*xz`a0HBGYwLA;K=wIpu(-P zm-AF{A^{Y&cf5+8Ib@8D{>>1EtfW>gJ13`Txb(33)`v}fdQ1J}?qhzrjMMc^ccE79 z?Tga2Z|^^(?_Eu;EOln~(5sb79l?Lth6 z$xo(4iM0aScb{I3?Fv!jP|)R3iHkvIGV#Ra@5h z6ngN`Qk94XvLkyxNDRPSntAngnU6JImsSZay9uKN4uyTbj|)^`src%W-dB{3L=h68 zrO4N^qzqc{DHIu5=AhG&#boP1Wj(cmT=SN*xTF0_NBS;Z1awB*l{?)L7#K5@ z%-hUC&diHQ+cphy@PeahSTbg1J?;~OoHq_Tp96umJJ{yuF1DXPrNltKL;83)S0?|{ zD-9EIuy1h5NO9<&#P!~u%yL1mMYGIiJSOsEt%g^i#^l5xqmh~*k`TQ}!NKzLnXIid z6Oxx6dg)T+{h-$|_K>5=iHQO^eb+zZr%2Y?%<^e1P7?!89)>@V4)8dzU%$Wk#gvLy zcj!D7E9PiBrvDC-p&*2p0D_*Lo|1a0CB_2LP^c%ZRtv>}>h)!Cy+nbhk*s>vGmhHf ztHA9kC^$o{=pIT}yTaKN#s)bWForHGajWoM&vAeyoQsqz6y?UwdDu$n zf&HP1SVPjjoGW!}`QfVJ^zHCPglWF`IJmv!0~n2q9GI^~^?XiI0@7JZGDbrk93BjZ zJ*<~#Bn)LasFyzuh{K9#v~+a#{ku8<3mN~pw8A(I*docO<0w%U?F4=@o5ERqspEkC zt>j*suw%$k&n3$b=`~^o#Kf$L_WlZrnGXdD9!_MROXl6{l*W~w=b{rT=4uGPd5#bz z&VtIg(stiJ_m+uEr67|(o6_Wqgo|x{C^ZOxKbFzFle9H_Kvr@78*qgbzkO)s{(A^? zy09_GQB`}3$gADAy}k4iz67x7A)=3);a++e-y9puol4@Fh@SK<9;gZgj*k8ITB{0B zAB=!0RsTlJ!d&MTN)P$TN-@##eMEf#%3k=;KjUA|R36!z_WfM=gd*}<<1iTiJK}E{ z(4mR+dK%d)NQWc_9OG`1upZS(0NQ9`)#!ZvAIkDcp(OD=^3?2OwhS8;I#I{tFPu<6M_$3MM7kGJ*qKV{r z<`&!7e3cVCb!-}|ybi0nm56vXhV)1b#ALuqWd8ADeg#dt^W>!?F@N`Q(ce!@y(P{9 zWH=Di3pSGDePdC<_F6sP4%4KV_qsb7xUej9aX(3BUL_DCvgU+^iPOOCGSVz zsdZ`4gZU{lS}OQ~!)Z^TP5Ti7Lps12bzZiQQBhLTgdGe9AL4O;{>8ji5oion0O90B z?^Aqxx;$z@Vs*p$8%C>#?1Qv;fF?DERR(JW^A+9zu|3EE#$TgHND}WrWz-zb7)vbV zf`f}(Y|fSTSd;fQ>O@;gl7eRtd<&&k_We;51isT`G`KucM4$#Ta5p2Zyrk~g*1SOnq}oYCQZL!DRr)|(_W(e(d;*(U zm@Nu$Z!t49=w({O{Pn;NbyyVSJM{_!8-DO16*V>G*ygJs#K%07cpY;_#_6ET*qd3r z&CnRd{9~pH#FS7Os(5=}_Rd7|F84CK*VO0GZ2s--PT*X~I)(4nd4=@Q zDu_KjX~VRqP-*i_82V$K^dj>PK)>CFcmWteMZC*OR6A(Lx_Wk*Ra!{3P>752h&l`% zfQLF+U6;;Ab|psf+t!u*JuS)bOD?LbQr~m|{8Mp-t}U zQu^iN^R!_sV3nq3H`k9P(4{J>Z5|f1Z$F+Bh_F4tV;)>ZV;Hk6*0%HO=9Ch#arS^> zbZo%VQNmP=6PoAJ(s(!S*-O(#e`FH~k^u_X44ejn3((#n`tm7M32e14uZQw^l3DJlkZ^JJ zQ$}9HfUGq0SZSNQ`E;0S+!phIz z(-!)JtbqbzVufw%=&0(EfqkzZ04q4PtU~Xh4I(d<8*;T&Em*UD_IruwWMNMsM~}yJ zm~Rn#X-8BaXYs#s87v_Tr9QDA%`r67AKiah^L!Gh9V&yjL@@y2m@F=`|0CMR4YC9_*8?3-Dq$frLGz%n6I1Q0tAWqsDTOS7`N!buR@@fz<9FUu^ zL~mnLjFgGiJyk0EO*-i|rurXDIRn5Aqten1)HtU`E0$ipD}9`YdbZZX>1~+AiVb)d~It3mLDEV7NcFF5-o) zxYSbL>C|<3WNun7fcrIWmx)Vyt8Pr^+1m}(Nb(V(xfdLaJjeI762Rp`A_ENeh& zl6)fkCM{+~& zttsTTX*0gZ&bNsY&>XKi_%;0xqNV`OFW9bK=ABalb$^SdGz9>MmYi$wSY z(cmt~&Oxood&frJUV6IN4`c9@FY}^640E*NLBC2;aERq*URrwMSB$~%=~tfemBH&H zjKIN;+xdZSZ~_LInwE*Rn)6)ATd6sHTmn45Gm0d%FhT&m7O2reLZQNzB7v z;?2wey@ATedm@x-DXHbECo-!dnW(kRI$HI*D%j;%{9A>H5Vs)H&U5db&5!puF;Bw~ zjTQx|nT05l)ftA18@?}+y8iK6V8EKRp0sz;rbNYSG{4I{B0hS}fUYa#A#&1Tf{&|= zA+(Hk5VDW2s?w)a0@4k#q?vDch`pPw_dd~#1UKU)p@8QgVOZ%!yV*IJ3@`}Y{KQE{ zKTo+ZO)n~CD#pSvTbbONtGbB#TZ(@rp)~g=Y|y6UwM=y8;Xm3Z(l3sWk7vw?-8AFj z9!JNQzQhcl#!U6TUotY}%|%VOCVkVb3N?cYjtS;XOBrlu zG#Tt{ed5e~X}j>##cdHNOfP14B8l;Af%F{j{b7vG=|dL|D+Zsp89(bIw^CD~ygkl~ zEi~yK&xUtR?G@R*kdFuDQg}73PW+;f^fJ<_?7QNZUy&<#>Z`f|?kg7-j&>2ilIEm+ zt>d_O3_g|M^Fax0u}t5gM#V==wG?altDM%EWrogV^CdEz3_VM|JAp1O?%!hx*~D zo}d6YR8)yFgqWa(gM(Ts+L9LHa1kXI>PqSnnuPbiIyI;wJYHy)WkD{-64DcT*C_F3 zqlQG$n+u<^(kiLWVE98Hi@*sO2g{BEFGZ`F*0d3%=6awEC!8&zuuZ=6#Oygvy(@3^ zeRPYEAx>JUC>M138H|qXvoYV#7Y5!gh%7I$g?|*_l=2{OGpI3juj4>_osnbC-=hQu zu(zsP?IYhsVY>u#{aQ>OeH!$4avo(FMkfWjRQKKipr44~&E^CV&Wnd7E2JVq*z?`p z{+6pY2Q>~uX#Ngd_d3F_f(*82QTz90DQQ(}ZjQ7H6ju?S`;7c{WPOJ%@?&n^czSN5 zgBo2wgTM$;=X@@|*I(u?nsTbQREswJD?DTdw|=CUPJm-bUWo?p!o1ZqG@T6!_WC=q z1vBhsUr1mQ*dUVe<~8NC%p5^eldFPYcOt$4+FrRDYE_5} zw_D#v6ZL%gDsqJsf%Y5r@4H3Bo}gI-u==mX8rh%_B_#SdPBz%lkwt6rIJtLeRT80W zp5D8qR}?zVdCc3A7L8Mzm7o1mVqab9Mjq!&a_C^Yf2&CS&W-itg`M+yW-k!$RKCZv zgy|j6O5-mji4u=&6`&yng#;t2^yiYkj@^EIu&>k%?DYNF)^{9q5xvukrLJ`UMYqp{81@Sj(mS%#t{mK028`^A1NoY&> zECXH&X7(@9qz8##=rCCSk_SF8o2fi=ZkiZPR&Qra^rn%4Z2NJV1d6zq>oG!9&ta7& zuWk_v`#vqBX=gNPIrV*$9L$O+w5_>u5icLp2(|h&9jP(>4%Q<+7^p!Y+o=yO$X>nQ z-x)X9c8Nz{lw0I>`25}kVTZScO&ExvBCNBBQG%0@oUeuaZGV3+MU)f-V)3UFVzS$q zy~LP$+M}VF{E_)*?*!}Bhx^rr=>cSMU+-MVi@jnYE5eo{Q$E`M71I9}1u8vwghg** zp?d=ZM@4`4HiA=monO?Rtr38mTf99KBlT(e-Y;K!BIYW7A=}^7VK2e@^pB8QJ=v9W zVvHoZ{#hj#Ew#EQFnw=Qdgy*}lqYV@cm=4M*BcdobM?0(zJPHlcx~CMm|%9=X)ymK z-##rg@Ru`s=_43s}vde0mlkc6KRbU3>E{%Id zya>nd-2yx}+DQ9b??r14@@o)=76@Gq86?ho<)woWC$`Ig^J z9RT5xm4LUTfdY{`CZwhG{#kG@NaVnrA|dK90Xl&}tm;Vv%GI2a0EOI5v@&81|oq-d|0L zfT0xcb@r9EuQS&mDwEzohwY_YOU&tgfg=Lr#TfZK-+biCRn(Vo6!sy*AYv-;5mJW_ zVAboJ=}D7w&rIQEg#DSb0+1f$DXtIH*GrQk3I8@o7;^JCI|xzZcV(@pT3 zEei#$_DEfV_S>YonYA*$NBSwn0yI~>deSXo?p3z(+7u!ZcP5V~jOD;hJ4BOB{)=X! zf1Y1bEobE_+H?#sD}$KXqNVy4&iH^J)P?RH$_L1j{rqI4ftGoumn%J|^>#TkwOF{C z<^)g})9p`b& zzQ_h-XkeUjmsg2|98pD!->vpupzKpu07{n}%Vgnw7N?KXvv2M6P{CANnRH;K)@NX2H*Pkr32TCy_cMUsKMiDP|4D4&>h= zWFHM>jkNxpkkW_jySUH6N`3mddv7E7x<3}tcXn$`d?EB%2?kQg7^;Y(S1Dy7i#e|< zdAHEGonH{bL!Xe5_I#oQuTfdGU#@UFNp+%v6c?icaM?XkoLJ#OqDDw7-d?6#`k`K< zD8@e%j63xLL)&-{KQ^ZL-3~6>9bcm1)!hQu+jaX$<+uFA>d>br`qrzPv7bd0iMo9L zhDWd#@abElE`!;n@|k_fDT;25d|%R50e9b4kn+t@cz^CsWNUHoft;8a6H&9YgZr>x zQ*Jk072Km+;?N&`SXLWy*+j_ESSNkRCI+>x=d4?@(2^sr(ab`;W?-&_2iPG`O9f-X zd$>>ht7pfi!u9H!UEcr94x)k&d!7)WXpVIK3|UH9IPi(4%ygI?KXO)Nzr!>wy_j5% zVeBwvcIESA+cr@PV;VpFjh(%YV?`;Arsp{M_!2%Zj@>F0b`*&kbQWqHCRl}0Sg>bN z>I8|4fF!u1%O0wB*x=a7w?Y{tR>ZP z49Gz^7(PKjh}!I=XaC+~s?Jm-UxHO2x*W#-l&G)CXcW5HzQzm$C|u4V1WO?u#lF;$;TA<@DK8#7(<^|j)A z;etu7xj1EZTaJU%v*%7D@1*n0B(>}g87=G^cP(HoQ(HzX1NfYZcCJ+o7sZmHB9GfU z-Qy7@#B`l(dE{=kR=CJp@!{zSS0?wQ*Pd+ix@Akj2(48>vghBGsN+WT$e``i)pBbn zdKt%4#&p>!D;gp{ssj75!I`+d1#8%VBNnf~O)VM;_- z*M0s+Gs~;$Zz`qiT#Mp1 zH}30GeM+g>;+`kl)jHo@3<2_+(er6i3Do69dADZ#^E@uuz>e<+jtO|(ZBW1n&1KuY(yH4`tnJb4 z*S(#9j3JZL8*)=AW~NvZJaU&i^(q}h6uRoBX`tlMf-Du6iS@>CvrDHQP8T-JnASGM zp?PWf8*DB~b!+PW zg94LxS*ARJic{{JYMN#(K8J5X2CpV*bQ+Rb z;!D;dE0oLe7d!^pvLD8&dj~I#Yu&H;+F88{K8_@U=Ov0!$vMu6USL){zKJlva$YAJ zRn>v_)mAdr!#sX`jFs8eg5lKpsFt;;$;C(}!1`x-KM<1j^N59txjNM6rKCuL%httm z{155i!!d<$`zB%KWiGVUOY>5Fw`=Wdd3L0WU_b+aypM z8-BNwz}5%lG*0u{z2N5$o~n$Q@}X=m6M`1=w6-}hg3s1nKoNTTAewr%E$2|hl8vRi zGt~Uj1zu~^`g=b{{S~-ggc!I@(}fGh>_`){Z8C0>-l;0Jh8E*AeMc$VDc831 zy25_FP|IZ`eR`c^I4wVk*u5cMQFEcWQv?HfcRJdivG;*)iUs64 z7ejLSy}@)tak05GVJx){gzDJTU9iZBsZml;teJ0cML4=Sa6Hj{jSqji>04dF#%|#@ zgRKhlr8qIN=XPo2UCQGng7@>EgFouz)us-V5d`Hxn<`{2m<-M)CIoMrC8XChSlDw` z7>Lm2unthVo_;G(4?H~IHeGn%CSy2at!gJ}riqlsYYfOmU@daxtrzjJC-_|9)(t$x zDj>fF@56FZNSTsdotf2ZY~THuB8#MTUPvI}(@dLka!2}T5_Z0|I7U;Cyft5)vL=sR z1Z?a*C$2+yHj(s-1fidG@m|FX*iThUy298{W;mujB|HE4oK<_ zIcAjpfm4?TqX> zw_rPvV3)_Ia+;sV-JcM!Xa-2Zdl`}{O>_`kJbC##lJN>VRMVf@u_|S4(v%T1gx;NX zdecYjMn)CANWA1`(R9%?0nLn^Hgg?u-K4BIWn~6&M&M%UkfP>cIKE%#0JsUssra$` zNv2<`Qw4IC0(8yv!h{`RGUR9zQiYF?%AlN+3+Jg$NB{6~cSz2haj6Z5L`?-$Mnb$w z1U|#HWLJ?Qr{-u*T{j_vsWjchY248H;aouyN^D~ZZpbVp|60AqCd+(8PCvC|XExI&78qyQ(3v8O(O`Y0 zGgmZiTK}xoG&^^aFYb*{%Y`L&;q{PB^agC9nT(r7Q+GoWs0LT1UbyMC=1(d7>}HIL*yFh(1}xTqC#f1rU*d zx`U`d%gSx|noPaGmSb>8rmBV@6+Us<Y+JA!@l%2ALB@NT((JP*O2L| z+_ATbgu1ke2BId*92DEpG%bqF$6uobr(ahM^KcVJw0K>cxH@c5qC&BPL;Mz3o=+Yur zC1t12V33DxBl^uMmx4Fb0|{P?S;p|cOrp%qJSwnko}j$mEIi4_+)buczB<~+_@B(7 z6grN{Qp_q4ydz}PI?7R0*QJMV@}1bQEInH96V>bCZ~K*YNVc2u)`n)aMtUVNsKPY<69&W)$i{d)`js zu!*I`SzqMXW+smGk#I>F&w(Ww#)4g4b!_JFtI9KM@e0jx(BX|sf053ca~m5=*3tsm zvV&|vw`#e~uPAF4tUs=%yfHJntL6%9&TCRz;^!*NJ5~qKS#zRM7S&&TV#ij&Jiz9x zmJGhz{_dPdnL;a**$&vorAqm!M|1P{XOCI| zo}LZ&J%sBk<|`J|5t@-YFJTuYJfNB}*Epvcz^0>Y!PfaIhtMplDcdtl0cARy9WUso z@ri4*?t+v$*91qW%5<6;qiNi%L{5>%u2)wr$iO~ZkyoqyRcwNV`+{CdvlXMe+Yriv zEOoa-bb!>0aApZ+2|g>sU>3yz7~iujqNJS)cI66Hq!IV6s^Z!;aQ*1CJ@xi-UX{Jq zefn1_^1~E+KOLT*y*lsgxF(xFIJ+y_ZtM)$wQi{AC@cFe}rkrm<3dUrF7WZ!{8N zKzy!+LsZL|rUqDBz!;wBn-#@|LJ}cmX2Dbzkjqhu3`cW=z&_<{mQy^to}v5j(}c0z z?Y&VJoEw7ilIsCEYs2w30#_9^i>q zB3#$N`TDlYwV*Y^X3m}Y;Hsg-PSx~d^WHht9vM=t&n6tYi6?knIh{{ksKV!Jo_0#i zI1tKue+f8+mj=h#ye`vrK^UFKiB95iLO-;%H*X%zKxMXZW>+|nSC|Js3K%@8xvnVzxBs#n7Mg7^?mk6b(d}Ox@F>rtF*j4wa^%gg>`^`vXvv9#=?{`;R)Tx{QO&Nl zzqXTprHEP_fN(1%XRcyV%WF(rmNx156#M;{=PTgT3tuS4R~@*A7xb`u7-HX>kdQ9= zyZ6S0e6eF^=2Co1wU?Ed{~G)WgEft{zjjV)Rl)z$qM?NE^WW*`n2HuBI{3pP*jZ;| z#^8M(CEet{o``pvUO`UqdhL-f(t`#n*{u4PxyPTwiHC|R=z+@Hp_q6$Nx?fhZ|AaP zWn>m!PX2#XeRW*a-S)L064I^G7&J&pHwe<*Fm(6OHH37DbPk;Y(#;?#-CdGHcgOG! zKKK5f`}+C*tDZS$pB-zhy$@WfjPvf}ZsOJR^?#H_|CY-CJze4cmv9wB-&A!4oF)wI zyFdT^twI#JB>}EOpiQhIc8QIaWb6*j-%}@ref+OF=qKEG=JEa~PsnR&Z%Fyz zbC`dmqm>f@5qBGyZJ9qj!WIbkV)uyjmT%-HB0J}AZTpA`aO7bsaH9@3FXKmlNim6Kwy7z`NQi=)R_=d^7O}&fqm@38R0=@VdEE{|Kj0 zC+XnI?JaybfvY`0qbisAeZXA*Q&3`6UKYn~$n;Gel;=N}L`n!j;TAItP7lM6&89eY z=o|lxpb_SbF=DpsM~;l%qY3|i1mbH*@LrQmxBx+OVgtoH0ZDA#+5IEfk4WDN+Xg>Q zl#y70pP^|I@xPrzi%&C11ZGlWsp0(>A`r=4>D;+&-YlSPrzI;h@?R;~PfrA|6|&J=o-LVmf^}88SYN|>5xS$JlO9%Kx2;A)oA3Jp?z2+CZ^P0P~2gV z!Nxx~pg|UX^9Go?J0&QmUeu{?b_F}MG4bjNULv{uwOzPSTV+#6zSW{YKtU!6GWRmP z>80PV@-X4^R{U?53{Vs2B9L5k-+yI3D z(+*%u8P=_MvKh72=YCx^J`g1nTs8P32;bPPiJ(7BQTCkeuhe{po7nnK8}(T9$`v zt^iw`HWDH#qh!059?a^hAu`QxT{=zOQmCm_^Ked!8Uf(_-P=-M z_}tu0FOzgdjXnml{8k}-9~ZN2c!neSHt{*(xNfY#$^agQdp>P1OO)xHQ!|>A?_L74 z2dv{><)n(e^%TZu{lhi`W#Ako?;RHH+G`P8Z8c1+jC6y& zH`x+cb!JvMgq@yz*5RJm(G#ZhM_0(1b8548 zu;=cmgb?aT8WPjI$LT-ebrs(qovM3NeWV}Tr|5mG7MLw`A)I^NI>4};{c8*kIK=zn zkMggOgXc%4$B$WdphL1_f$)PuL- z-q*xzs9dM*1I-`G|9Izb98WComhvbr5{{;<@bj2dOUrs7Fd+Q$EMm#ZYmHr#hb@||b!g|7!>!+9!?OK-654taGzp@#@~TlMz& zP>_*PX{Bq@oV}g!xqquEoJVuLiHT~nlqdr9*w35lzmyBjYKBxVTMgL7` z8C|M%Kn9$EJJ2(kJcoh=$EjO8PbTIRbjiLa=^$?!+ZV-0;K`KCfzDV|^|zceJ|riHRqE7tdK5UuI5j*7n* z53tQn$O}6&8Sj)4?Of9elJ#(63zbkwS%f!-!~ZE<$Q7@t5lV#fAb5-(iK%% zP@-(tY6_N>+YwYT1BcE{Gx%1w9-bXYQY4*(ZI;bYxEYW?r6$&JMTT<}B@aB^`%%$8 zU9vcf#?k5Y>FaAR&oMsU3%%#DuFaD?^ef467sVAjjxI}zOwl!v%J%t1W9rKCEK9GFWIUo7jX_fPBi*c21w;toVB(CP!M`$P4_N_fNl!9cx{47@DNYELYgb7>i_?XLLM zm~O|(U9hlsi4B>r-L{Kqo3=IepBI@7?--oDtVrG2=k0ErCE%kUyzGO> zSa4Wf=IN^YCemjd$(Yzm``b=(pZ*l5NF~ZB4N*VO!jdWeW2kiPUwVc zY;dCIme=DLvv zH0HKB*S#A1qbXIMS}RCwtv#eSLtLw)Bu|-WSaJt$6J+Gw)UTF3uu)i2XP0#GgvnPE z?U2Z-@AMv(ajC53rW9OOruTg?HPeCP!0WCUjQlQA=zJNLBz0WSC-sR#S^LIyGF<~hC<#S>icQ$E^(RRMg<=TH8Ccd#B6mcpEx+HdjDMws1AuB$fvpkxq!E0W>L;HIFU)vNt z`@Me?GzLOSG3R_E8@LxBVg5N6OE$mEMNaIeD{p>UeeY;(Z}lIvx0qL~t;^)AD^?E* zBd4a9gG%;f>YB{^4;DJf2Qg`gkXer!Mb!fP%Ypm$?eT{ z0CDU#MgO?Zk4XFV7lYCv(_h|h`FsW@wUZpSsrarZftI!De;r*lTOSXQ9^`4^bG(YQ zTU_93-g+=<#>SL*%o6(ai9}Y<<}OJ8u59J;`~B}Uig5s>ice!7@F$Q^XfsmUgR*&-UOao>8Ccy=j?TUI(+ekiKmG`%rG7?V|5+=hc~ zrW$&%l2XW?b`FDW-~eiB`FZlwhWy99Q;sX@;OlUyvy)Dg5fT&jZ*R}a5wgEb>5z6M zNk?;@k0EZF0$MfCnW8cST0a18!2qpoj=u}~A!YE1(^8_j5>6ga{$xdb(`Dm|B(A}$ zw|tmShB4KvvbvdIlBzT2<4tcvCLeR*&u3l6`I!^w+*UBLJyL@;@YbwMnW=;WkhTz0 zJUaf6)6nVtogZFQ+2Q|L5v|udi6XZ@KTE!v``lddc=Ph~EU!3QzhsCvUi)Bit_HD* z-GCTN5_AN#V_)%MYAf!wE-K|zn@Jj`9~u}+2tTcw%?|jm^2jaHeNXJky)tJ{gAfMwmE0UjIgPmUfgF^%hEQW6MjhI7?6iLIzY2H+Bi z>a=riSI(QTu$vjv3(r<%Eq!KB-)37ot9VcRtjvW;(fYr_Y%T_zM>>aUNn;Q^@WX3N z=l&*vGVhKb*&e20wL(z7hi!4q9-2+#Yy7=HOL{-TI*JUufBcY3(0P?B7CFvkh)ty!7CkF3B~-*f;n5 zj;A&E6p#lmGt5E5n*kx%cQoYb9<1A-k%!3p4s%~=Hh%KHkB@h|EB6^{IKP+w$X$^o zxwTx#RTWqMlBJ44KII54(Tdbo+@^rQj_^{Vk!R}dtP%mY3PMbrQwcc;O12cR^O4jJ z;j7<#L#)mqJ^M3b@QtnwxGB}@ChQ6#iAB*M!BMS}2B&Za&sh2&Z}Nqj43~xt%nH0u zX#{DpNgSH$_@@Qj(vglXURX^gpnuPKO=3efdEd`rb*=8V^FCCf-U7+!JUaRjl z!O1_gYVsZM;}IkdaMukc#0<3(^1X%l9(rr|dd9q>oi`u1$HiTM!G+N2*K zvF~<&=OE5r;I_d9V+ipfXyiVxxWN}hdX$Iu6Is^f)(oHWK|$!kv2ndl?6i^PzKQV9 zBsBe(;?fBebQ@RYHZwfS%36>F}S{&2WGO)0wu6_XQ zeNkb2XH~ZczW;U9pC~6c4O|jvRY#y65}%6Hd>C^*J=Yq;km0L7s|&3EUGX>$&7%}r z@zm=Dn+8;;lC@gjeY%NTd4$vU3cfuri?m6SAGrgw28MDnGNWO`wqT8zeCTYoakC54 zzRmsz6#yPOVqvbj${2BtG}hF-2oG=thzgJ(F!4yLW>hxfGe-q4mYr94PzvGYT`a=gY2 ziu98E1QWk-gw_J1Ih8JECF=>h_0zlxxo21wtcWt@Io-U-|H^!yVx=AN^=M2h-{)g? z$hr0D*od$E@?{%E(vi?v`b7&eD(CYPIiXvGn**V1kkJBc>+xb`6Xw>Uap*h1x2Z<~ zYp8K^)vkD$7( zpN$!)W@#bdYeN>Ry=^)?n|VAE(w>W*krk4b^}CD!T(=Nnki8~L09@BT(%XAqp=>}v zHwwmgc2-uAOEY{&URQiZzee#3jA#76CXS)C0{>-z$AEpuz=QL?}NuX;_5cjl$JZmWh;Rze+r+%`@4FG@zRWOeOmF} z6FbFwu<-ibfAUS}^aoddW!;N%LX*!Hm0o1vg}b-`QXCLTC`E8g{v{z(|` zpN8wOLANw$I7Q4u?%*K3!jle6i`UrWQ8Q0Unlm>&M)*Ye8Uao`YX%2gHs=Ug| zlUeJ>yQ9aQV1uHzS+f9N$UOj-=5p5`7FT(|nX6m~=UOj5Wt6qm@m?O^cPGyJv;xPF z^bgeai5>zW$ZRX_M~-)vJBJ4eZUW~-W6#QwrS0dc`7X6xOilOOmeJCL9e&I~ih47X zAEWhbtn7|8>RnT7QvYmw|5Cgw%Ec056SpOVcX%4qBASGjt4BY;WBk&KPrY*R#|#du z=kY=7-STrLa2>xg07$8(!BEg=p9uUojlsMyJ* z{IGl=ZtK*hah~1m0HBlpo|g%ft)2*`Ya%cCG{o?53p_a8K}qWps*d@~KFM?7@R`vs z5JQm$d1a=z?os}ahcI}7s37(E0diN^!d=5_f?3H zVOe!?(APSVN&(jx4Mi|K1ROD8w5# zW@Qg;@j2b0;HC&?kC=vrVGs7$Zo4afBYwz*dB4sXhL-C#AI|ReG*d|i@6@boFEzaX z+dUwI-t{Qcbbe{`1k2fk`oZu@=2BhxW_-^O#>nx{@B4E#HsG??uxjpDWaQo+<66?55(YI%9WwgLs*x#F(-Z){7SO#z8-U1@AWFX8? z_0DIqH+S3B#MrkzVxF#>JxuJDTw}=XCBv>OPEx-#4I#$zF8%Lzf_`n$+fle^U&gP zJKp<>Q>CTv{<083&vv~4Y$f(D{gMn24ouh1f<9Gw;D-&#vfZ7g{PNBlK-+Ny-tExO zi&VkF*BS6OKe0()Is0n4U)eXQX7-6GE`qf?N1ni$-!)e!p5`N_LWT9b-LMF_WLHnp zt~zsi_d;8Bdm{x{(Db07HS$6>-^<)FU;uj%uyP+H`qJ!G7Y@Pl#f@AEJ0vK7gc<;ZFWm&!8t z=gfB=|1_pgs|yQ}d{PsiL9dDV0pb7>%~yi~yLEN%EFKmP7t6~)qS|s>Ahw#U8;k`t zKE8=nQx$i`nIZj(X&c=OpuA3qR@$Amf)n?T8FwDLHKb@#UW*qf06q_G!JBGulGjnA zis0j%g3jyors#W;BLO1x&>o@+uB8kPLs0DPhTRYp?+U(kM z$l?sebR&yu&0D{Doa001ZY-&eg6th061mYx<*qH#Z--Ewg(aE~aFpWGvZCZ+YCv9kxOB5-pIzz^a_4L>M{N5uH%SC2Une8ZQQV(9AzEYcXJ*-~O z35z{Y&UAR0*hU>X{2G@!mz*Hv;dMfx9L^>Mj(rM##b)nvx;CPSs()|Y0vbQ;4|peO z$;%|0nmnDM9vUtxW8ZQd*`gt>oU?dJG2Hag16%Jg#_ zJ3itFMK$NL^T!h-)S%*%qaWYL+2|{ZzIjLrEH3R7SeNG!>-(sH&`a+;MV$M;IEUjK(&a+me7l0Y{c{+gT-UCxyZ1SFf&-xEYsazSb!a z>gU|*rhDQtGxTm>^zm>cIR0(|SFl8pvqswCH1bPgkce7O+mG_oHO}8pJi2QJFQ0Ly z+n@E6RuD7_LHnrsB@o^Y4;9yc%Mw0NBorBcGw*ut@p-QKJ1`JSS~~B}7f4eae)P-V zp8$_EFX$TO`flto(?dEuTQ@nhRa)r&9^Lb7DW7dopC!2Dj_GEUo9mL_v_cun9-1Q? z_&v^Kc!~>lSMx)#qI~sW8sIuUwjK;V;OTC!e)LvV|6y*J5G7z8lJ`!A>bx%mRua}e z!s01*rkFss07FHaW<@)m0bA8m{8%TRPfX0xqv7~#NEt|fsH|vcou4D%Jp1?i@KKwf z_wFXNl3QO=^)rpLyzqeqe>w^R&d-=<8YxG={IZqtG**zdON{7wZw$EvgP?B`TTsy(LfrDO z+yphX^DB@LL+=`brp3nE=ZQku@t(Vf3<%NGdYmPg*008AhP>?IcO^ataF@ViP?Q-m zIP~Q{=Xh$|EiVb$0a%ja((@qx;rfZ`V8#iPJ*+Ksbcke5cDOpxzzzjL(UE|J?7aZ@6eGNiWs{324b>$oD(ZZAJSN{Q z@AUHqYn$dt#_{F7tbUWz5bs+5{?!sNKsz6 zhN@blhV6dk?cQERZ1#btNW1`F9NtjN_n+STqO|0S1)0=fBF z9hpolq=N`TWP$ z+OL-sR^VJP@cXj+)zQxG087Ey7FYs)8aY5I#cyv!UltZi#^8DdlM6b@T5Ir;!hH8! zG~(6<57H+RUMTxI;?lhj9nNHpDsS62aw%S9gYen6=@WeG523UYMMi;d-zA(6;^G4O03I?!TV=Z056w@7RJc77yd{WpWZSIhe0+JU~+_C`h8} zWy{SE&2RUb8;2O!==j~S{Gno_7l!+b;1`0-qg|QbVpk2jRu^twNW^O>8VIKI!`$aI z&JT87l;7D{S;gCym)j|e+t__#>e709>L+;K1u-2fG@*)gGQBJ*v9eu6FK_!29?HpC ztEy{ttO~f@aY|(eHesjt)nv;(``X6zCJAHJxtp zy%WRQF~{0>84#rtDwSSJ1>kmE@W}|pQe7=31*yn;{n^@*9z;NXGC)15XCgHWlMa~w z<3Ihx@L#<@4V`}*8ZGbVRwM>d`gtuV=GRI-S3O2k~L97?I^A!QI-ZHZzF>Id{$fjnMDG$3qHRhVbWksFw)tlif{6j7Y~Oh)ss81P*h-itpn7m+ic1JYQp|XNsN`iQPt%hf}4mbBzp5dr9D>{=S0|_4r zk?_1yf?qVKWYwqrumjWd^f8p?ip{BY8P6Nj;R(42?}O1cUebZoWn=72Qe}-B^)4qD) zw&Iz~|7*F7eo%KM?kwbRwpn50Pda^?fPlb7VI}s{mScT+7EmN6=*sx!ziWs8h^%U) zOH);gfFc3IGuB_31p9jhOJ)@fu>JOr2eb278s1=5#$>Y?R4O+O^EkU~QTGjEucBeH z*V00yv;~+b5lq3b)1YN?X6J*!SJD_~pI-NN4rRatpQWhsGda8*YfBfe3ivcnXB4qq zpPec?C1rvs&bW|QF}F($Hz7yrf%cpSMyBONZz>DeMWKqPu^`&uJc zLtTA>R)B4)vX%+GY-Tt-zqTWG z;|milOXDXV>zzBn?8fluz2&1dx!J}w6o!8T8ys1C1z%({>h>Bl#MCPC7`%KCTxI zB!azVg9m_jr-TeU?%GXl=$9f-E|&^T6Nc7DrDQM$-~E3-gA8FYWAywjRhc8%!*0Vf z1nS6EUHEY4o;O*7y1w8H!=3%tym?HFfT$EbWtz_U2znCQ-@Q?vdv2ASzK*T4YrE%E zeQa_{vJ^=Iel6;!I`v#XzJ4n@Yl~}_7G|hV9Vz(R?iU-+VwxES<}|kC3&M+<3yar; z5sfzyIFG-S+BkTZX-6@_HxwTz$9fg-yElwT;ZZrA%|9xwel(IDLv52MX1g!~Kr9h= zsc3DD{+{ODXsDssh5)w^w08jVJz-tprr^~xBwk8~HBI^{Rgwt*pdd+QaaCs&jn@hk zG6J;d&c%s&@l+e@d!<-jHeMT}2v!zFH1-q}(&QX93x^BTFc5zOCvN{?ndWT(o>;{b2jmi`d zyXY~lz{`dX{V=GT`$WZ@N!PIhjlp`WL?JO>LnTskX406b!m+p#_~8ReiA>(J+s#Y< zdB+@C>-Aa(^6^shu5X2D2koqvr@Gu!qRokJbz}^=_HJ7$advk6A-RnR&SM)=Ml4Eo zH=;k57{1QVBTrb(pT2{^GZ*gnh$}y|WfF2;joS_ej>tiVZe< zeM!S$F+Q2%s<)z-@e=)XJN(7Ori1YZ*@7#G=7OHsL;PA#B0c z*qHJT?bTy~*(2vR+W(l^)1~)oWgvkM@56Dq46b<>y4xx?R~?6rnF2lGK;h=^N#e%P zpX&>Fb2~k_7dLXEAv;XczYJc-dv4-po*g-i@4=U3*PqzSI7wd_PojB08IfHTcfGEu z&snwr5Qjz_yXy2@jS+wC$JH-g+5cUi+#D~V#9YHsF!EHGw*|AY{S~agR@QV zkJ%v;53pI**C!x*O-0|Mp{(Q>*8M2i>`9@E0uQO95!v2Dbzo3l)i~Zu47Mn?pB&3q z3=lS4F{X>1usR~Wa8jBF6f3U9mfG%Q-$Ih$P8_{=26u&jn6bhK{&mRkn`c0YXJKQP zpr2r6TS@)+A!KMTigQTGvFAQ}pUg7meKMh-cI!-?-}OTqHU5ZFs{s$kykzrx^dgcV zKdT{M9{tap7j>;%9vPlG4C0eS8CNkd(j$9bUFsm6so{ieL-{xT&?wO~_3E_}Fb?q>5yDp|y+EczGCcz)hP0iTb&~_9=VL z#vFdfdN=<_O2U9=SqiY)G4oU1{i$a^efeH(WBM?O*UO5G*vcMn{^kjK**0D9u$QsT z)799nK!O89HUT2XCLnpN?8h%(>lkESUa`{gn#54{57V4b(-c>Q&wuD=EKv&~s@Hv; zc@|N!7vQ~^A3_&06B2gpWtw2b2xF`^+doN7)sa|VXpv*OKtEw8^l9ye_I_L)vl`%r zmPqQ*3VKC${Ijd1N$tCY13RbI_El(EMIXU+_H!oH*zy6wZn%Dw^Lp=|>O(&{#LgTa zI{M!#m&GO32SG-_EOPF?Y@hnUuo+QI9s;MVmpMRj?sZwEcCk6%*mZeup?s||`d?c$ zc;~=apSt^Xw(!(08qe?yUW&;ER2C^lqb5MV-9!(r49Jnh+*Qq5#yASS53Mq{3aw~v zsQdK}P@JEmuw|Sy!;!+3LVDKV*=$s@Dk<-iR^|hXjfEDJu8vCzN z=n}+gy5%>&34FQOqM>h{;dF%!m;@y^bFSa#ZCN7xxTu{T-aEZ;et&kOy%*#9*X{Yk z6#RhpnXSi0+D+G-Yd>#lSA66&biJylf_!F(m??;GB^=Sd)BqREN_}p`ee{^h-~on= z$Jm0smJ`_4bPR8!5D^0{IyQWoS8#b6PcCz3OOCUB{v92QQld?Yjew^TBm&WqH?vFA&=_P<$^73`%hx zTD0st9e^%7TpBod9(SIWR*_e;E~yr`2>ZFEvwleV2M6iwDTyJOf8R_EBuxwqoxkzgNQ~IJEyQ)6XMGT=wPdcG@R$4EcXH zSPF6dL#7C>(pWrvNFck7@6-%9VuY|0+Z?Lr9V92>Tt++UyrRct@l{V(FUWk`!O77v zKQ{zhSxihIfq-zF!VVIBc(<_be3o%#<>L_oOjvf`;ZfC9rChj?`~?rw$_*w8BRxIH zp0Hv`xpG#ahO3#G(H@u5nk|Rb*QxPr$xcDSX|b-Nbu5q90`tv##JATAm>Y+7g9l}L zUo-UI`_Z4ZhEs5%AoNmx6n7t>U2n1e_@5}geT1axz@Kb-4vWM!Jk#Zt0$3EWFJ}+t zHuS%$8x}33mokYW^oswy9ZusYlu)QckvhD3FKto#N!Au;ysy;*s$Y}=+MJ`IqhS!^+sYt@UAW0%U}8pOxh0hq zuuR+L<^w8{j8j6I7_!wdtF{(cI9Vqr1|rCbGK;M1$n&@a@59^X8X^)IbtKaH5~9R* zS3uUWO#};q;?DvsC_G;!zeL4QMGSNf*v3W8d49oatoM`v{&7G$51{E4(PiUNW-yzi zZqdDrusY9R^*MR3K}-{u zg>d}>xQ<{Jk>gz#+4|)u87w?A5}v=3nI?{{&pT^)3S3wV0RH{YLXo(U^yf+{l8W_g z(;QD5ws8BGv+MRBxE>`5H%+SsaAFzGFR7xq|SA<_{M8-lQHKBUOUfL%Udhb;WQAmjLd1i5Kh1SE9CyMA0f63P5PD)?xkAhfI^Fc_+}3#`Q>wuY3xLDk53}n7C61jknB@ zoUb9$WkoLs0k0Z&S+0sX7(QqB91bQzBIV`L;`MnA5rQwO%;hs1K>Au4x+-n6^}Wav zw~97DX@bI8z7Iyv3{sTw+haA$GW^Idlax8gbPJc#_~@aSMH(USwPZJqRxk3GVY=5i z-<8Bt=1ng4Qw-t8^T)s8RAmyK^x?-aJp8h{JbxMkeLZZ6>ALTLP*921^X=}nSfHhX zc2GC{#r+(+n|M)Q(H(mfc_~U4jNs%7Qne!%UPsoVe*z5A9#&uIeRYi|U6k0#Ae*@Lp4X@Lu zhI_)K_Vqf-KeR~5k~dZ|LyRT(3HF$o42!=3lq>{*nMZYH!Rx?H4;i8(*p!1K^=y+QcYv^*WxrrH_nWvOmP$y{=T00+o|iWG#D z>z=LTsPMA&#e%hY56;z0TFA8n_K8a&+7|?lFQE3`*&gm*Z{MN}U^Y~L)JeZ163JXujRZoypTHRLT>d#{Ky%?Ac zhQKCwf1NLg!fols|kR#CWzsxau46KQuu-98Js zG;z5B$kmgsWzih1?}%~@MaKnE@#-)obuU;;yvp+Rxvjjo+oxl#wfHEywzc%X1_*}sHp2u(ES)I zw6Ycba;!yD?1BGleesTzP`Hr_X$rzWV4Z_5B2?eGkw84R)DGIi$~W<1!nY;X9S^^m`Mxnj=BW4|3$FPw5P- zWhwQJ?qr#vpv`$t!nPB2G_jKluFB`KNIQ#iyBm?f(eADxLZsO<8xnJvww@~R`K$EWx_H!GgF|VURm7G*Fg)#*i3>i ze+;A4m89glKW!EJAF~d5_t9qKRk(t5thI*WnYRHRGmE&2PC>;N7lTSu{X|q{B89ymE1ph^XVr_jlJsg-*;cSNvWK^&H~ePnyHhlJiuDi6~Adf53-0xj%^#@O&j*>gSL9L`m|iPbqP*|UGIW@0(` zwT}Ql$pBwf^Xn=woNrDgj~4!DAqh(Zlewis(TSI?mSvdhvUf-Xt7B+eqeO3)rJTmn zv31iPHfSu`_Q2iUeV#W8*ecw93Ni3Bq;7bR>et@>_M>=`P`m*9K^#eQOy})`#0R6I zHz|;7N8h?_%FYnHh&o1Dr!i`;NU;^IP*qoDfJzEVHEjMf|=E*b!h)*7$|lYmXoJ z-oq63jN+!;fkOXe;spNPd+bx?LkC>cFZ}^zuQjYd+i%4*4J3U?BxWC^Pv$yUV3FYj zK?u(!uxyCTcub{5JOb5~+Hxzo0q0J*$`C6Bf5vCO8*6xcWP)+@8LT1=FPq0Bd8BNk z`h@Ci2|UDZx`lq6UeL4<>vO?%Id zAyR;WU2m^&<%<+~9+{bGUf+!crWs#499+>T*Bl8-HSmderW<%Web#OxY#@yLiqsT? zl{ z51{u-IUFbKQuI030amKA3_3xw$3Abh3`dE6t2HC-`AuH@Pb%-=9q^lNxt2!=v7`n8PfXYhCQLzBu4GhuJ(Pf_M7LnPs!*r z#Ap$}h!5|v-_R2e7@mP!t`ZlaYvTI?Rx$4jFs7SYueKg*e9kgrR(#^#yxBDc>Wbn8 z)uUxkn2*dfmEZ5Omu40W2ze^NH)U)Ew4gw;(^aYZU>WxywCqU6l+GFb0XsU23*a%l zL5k%Gekxf($jJz(7*dG)J{`-{HjINQ(8G8d`E`nYfm~v$A$wD1B;GyvXpp|CxhYLgdqq2R{D%Zb`R044P9a3qG~a<7$CBSbl;{3!@>vB{>1;8F`RaQ4 z!)=1*gV_IzzYF-kfWu;C`Hd-wKIi3&V1C;~IR%-y;)56xyJkr~T{sXh-wbSa{oxu- z!DB)#T;g?lll}Jd*w5Hp)0z3yH=bK35X+#{$qPv=vaFbeF72s;I>v2zp)*F0*~v*M z(BoO_xQ<$e#sZ7bgI}F3Oo`mdumDJ;pCfO$Ac;z8(iX#yD*GG>`HjB_@6jl~l9oEl z`9+tu7EZ0HE zgy)G2{_p3U+1^O3_cn1T2Wwkaz1H}_TmVP%B_}wc7x@|} zuGz$JFnh_~3R?pel~3c~a@$VpHl1C8rm;mvATR_yuQ9E0zVkg(3MF6tPkLShdIUt| zU-;@^;*a=e>y>45j}H$*&U14Up)bbtAU4@Gtudzmodv+q1tYr>6c!7P$yt}ghJz>S z#ek%p znpRXpDfu!x;r)x8-w{5KAeT-32IT*>7AP7#F~sdyg#*&EpN7kL9`7UgIAbMY7l=!s znW!4jh&-LNlfH67nyS#~Q{5Y3?<2MKBC5fC0bM76KFJoSKS{%lH!Wu&M7-+~*3%p>vJ~KGW7B+(OVV1CeZ90) z6$xwca%G(<&mrje?BvPfpwJ@I5``_L125XoZ7r&NeiCRN5$%MyFq32;xl6A=b!43sZ5!pg@XTtJ|PFt|= zReLAFE7I{pJo2Mkz={|P3jQ>N3r9fTTel5g{OO{5!5@dufC*Q{$?-M=GQD@*LMMWP8Ur zB37i`5Y54&;pI{}l)jE^V^%fmTr}5e!d_sB_XwdF(#Chmb7hfHbi6mW71d{Wc$w@W zl+bxTxJngIx@yZN?rB&?>#8Kun18{BLaRZbUT|7fV*DT!)c{`h;%qNmhpats_;U;TS;{QT$;6tLZRLBkj&#bvpZ_?FJ^nBwS5J?k{fb|QHN zjZR$cgQ=EcYnSUEE)}|1bS~lif=$K;VhxR^2e+#MVvP(T&+9AO6MR=4#UeUHD zkEG1=!Ay{TNF<|PNZsLkKl_fQ0sLHePJ{}FL6);=POX0saj{(ioF_IRHArk-BZ4Pm zbg@>tiO;Q6NBWjJSvFQT+3dgx8gP#NiJ5D3{yH4h^K~UlVB50qzVL8;Uwgr zAPymEnpXoNcsKxI73qQTK{`YZWhssAR%I0PB3XQ>KaaKI)8zASQo4e^^ICI?io3WT zK2Ut-<+DGBYe}}jNW0e7MRiT08_YyPLg6Diu&NcCE>p9m98@0P zyj@%{bZ5?xC_^v#fs43E$o&3PO##x9wyLaLEH)-G>Bdwa=|`&-elnEU-~<#IGM7_F zg0_Ad-1-7yryAvO5>|Q4i>gSK95aEjRf=y&j4)OWj)qUEg4yqPyBCTQ*3Y zhgLec5+rAuqH7^5-hhhWk_0LQ?&7aUINt?d62+Y@PAgG3Wt*V!;MxLiuwwY?RLm}j{L;kMj&|$=+UwLrq!(y zHXnK;&Mkl*Xvd7K7Sr9fTIuUdTROghcj?q}GN|b~yp3PS)f&+A;o2IQ!pf0+nWu&W z=TLh@w-<4jm!BSX??8t#3S9bm+v9R)V*EBQ5o(`CftX8k)qapcwL72G;KOOL zQWte4+b~(vSss;YvVbUh{~le5oUkh)c}7wOuEaq779LdJbp6vMb*qIFQqXms!q&lo z;Tu73YDnt%OKV!zL7ecB)q6K^oD>+w=qoVH9y;MYWU7)Q+faIAh>lno;a6DC@*-G5 z$);bbgqA7(Mob31N@Do^omeZLr0hGaF9H6-mWFkT-`f$8V;Ww$z!cUn}MK>J|Zd6;V`o^%tCtfCZoV!@}Dn!Y#!{TJI!J>WqGR z`pp>C{a++oIZ&pv1Ewbrwq zXRV!7%v$S!P0BLgcEy%FucDz51-Xq3bH&raAaxbr7kC-TS+Ih4yL+>LSp?9VeuP) z(=Q5n+eZ}No=o&gCd{kec&&JEMWt@#h&B_8^r1?3pjRlj>`zf;qWBpi+BKJ2_`7<; z1zVv9*&GP_wMkDU6*xAkZ7fJ7p z%9)3+pzMD<&l)`lY{H`o&NteY7nWZ3c2*R}Qqp)RNSn8+w{Rm`EJLWcOPy~GH&8t? z;w~?Xzu&kDG%A}PuJ1jWkIDj>*$~cOnT`bRyuNqHzwLFy1(lSsq!ct{A-xPRT4(QN zeAbP>^^Tzv*j)ZoBg>JEc1o_E=u&aK+KRJNj*hs1;|~HDz9~{7W^4o~9sxf02Mo7h zY6YT@y&n^RBT!$o$qs+>2LDuh?{??$UWcx`g;?lYmR(=KelvL9vl5MG<>tMBtM{H= zMisotKuUZVeI>3dd-LGO5quQvNnKL1eLKG@@1ho&^E5yjDLn4=fcpR!`K`D67Bg(n zmFBB)CICx!ZqzEf4XD;V?inRy8p$$D>^0siPNM=jG8NPaeHj+UO9mZH>mot_4|ba_ z@i}D$TRykH(_?me$jyQ61{l{*o8lxaFO(zni#W^cdOa;X=0h5v>CI#xn~}-lm$5|_ z;Mh;M?M$+^ZF=UP)fAwXcjabue4Y8!#&Th{(x)WY+YmB#Ri0vW(Isjp=g^PVvrZA$1=1VOrTBuK0 z(-Ul5r&5TRySK;hgDNWEa+}(hktSOhi1$a&7%FR7sVg;_(ieV&odNZZL6;~AWD?@E ztHLrpQv0ZWj;38}#`xep@K*1ocFTK(eAv}BNdiwROKz2s=S?5rJ72I!y%XMGP|7y@ z7#(!ihaHu}_NmU;0dM%_OYwD#`-M#+x)PIIhio(~onF0ra|ivhyG31+F?^UsZs5dY z&kFbHP}5V|aO`bEc>|snJlA!XRe<3AMKzD5!NeVhn^UCa;1OX+;tcavE8tACz3WE= z_f0TUwHNw-Ue~95&sn8lkjV_s4h3jZB9G%Lh0%6Mp;DRS0wh>3b~b#)F6J%e;(~Pm zg;ut2GtPC`*fpTaIw?+c@pL92dd!MK(IEI7&`Oa=TcPLQHeySDpN5N4)&%&%%@foi;0@jY9|`nZf);01tk$p#S`_!j)Fl>v{(_o&}Gv> zQOhX#cDpB@Vz@x>Bn(EFPox`F6~*Q%c%CfEv=xW=FfH!T zl#a*7p)cQsQafA=-}W8=SmiC+Dsh3LDTbvOzNbH5WqyQ@?M{3#!LUh=$o199D z?Mm*Pu^)3RZ`)g{T(9>IYU^&Qw`tv0=P7dL@esE8GK~<96Cpg>03sQ%q2zP?i&md#2tmIn*9y$=jmi? zKM%&U0J&YX=m~!|E~)1a>yCQJ1Y{_ZF(IfeqU=;x@2=H3Ot9c5RvTw-WWd*&!5klE zn=M+u_}^R`8p9gBcv&@uZGN%A<1?DL7g`TUR~RZ5HkSDr&>RDt^8I9Jx@?g24c*G> z+8;zFnRfk;pOx}YJ2wNc9sUQvqfB8F0_T$dVMu@Jp9y{R7~8PJc5D*GsC=p*($&(q zmZpFFmABm@#3?CG7}2y-EI$b{nw|*xqs@@*tWQ=bBc3$ z#+9{hO2;}9c=M?s@Sz=2a{x-9KU?+bO0qD$NFZ5ya5TR13PK zNzV{u#(~qcr%Ssm#Qme->rpe`dZ8i$>d(M@{Q=g*DVn z0pyC~gSz69mVUo2Fg2!oeHN(FMYbDaPz3h6To&fFxJrMxUL<2;c&(%?FB!#qC8BjHH_z*3 zPgnJ@un73cdxY%QcJyvG?(2(k`;T3&&$o%?2cz}u_W_w_*?OAat)m2^B5U1?FHF1M z&}chkfE(6=3Hm=8FM=QlfPANO_}diZa1%}ULQ~&Oi(VKof-hVU zI%%fZ^Yh9cIt{>~MdJz5wPsva?hOOn^A5&l)-No}7M-l)P+OZx6+)Y4ZXQfs!)q1P zxx&f;7A!}|Y$A8I&@tOD4IAH`vjMB%x39T*>(f*Ippvo_w_CjvPo5DI6jU&i?`YY2 z8wGCG@DkGSnkPwFb~%S_+REqZA6fth@lO*2LH0oM15=FSQUEKM}J?J!j;vn-vaGGh%t`K+0|uyvYa*_c2Y#nLh5;Ze8Sifp@zx)*T(ttACNwiLO`h4B@46p=a>OE z^$Z3QmCXn*4-*4egGmN_>@5EFxS}s*z06AjVcWpxME_b$WM2GBpSZZqS z8*Z9xG|Hi0Zrr|rsy{VZ^ZSdP)fpIq4@cZhCtUPS38J>1jS0oRV##uN*pZ#5IgOjC z+dO~wGWRgEtteo5A)35L*1@yun|?AySsE9UBFjKaUJJ@a_~u=)IT1fM%L~Dw-~jdC zg_Mqt*JH9eBG1oz+qVU}URlt;ll32y;Wl_?q24Zh!R2xgj3qcUByMso0+OE}Sf2-K zt%npBWQNUGgZq?}-B&NWE#NMWvWaI)6I{d^lRfMu2>_YGL7z0Y-y4~f0j>GDdL4Ih zSQn0sZDP?xZ4YRV>s`1S%W1^o($f4GgEwQ-Y|GMejFs~a!%|W;CSB^Bo*Nakr*WQZ zNx?P7S*y`+@pvrB=o*fhLM22eZc;!s@7N~yUg-3v7OA~7+4#9DWh!mx62AhkAkH0~H3R)2;@)gsvC{^7S#pBd}msYz91t?UQ+UX+co=_ts zV)Fln6Fz`bphLuJY-BGH;7n2yJI^kRURG7)mf5(rH#ytcK)bb;dp+>^icL7UguiRb zya0{=T)&X>8&RCj<7WyXx#>?PT+$nt;b;MoaW<7XR*oBC491577iw6WWD?aP{{2VV zWH^*Tx8+MlJlngj=ntdmSzC3MI_Ned^5ihhP3$q{1vK%qKXhaV-6aWr^Y&mXD57-j zclzI*=iA+aH2Xi#>f|;*Ua6#n=`+Y=0)i7_H_)=ba zJPe5JmW(DOD^{;G+i`hZo-=Xuy5Q)10J<{5S=;cgy2#5X(+L+S-_ZL+5-iJTB8$(} zWw1^lkh-_kTp7&O+;2;PH@Ys77{Sqd`c+!(uCT2aYm?vj`#hNykhN* z*Wy&Udoq^TuzA=#j|@-MwaL0+{7v_}J7`+OYl!=X1Wcc;uUW0<4u z)Ue92DD1`}9ajv^js;`CqwK#=T^dd8@uDKD{H|=*=H+~3#3^Fa+b+Rxq=pAljSqa4 zoaXgBuX{H-h3jaQ{b%g5h18oc(O`EVd8+$Rf!YbtBbX53JyDiYj`BwB9D zhzy(M_wS#?Cpwl#mbUO04R`kzv*M%DD6>XLD9>}m6pZAZa~a{-+_beTbve~i1ROs# zh2T=dVR)swjc?jsZk)Wb?{mO0(=TjphKs;VFJRtIr)yon@%R|-Z4&zZ6u3HzLd=AlbMi5Y&n@=mPek}DOg!)v|!e1wT^rfcuMd~4k7X7 zxrUx6{gTTPIrzLP3Y@6F0tM+DtnTgm=09f(cwJqngUx|!?)b{f^%Hjk7KiB(jf=L8 z;{CzikkGvnK^CVGgyL`>Q2~d5I7AvePH>^*aM2sPafOJ!1vK8SME>b5x|a8JO3o_V zE(;{wnj9}6@ZG}ItE={eQ+l#g;b&5+(>P?#XMv*9({9q$MZcPks2>lkT^T1upBSz) zyB$64(WeNC2WHylW6=UqDeALeb#)$<{Krr0^!lKIX3GXiM~=&Enw?6ocH;?;6Eg-= zGP3R09y=l1JJ~d4(>E2fTLPC$bOB>`iv+GeSG*EEYEV9L0otrAnzGg}#l_USI6u)j zA6t+NqfnPU+8lKR01uroO$)xyZfaQ$`V89_DXCOlKf};Ht2ox8ZyHxyhP~kDz8LHvsnsM` zsv~k{hH$@BRnv9o*~eQWV%mI~@@A!t1p>o~ zDAXT0U@wXHnAd{O1F*`QH|ggJimQCv9_|DhL3?|`kDk{Sn2d2UxyUc2y>0+?<*1ZO zzh|n3qMDQgi%prlAw$bKDM0&vARN4HrJOHo)I}j&tk*D`1-a9o77=mS^Re1QP9!cr z__wsQ*3uu)-R!h$$6X7m&_4Q$ha!@%^FEw|)QJz0F!=ggs89)hZ`nU=nfL1ssBPz% zjLF3{f!6*Bnm0dW4YgOi#6wMfv?QVlo_~rGFmy=!_DaYrZQco+)QNT?J@kZ=^hRh}isbJ)1V*iz}aS}6b^G<2Zh z2SuiYWtm1JDCAEbxNHx0B_v?SSe=PD41RRGW??hYFMRM%Nx|o7-qE_*=S|OlyzTP} zZdIXEJB`*;w`(n{P~7|0+I?x5Vs~*3=mVO(1$IF9)g~i~4w3cvGq|lHpqnlo+S3is z`sI7LWzmJxb=TUkQdp>j$4!H*SN}ISb;Q71eEJRR$HAFuHHoenhRYctb7}{dx z?$seC?C0d8 zF3~-XBL=1>cR;&>zRXw+rbwO<1&*Hl%={bg)01y?Q;;pZC*iv-mBz6`xZK-hN^3=J z3a;}uhi}=qB$RVz0lmv`Cz6U<;1S+*U}+2ljNB`vga7-Qg*#f3FjNvp>45enjfI!7 zt1@~`+*wA*DA|S@c7~S#7+T{OIw}j~qjPKFf))~OW-%bF2F59Gac;inzQ|@VA@fSA zr5Qu{1F3jqI);a}ww5>UQp{6xV$a;#C~aMBEoJJ$WBYc8Rnl{Ai9Pv=oWO86obtUr z3Fc~F3(3mEVI?K7DMH!jnCO$hn*|akfTH}PUQVd3fjEK2EaALSf8L-6S+@RHM?>K( zvUcMS={`Yw{f!dU%oEe3t#{vfYdti$0IB6|zZ~}(0|_o6e%4T;TdMln)GmX@`OP~{zb4#5q*`86x?sIp%0|sYS}(R-o2aS;EVh1_#XSCfI!5P znS}n%9iB^`LWFEh;yV{d6Zx^Kx|`?g$ca|C!7Bqq`( zbzeR@P7=9%za><&rkI@{cZS|=`Ke<9Z6c(K^gl%wpcjn{@@(%E=zKXKs?_!`1&tQI z+vPQsjdr|S&(haNm!JD6=WHVQHG^}iPV@d=Kdqq1vD4hhOE@4Ti9GVY+jAxrbJ`IQ2v`BZ5v+^H>ZZR*#8cP}-8(hm?qtmhE~d%8_7RquywEmmfv zRsAbP(Q$BW(Hlh$E3a~~O7Y#S0V_yyw>C~HEjt{sn5*%ztztHG)0KVOdf9`gM!R>h zvczzfQ-wRItf+fuQ{C8;G{pRYZFI`-)=)>n%Nh|v>9x35`j?$P-SH$OE;TnL73I$* zB`MsaE}D7?K-Hu6J8bD6fBY+~p@@@^ewPSLE7`QumL4IVf4N|jy_n0jjU|P`=HF%) ze8bQe;nJrW0JmGqZ16FO2PwzT9~k_Z-mVrciVj&P0CD|Bv%;hgVcmJrvFkuJnTsjz z2egt}MLE6}#ZfGQ9-i-`T`}W^?D=7tg+Z*`)h6R85vFjLzB|P{FvyvSa>9s(GwY*iy8=QN zQmw(gw3Y>($IXL&smW){NcEhEw6q0QGb5u>-l)JRyb{8FC-BeH)Jugqf2zq~A*s3- zL%id*`Ne0Zw_8J_#Y>JF_v*Z^ml2NJN?nnqyyF3OZzjGN#2U{e2@aPiruEH;LOdce zR&@~lADbEL-r&PTgsU$8SVPQi8odlsRTWx3`{K4gP5%yeV##GFH`-nyQp zvQrVbs-NUf1^p~KQ3lcF&esv-EdmF?I1l3!ibrX3_#g4`inTpdybTBxObH};aBlFo z6{p*lS1`yJOt6dFi|EU*qfF}GWAAt_*$ZK!%`4RTHw5=`D)9x(3X6L$q zcB{i2{l)n8A~3x{*3Wu(n$7gKWqsGAzj65Xx^b>$Je;PE#-=L2Df!{NKV!i~)fV^W zOok^rpxI7(lEWyYAVO~xC8≧d}@?Olg%@r^!E|<>B+*n;FZy@F%74FfWMAC6b5l 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 Iol`;+0JXBBzyJUM From 96f65eeaf0c1e7b5742500ad20aaff3eeaffff2d Mon Sep 17 00:00:00 2001 From: achoo30 Date: Thu, 21 Jan 2021 15:08:58 -0500 Subject: [PATCH 23/23] Added general overview --- docs/samples/v1beta1/sklearn/multimodel/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/samples/v1beta1/sklearn/multimodel/README.md b/docs/samples/v1beta1/sklearn/multimodel/README.md index fd1c5b6da1..619ff82836 100644 --- a/docs/samples/v1beta1/sklearn/multimodel/README.md +++ b/docs/samples/v1beta1/sklearn/multimodel/README.md @@ -1,5 +1,18 @@ #Multi-Model Serving with Sklearn +## Overview + +The general overview of multi-model serving: +1. Deploy InferenceService with the framework specified +2. Deploy TrainedModel(s) with the storageUri, framework, and memory +3. A config map will be created and will contain details about each trained model +4. Model Agent loads model from the model config +5. An endpoint is set up and is ready to serve model(s) +6. Deleting a model leads to removing model from config map which causes the model agent to unload the model +7. Deleting the InferenceService causes the TrainedModel(s) to be deleted + + +## Example Firstly, you should have kfserving installed. Check [this](https://github.com/kubeflow/kfserving#install-kfserving) out if you have not installed kfserving. The content below is in the file `inferenceservice.yaml`.