Files
SivananthamandGitHub 4a3bdb247c Unify the log configuration using kserve logger (#3577)
* Configure logging for serving runtimes

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Add pyyaml dependency

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* black format

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* fix pyproject.toml

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Rebase master

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* cleanup logger for e2e

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Modify logger format to include func name

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Log model download time.

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Rebase master

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Allow disabling logger configuration and deprecate logger related arg in model server

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Rebase master

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Resolve comments

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* pyyaml=^6.0.0 to fix build failure

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

* Remove logger related parameters from model server

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>

---------

Signed-off-by: Sivanantham Chinnaiyan <[email protected]>
2024-05-19 12:25:28 -04:00

61 lines
1.7 KiB
Python

import argparse
import kserve
from typing import Dict, Union
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from aif360.algorithms.preprocessing.optim_preproc_helpers.data_preproc_functions import (
load_preproc_data_german,
)
from kserve import InferRequest, InferResponse, logging
from kserve.protocol.grpc.grpc_predict_v2_pb2 import (
ModelInferRequest,
ModelInferResponse,
)
class KServeSampleModel(kserve.Model):
def __init__(self, name: str):
super().__init__(name)
self.name = name
self.ready = False
def load(self):
dataset_orig = load_preproc_data_german(["age"])
scale_orig = StandardScaler()
X_train = scale_orig.fit_transform(dataset_orig.features)
y_train = dataset_orig.labels.ravel()
lmod = LogisticRegression()
lmod.fit(X_train, y_train, sample_weight=dataset_orig.instance_weights)
self.model = lmod
self.ready = True
def predict(
self,
payload: Union[Dict, InferRequest, ModelInferRequest],
headers: Dict[str, str] = None,
) -> Union[Dict, InferResponse, ModelInferResponse]:
inputs = payload["instances"]
scale_input = StandardScaler()
scaled_input = scale_input.fit_transform(inputs)
predictions = self.model.predict(scaled_input)
return {"predictions": predictions.tolist()}
parser = argparse.ArgumentParser(parents=[kserve.model_server.parser])
args, _ = parser.parse_known_args()
if __name__ == "__main__":
if args.configure_logging:
logging.configure_logging(args.log_config_file)
model = KServeSampleModel(args.model_name)
model.load()
kserve.ModelServer(workers=1).start([model])