in code/workflow/implementations/autopilot/bp_bias_analysis_stage.py [0:0]
def create_clarify_bias_job(event) :
role = event["Input"]["Payload"]["security-config"]["iam_role"]
ws_params = event["Input"]["Payload"]["workspace-config"]
data_params = event["Input"]["Payload"]["data-config"]
model_params = event["Input"]["Payload"]["model-config"]
automl_params = event["Input"]["Payload"]["automl-config"]
bias_analysis_params = event["Input"]["Payload"]["bias-analysis-config"]
# This is a temporary workaround. The bias detection job behaves differently when
# files are split. Remove when the bug is fixed.
##############################################################################################
merged_files_dst = "s3://{}/{}/{}".format( ws_params["s3_bucket"],
ws_params["s3_prefix"],
"data/merged")
input_path = create_merged_dataset(automl_params["data_uri"], merged_files_dst, automl_params["target_name"])
################################## End Workaround ############################################
session = Session()
clarify_processor = clarify.SageMakerClarifyProcessor( role=role,
instance_count=bias_analysis_params["instance_count"],
instance_type=bias_analysis_params["instance_type"],
sagemaker_session=session)
output_uri = "s3://{}/{}/{}".format(ws_params["s3_bucket"],
ws_params["s3_prefix"],
bias_analysis_params["output_prefix"])
bias_data_config = clarify.DataConfig( s3_data_input_path=input_path,
s3_output_path=output_uri,
label=automl_params["target_name"],
headers=get_data_columns(automl_params["data_uri"]),
dataset_type='text/csv')
model_config = clarify.ModelConfig( model_name=model_params["model_name"],
instance_type=model_params["instance_type"],
instance_count=model_params["instance_count"],
accept_type='text/csv',
content_type = 'text/csv')
pred_params = bias_analysis_params["prediction-config"]
predictions_config = clarify.ModelPredictedLabelConfig( label= pred_params["label"],
probability= pred_params["probability"],
probability_threshold=pred_params["probability_threshold"],
label_headers=pred_params["label_headers"])
bias_params = bias_analysis_params["bias-config"]
bias_config = clarify.BiasConfig( label_values_or_threshold=bias_params["label_values_or_threshold"],
facet_name=bias_params["facet_name"],
facet_values_or_threshold=bias_params["facet_values_or_threshold"],
group_name=bias_params["group_name"])
clarify_processor.run_bias( job_name = bias_analysis_params["job_name"],
data_config=bias_data_config,
bias_config=bias_config,
model_config=model_config,
model_predicted_label_config=predictions_config,
pre_training_methods='all',
post_training_methods='all',
wait=False,
logs=False)