in src/responsibleai/rai_analyse/rai_component_utilities.py [0:0]
def create_rai_insights_from_port_path(my_run: Run, port_path: str) -> RAIInsights:
_logger.info("Creating RAIInsights from constructor component output")
_logger.info("Loading data files")
df_train = load_dataset(os.path.join(port_path, DashboardInfo.TRAIN_FILES_DIR))
df_test = load_dataset(os.path.join(port_path, DashboardInfo.TEST_FILES_DIR))
_logger.info("Loading config file")
config = load_dashboard_info_file(port_path)
constructor_args = config[DashboardInfo.RAI_INSIGHTS_CONSTRUCTOR_ARGS_KEY]
_logger.info(f"Constuctor args: {constructor_args}")
_logger.info("Loading model")
input_args = config[DashboardInfo.RAI_INSIGHTS_INPUT_ARGS_KEY]
use_model_dependency = input_args["use_model_dependency"]
model_id = config[DashboardInfo.RAI_INSIGHTS_MODEL_ID_KEY]
_logger.info("Loading model: {0}".format(model_id))
# For now, the separate conda env will only be used for forecasting.
# At a later point, we might enable this for all task types.
use_separate_conda_env = False
if "task_type" in constructor_args:
is_forecasting_task = constructor_args["task_type"] == "forecasting"
use_separate_conda_env = is_forecasting_task
constructor_args["forecasting_enabled"] = is_forecasting_task
model_estimator = load_mlflow_model(
workspace=my_run.experiment.workspace,
use_model_dependency=use_model_dependency,
use_separate_conda_env=use_separate_conda_env,
model_id=model_id,
)
# unwrap the model if it's an sklearn wrapper
if model_estimator.__class__.__name__ == "_SklearnModelWrapper":
model_estimator = model_estimator.sklearn_model
_logger.info("Creating RAIInsights object")
rai_i = RAIInsights(
model=model_estimator, train=df_train, test=df_test, **constructor_args
)
return rai_i