Skip to content

Commit d31433d

Browse files
authored
[ML] Add MoMo Docstrings and Make Models/Consts Public (Azure#30242)
* add docstrings for monitoring classes * make models public * fix model performance * black * fix imports
1 parent a0be0a5 commit d31433d

File tree

12 files changed

+313
-4
lines changed

12 files changed

+313
-4
lines changed

sdk/ml/azure-ai-ml/azure/ai/ml/_schema/monitoring/monitor_definition.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
DataQualitySignalSchema,
1414
PredictionDriftSignalSchema,
1515
FeatureAttributionDriftSignalSchema,
16-
ModelPerformanceSignalSchema,
1716
CustomMonitoringSignalSchema,
1817
)
1918
from azure.ai.ml._schema.monitoring.alert_notification import AlertNotificationSchema
@@ -32,7 +31,6 @@ class MonitorDefinitionSchema(metaclass=PatchedSchemaMeta):
3231
NestedField(DataQualitySignalSchema),
3332
NestedField(PredictionDriftSignalSchema),
3433
NestedField(FeatureAttributionDriftSignalSchema),
35-
NestedField(ModelPerformanceSignalSchema),
3634
NestedField(CustomMonitoringSignalSchema),
3735
]
3836
),

sdk/ml/azure-ai-ml/azure/ai/ml/constants/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@
2121
)
2222
from ._registry import AcrAccountSku, StorageAccountType
2323
from ._workspace import ManagedServiceIdentityType
24+
from ._monitoring import (
25+
MonitorSignalType,
26+
MonitorMetricName,
27+
MonitorModelType,
28+
MonitorFeatureType,
29+
MonitorDatasetContext,
30+
)
2431

2532
TabularTrainingMode.__module__ = __name__
2633

@@ -44,4 +51,9 @@
4451
"NlpLearningRateScheduler",
4552
"Scope",
4653
"TabularTrainingMode",
54+
"MonitorSignalType",
55+
"MonitorMetricName",
56+
"MonitorModelType",
57+
"MonitorFeatureType",
58+
"MonitorDatasetContext",
4759
]

sdk/ml/azure-ai-ml/azure/ai/ml/constants/_monitoring.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@
66

77
from azure.core import CaseInsensitiveEnumMeta
88

9+
from azure.ai.ml._utils._experimental import experimental
10+
911

1012
ALL_FEATURES = "all_features"
1113

1214

1315
AZMONITORING = "azmonitoring"
1416

1517

18+
@experimental
1619
class MonitorSignalType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
1720
DATA_DRIFT = "data_drift"
1821
DATA_QUALITY = "data_quality"
@@ -22,6 +25,7 @@ class MonitorSignalType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
2225
CUSTOM = "custom"
2326

2427

28+
@experimental
2529
class MonitorMetricName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
2630
JENSEN_SHANNON_DISTANCE = "jensen_shannon_distance"
2731
NORMALIZED_WASSERSTEIN_DISTANCE = "normalized_wasserstein_distance"
@@ -41,18 +45,21 @@ class MonitorMetricName(str, Enum, metaclass=CaseInsensitiveEnumMeta):
4145
RMSE = "RMSE"
4246

4347

48+
@experimental
4449
class MonitorModelType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
4550
CLASSIFICATION = "classification"
4651
REGRESSION = "regression"
4752

4853

54+
@experimental
4955
class MonitorFeatureType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
5056
NUMERICAL = "numerical"
5157
CATEGORICAL = "categorical"
5258
NOT_APPLICABLE = "not_applicable"
5359
ALL_FEATURE_TYPES = "all_feature_types"
5460

5561

62+
@experimental
5663
class MonitorDatasetContext(str, Enum, metaclass=CaseInsensitiveEnumMeta):
5764
MODEL_INPUTS = "model_inputs"
5865
MODEL_OUTPUTS = "model_outputs"

sdk/ml/azure-ai-ml/azure/ai/ml/entities/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,28 @@
156156
PackageInputPathUrl,
157157
PackageInputPathVersion,
158158
)
159+
from ._monitoring.alert_notification import AlertNotification
160+
from ._monitoring.definition import MonitorDefinition
161+
from ._monitoring.input_data import MonitorInputData
162+
from ._monitoring.schedule import MonitorSchedule
163+
from ._monitoring.signals import (
164+
DataDriftSignal,
165+
DataQualitySignal,
166+
PredictionDriftSignal,
167+
FeatureAttributionDriftSignal,
168+
CustomMonitoringSignal,
169+
TargetDataset,
170+
MonitorFeatureFilter,
171+
DataSegment,
172+
)
173+
from ._monitoring.target import MonitoringTarget
174+
from ._monitoring.thresholds import (
175+
DataDriftMetricThreshold,
176+
DataQualityMetricThreshold,
177+
PredictionDriftMetricThreshold,
178+
FeatureAttributionDriftMetricThreshold,
179+
CustomMonitoringMetricThreshold,
180+
)
159181

160182

