SIENTIAPDE-1478
Enhance MLFlow logging and add skip_transform option in MLFlowRepository - Updated logging in mlflow.py to output processed input data as CSV. - Introduced skip_transform parameter in MLFlowRepository to conditionally bypass data transformation. - Improved logging in model_repository.py to display data in a more structured format (to_dict) for predictions and transformations.
This commit is contained in:
@@ -157,8 +157,8 @@ class MLFlow(SientiaMonitoring):
|
|||||||
data.columns.name = None
|
data.columns.name = None
|
||||||
data.index.name = None
|
data.index.name = None
|
||||||
|
|
||||||
self.debug('Processed input data:', metadata)
|
self.debug(f'Processed input data: \n {data.to_csv()}', metadata)
|
||||||
self.debug(data.head(5).to_string(), metadata)
|
|
||||||
|
|
||||||
# Request transformation from MLFlow model
|
# Request transformation from MLFlow model
|
||||||
response_data = await self.model_monitoring_repository.transform(
|
response_data = await self.model_monitoring_repository.transform(
|
||||||
|
|||||||
@@ -752,6 +752,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
latest_production_id: str,
|
latest_production_id: str,
|
||||||
metadata: dict,
|
metadata: dict,
|
||||||
transform_flavor: str = 'sklearn',
|
transform_flavor: str = 'sklearn',
|
||||||
|
skip_transform: bool = False,
|
||||||
predict_flavor: str = 'sklearn',
|
predict_flavor: str = 'sklearn',
|
||||||
target_name: str | None = None,
|
target_name: str | None = None,
|
||||||
) -> dict[str, Any]:
|
) -> dict[str, Any]:
|
||||||
@@ -812,7 +813,10 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
load_wrapper=load_predict_wrapper,
|
load_wrapper=load_predict_wrapper,
|
||||||
)
|
)
|
||||||
|
|
||||||
treated_data_candidate = data_model.fit(data)
|
if not skip_transform:
|
||||||
|
treated_data_candidate = data_model.fit(data)
|
||||||
|
else:
|
||||||
|
treated_data_candidate = data_model
|
||||||
|
|
||||||
if not isinstance(treated_data_candidate, pd.DataFrame):
|
if not isinstance(treated_data_candidate, pd.DataFrame):
|
||||||
data_model = treated_data_candidate
|
data_model = treated_data_candidate
|
||||||
@@ -1164,7 +1168,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
and returned in the response structure rather than propagated.
|
and returned in the response structure rather than propagated.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.debug(f'Data received for model transformation: {data.head(5).to_csv()}', metadata)
|
self.debug(f'Data received for model transformation: {data.to_csv()}', metadata)
|
||||||
|
|
||||||
# data.to_csv(
|
# data.to_csv(
|
||||||
# f"tmp/data_{model_name}.csv", index=True)
|
# f"tmp/data_{model_name}.csv", index=True)
|
||||||
@@ -1250,7 +1254,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
input_index = data.index
|
input_index = data.index
|
||||||
start_time = datetime.now()
|
start_time = datetime.now()
|
||||||
|
|
||||||
self.debug(f'Data received for model prediction: {data.head(5).to_csv()}', metadata)
|
self.debug(f'Data received for model prediction: {data.to_dict(orient="records")}', metadata)
|
||||||
|
|
||||||
# data.to_csv(
|
# data.to_csv(
|
||||||
# f"tmp/treated_data_{model_name}.csv", index=True)
|
# f"tmp/treated_data_{model_name}.csv", index=True)
|
||||||
@@ -1268,7 +1272,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
|
|
||||||
if isinstance(predict_data, pd.DataFrame):
|
if isinstance(predict_data, pd.DataFrame):
|
||||||
self.debug(
|
self.debug(
|
||||||
f'Data received from model prediction: {data.head(5).to_csv()}', metadata
|
f'Data received from model prediction: {predict_data.to_dict(orient="records")}', metadata
|
||||||
)
|
)
|
||||||
|
|
||||||
# predict_data.to_csv(
|
# predict_data.to_csv(
|
||||||
@@ -1343,6 +1347,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
|
|
||||||
transform_flavor = model_config.get('transform_flavor', 'sklearn')
|
transform_flavor = model_config.get('transform_flavor', 'sklearn')
|
||||||
predict_flavor = model_config.get('predict_flavor', 'sklearn')
|
predict_flavor = model_config.get('predict_flavor', 'sklearn')
|
||||||
|
skip_transform = model_config.get('skip_transform', False)
|
||||||
|
|
||||||
self.debug(
|
self.debug(
|
||||||
f'Model configuration - transform_flavor: {transform_flavor}, predict_flavor: {predict_flavor}, target_name: {target_name}',
|
f'Model configuration - transform_flavor: {transform_flavor}, predict_flavor: {predict_flavor}, target_name: {target_name}',
|
||||||
@@ -1356,6 +1361,7 @@ class MLFlowRepository(SientiaMonitoring):
|
|||||||
model_name=model_name,
|
model_name=model_name,
|
||||||
data=data,
|
data=data,
|
||||||
transform_flavor=transform_flavor,
|
transform_flavor=transform_flavor,
|
||||||
|
skip_transform=skip_transform,
|
||||||
predict_flavor=predict_flavor,
|
predict_flavor=predict_flavor,
|
||||||
target_name=target_name,
|
target_name=target_name,
|
||||||
metadata=metadata,
|
metadata=metadata,
|
||||||
|
|||||||
Reference in New Issue
Block a user