googleapis / googleapis/python-aiplatform

ModelDeploymentMonitoringJob.create fails with "model_deployment_monitoring_objective_configs is empty"

Abierto
#2,361 1 comentario 0 reacciones 0 asignados Ver en GitHub
api: vertex-ai
Lenguaje dominante
Python
Estrellas
905
Forks
465
Merge medio
1 d 13 h
PR fusionados (30 d)
44

Descripción

#### Environment details

- OS type and version: MacOS 13.4.1
- Python version: 3.8.12
- `google-cloud-aiplatform` version: 1.28.0

#### Steps to reproduce

Just create a model monitoring job using the Python SDK will fail with the error "List of found errors: 1.Field: model_deployment_monitoring_job; Message: model_deployment_monitoring_objective_configs is empty in ModelDeploymentMonitoringJob.".

#### Code example

The below code is from the [model monitoring example notebook](https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/model_monitoring/model_monitoring.ipynb):

```python

project_id = 'pbalm-myproj'
region = 'europe-west4'

aiplatform.init(project=project_id, location=region)

print(f"{aiplatform.__version__=}")

DATASET_BQ_URI=f"bq://{project_id}.creditcards.ulb_fraud_detection"
SKEW_THRESHOLDS={'V1': 0.5, "V2": 0.4}
ATTRIB_SKEW_THRESHOLDS=SKEW_THRESHOLDS
TARGET="Class"
DRIFT_THRESHOLDS=SKEW_THRESHOLDS
ATTRIB_DRIFT_THRESHOLDS=SKEW_THRESHOLDS
LOG_SAMPLE_RATE=0.5
MONITOR_INTERVAL=5
USER_EMAIL='redacted@google.com'
JOB_NAME='testmodelmon'
endpoint = f'projects/{project_id}/locations/{region}/endpoints/3183121346783608832'

skew_config = model_monitoring.SkewDetectionConfig(
data_source=DATASET_BQ_URI,
skew_thresholds=SKEW_THRESHOLDS,
attribute_skew_thresholds=ATTRIB_SKEW_THRESHOLDS,
target_field=TARGET,
)

drift_config = model_monitoring.DriftDetectionConfig(
drift_thresholds=DRIFT_THRESHOLDS,
attribute_drift_thresholds=ATTRIB_DRIFT_THRESHOLDS,
)

explanation_config = model_monitoring.ExplanationConfig()
objective_config = model_monitoring.ObjectiveConfig(
skew_config, drift_config, explanation_config
)

# Create sampling configuration
random_sampling = model_monitoring.RandomSampleConfig(sample_rate=LOG_SAMPLE_RATE)

# Create schedule configuration
schedule_config = model_monitoring.ScheduleConfig(monitor_interval=MONITOR_INTERVAL)

# Create alerting configuration.
emails = [USER_EMAIL]
alerting_config = model_monitoring.EmailAlertConfig(
user_emails=emails, enable_logging=True
)

# Create the monitoring job.
job = aiplatform.ModelDeploymentMonitoringJob.create(
display_name=JOB_NAME,
logging_sampling_strategy=random_sampling,
schedule_config=schedule_config,
alert_config=alerting_config,
objective_configs=objective_config,
project=project_id,
location=region,
endpoint=endpoint,
)
```

#### Stack trace
```
_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.INVALID_ARGUMENT
details = "List of found errors: 1.Field: model_deployment_monitoring_job; Message: model_deployment_monitoring_objective_configs is empty in ModelDeploymentMonitoringJob. "
debug_error_string = "UNKNOWN:Error received from peer ipv4:216.58.215.138:443 {grpc_message:"List of found errors:\t1.Field: model_deployment_monitoring_job; Message: model_deployment_monitoring_objective_configs is empty in ModelDeploymentMonitoringJob.\t", grpc_status:3, created_time:"2023-07-13T14:44:43.464163+02:00"}"
```

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.