src/python-sdk-v1/deploy_drift_detection.py (43 lines of code) (raw):

# Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. from obs.drift.drift_analysis_scheduler import execute from datetime import datetime from azure.ai.ml.constants import TimeZone from dateutil import tz from azure.ai.ml.entities import CronSchedule, ScheduleStatus from azureml.core import Workspace import argparse def parse_args(): parser = argparse.ArgumentParser(description="Drift Detection") parser.add_argument("-c", type=str, help="Compute Name", default = 'cpu-cluster') parser.add_argument("-b", type=str, help="Base table name", default='mlmonitoring') parser.add_argument("-t", type=str, help="target table name", default='mlmonitoring') parser.add_argument("-bf", type=str, help="base starting date", default='12/15/2021') parser.add_argument("-bt", type=str, help="base ending date", default='03/01/2022') parser.add_argument("-tf", type=str, help="target starting date", default='04/01/2022') parser.add_argument("-tt", type=str, help="target ending date", default='5/15/2022') return parser.parse_args() def main(): args = parse_args() schedule_start_time = datetime.now(tz=tz.gettz("PACIFIC STANDARD TIME")) cron_schedule = CronSchedule( expression="*/10 * * * *", #provide a cron express to schedule the recurring execution of drift detection job start_time=schedule_start_time, time_zone=TimeZone.PACIFIC_STANDARD_TIME, status=ScheduleStatus.ENABLED, ) target_dt_shift_step_size= "W" ws = Workspace.from_config() subscription_id = ws.subsription_id resource_group = ws.resource_group workspace = ws.name compute_name = args.c base_table_name = args.b target_table_name = args.t base_dt_from = args.bf base_dt_to = args.bt target_dt_from = args.tf target_dt_to= args.tt ml_client, job_name = execute(subscription_id=subscription_id,resource_group=resource_group,workspace=workspace, compute_name =compute_name, base_table_name =base_table_name,target_table_name =target_table_name, base_dt_from =base_dt_from, base_dt_to= base_dt_to,target_dt_from=target_dt_from, target_dt_to=target_dt_to, bin="7d", limit=100000, concurrent_run=False, drift_threshold =0.4,target_dt_shift_step_size=target_dt_shift_step_size,job_cron_schedule=cron_schedule) if __name__ == "__main__": main()