161183
from ._assets._artifacts.feature_set import FeatureSet
@@ -360,4 +382,22 @@
360382
"PackageInputPathVersion",
361383
"Route",
362384
"AccessKeyConfiguration",
385+
"AlertNotification",
386+
"MonitorDefinition",
387+
"MonitorInputData",
388+
"MonitorSchedule",
389+
"DataDriftSignal",
390+
"DataQualitySignal",
391+
"PredictionDriftSignal",
392+
"FeatureAttributionDriftSignal",
393+
"CustomMonitoringSignal",
394+
"TargetDataset",
395+
"MonitorFeatureFilter",
396+
"DataSegment",
397+
"MonitoringTarget",
398+
"DataDriftMetricThreshold",
399+
"DataQualityMetricThreshold",
400+
"PredictionDriftMetricThreshold",
401+
"FeatureAttributionDriftMetricThreshold",
402+
"CustomMonitoringMetricThreshold",
363403
]

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_monitoring/alert_notification.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@
1414

1515
@experimental
1616
class AlertNotification(RestTranslatableMixin):
17+
"""Alert notification configuration for monitoring jobs
18+
19+
:param emails: A list of emails that will receive notifications for monitoring alerts
20+
:type emails: List[str]
21+
"""
22+
1723
def __init__(
1824
self,
1925
*,

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_monitoring/definition.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
DataQualitySignal,
1717
PredictionDriftSignal,
1818
FeatureAttributionDriftSignal,
19-
ModelPerformanceSignal,
2019
CustomMonitoringSignal,
2120
)
2221
from azure.ai.ml.entities._mixins import RestTranslatableMixin
@@ -30,6 +29,21 @@
3029

3130
@experimental
3231
class MonitorDefinition(RestTranslatableMixin):
32+
"""Monitor definition
33+
34+
:param compute: Information on compute resources associated with the monitor
35+
:type compute: str
36+
:param monitoring_target: Metadata describing the model or deployment that is being monitored
37+
:type monitoring_target: ~azure.ai.ml.entities.MonitoringTarget
38+
:param monitoring_signals: Dictionary of signals to monitor
39+
:type monitoring_signals: Dict[str, Union[~azure.ai.ml.entities.DataDriftSignal
40+
, ~azure.ai.ml.entities.DataQualitySignal, ~azure.ai.ml.entities.PredictionDriftSignal
41+
, ~azure.ai.ml.entities.FeatureAttributionDriftSignal
42+
, ~azure.ai.ml.entities.CustomMonitoringSignal]]
43+
:param alert_notification: Alert configuration for the monitor
44+
:type alert_notification: Union[Literal['azmonitoring'], ~azure.ai.ml.entities.AlertNotification]
45+
"""
46+
3347
def __init__(
3448
self,
3549
*,
@@ -42,7 +56,6 @@ def __init__(
4256
DataQualitySignal,
4357
PredictionDriftSignal,
4458
FeatureAttributionDriftSignal,
45-
ModelPerformanceSignal,
4659
CustomMonitoringSignal,
4760
],
4861
] = None,

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_monitoring/input_data.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,21 @@
1313

1414
@experimental
1515
class MonitorInputData(RestTranslatableMixin):
16+
"""Monitor input data
17+
18+
:param input_dataset: Input data used by the monitor
19+
:type input_dataset: ~azure.ai.ml.entities.Input
20+
:param dataset_context: The context of the input dataset. Possible values
21+
include: model_inputs, model_outputs, training, test, validation,
22+
ground_truth
23+
:type dataset_context: str or ~azure.ai.ml.constants.MonitorDatasetContext
24+
:param target_column_name: The target column in the given input dataset to leverage
25+
:type target_column_name: str
26+
:param pre_processing_component: ARM resource ID of the component resource used to
27+
preprocess the data.
28+
:type pre_processing_component: str
29+
"""
30+
1631
def __init__(
1732
self,
1833
*,

sdk/ml/azure-ai-ml/azure/ai/ml/entities/_monitoring/schedule.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,25 @@
2828

2929
@experimental
3030
class MonitorSchedule(Schedule, RestTranslatableMixin):
31+
"""Monitor schedule
32+
33+
:param name: Name of the schedule.
34+
:type name: str
35+
:param trigger: Trigger of the schedule.
36+
:type trigger: Union[~azure.ai.ml.entities.CronTrigger
37+
, ~azure.ai.ml.entities.RecurrenceTrigger]
38+
:param create_monitor: The schedule action monitor definition
39+
:type create_monitor: ~azure.ai.ml.entities.MonitorDefinition
40+
:param display_name: Display name of the schedule.
41+
:type display_name: str
42+
:param description: Description of the schedule, defaults to None
43+
:type description: str
44+
:param tags: Tag dictionary. Tags can be added, removed, and updated.
45+
:type tags: dict[str, str]
46+
:param properties: The job property dictionary.
47+
:type properties: dict[str, str]
48+
"""
49+
3150
def __init__(
3251
self,
3352
*,

0 commit comments

Comments
 (0)