googleapis / googleapis/python-aiplatform

ModelDeploymentMonitoringJob.create fails with "model_deployment_monitoring_objective_configs is empty"

Ouverte
#2,361 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
api: vertex-ai
Langage dominant
Python
Étoiles
905
Forks
465
Merge moyen
1 j 13 h
PR mergées (30 j)
44

Description

#### 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"}"
```

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.