aws / aws/sagemaker-python-sdk

Enable passing column type to SHAPConfig in combination with ClarifyCheckStep

Abierto
#5,131 0 comentarios 0 reacciones 0 asignados Ver en GitHub
component: pipelines type: feature request
Lenguaje dominante
Python
Estrellas
2.3k
Forks
1.3k
Merge medio
1 d 22 h
PR fusionados (30 d)
35

Descripción

**Describe the feature you'd like**
Add a parameter to SHAPConfig from sagemaker.workflow.clarify_checkstep which lets the user specify the types of the dataset used to create a baseline for the SHAP analysis (e.g. float, int, category, etc..).
Alternatively, make it possible to run ClarifyCheckStep when an S3 URI has been passed as baseline to SHAPConfig.

**How would this feature be used? Please describe.**
When using the ClarifyCheckStep and SHAPConfig from sagemaker.workflow.clarify_checkstep, I am currently unable to specify my dataset's column types (e.g. some columns should be numerical while others should be categorical).

When running the ClarifyCheckStep as part of a SageMaker pipeline, Clarify calculates a baseline which is erroneous due to not having taken the column types into account, so e.g. some columns that should be categorical gets the mean of the column as baseline, where preferrably they should get the mode of the column or something else more appropriate.

I know that I can pass my own baseline to SHAPConfig, but I don't want this hard coded in my SageMaker pipeline definition - I want it to be computed at runtime, based on previous steps in my SageMaker pipeline.
An alternative solution would be to pass to SHAPConfig the S3 URI to a baseline dataset I create in a previous step, however this doesn't seem to work with how ClarifyCheckStep is currently implemented.

**Describe alternatives you've considered**
Make it possible to run ClarifyCheckStep when an S3 URI has been passed as baseline to SHAPConfig.

**Additional context**
```
from sagemaker.workflow.clarify_check_step import ClarifyCheckStep, ModelExplainabilityCheckConfig, SHAPConfig

shap_config = SHAPConfig(seed=123, num_samples=100, num_clusters=5)

model_explainability_check_config = ModelExplainabilityCheckConfig(
data_config=model_explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
)

step_model_explainability_check = ClarifyCheckStep(
name="ModelExplainabilityCheckStep",
display_name="Model Explainability Check",
clarify_check_config=model_explainability_check_config,
check_job_config=check_job_config_clarify,
skip_check=skipCheckModelExplainabilityParam,
register_new_baseline=registerNewBaselineModelExplainabilityParam,
supplied_baseline_constraints=suppliedBaselineConstraintsModelExplainabilityParam,
model_package_group_name=model_package_group_name,
)
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en sagemaker.workflow.clarify_check_step.py y lee SHAPConfig y ClarifyCheckStep, centrándote en cómo se gestionan los valores baseline y las URI de S3. Compara los dos enfoques propuestos—parámetros de tipo de columna o compatibilidad con baselines de S3 en tiempo de ejecución—y define como terminado que ClarifyCheckStep pueda calcular o consumir un baseline de SHAP consciente del tipo en una pipeline.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
aws, python
Área
backend-api-design, machine-learning
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.