in assets/common/src/batch_deploy.py [0:0]
def parse_args():
"""Return arguments."""
parser = argparse.ArgumentParser()
# Defaults for batch endpoint has been picked mostly from:
# https://learn.microsoft.com/en-us/azure/machine-learning/reference-yaml-deployment-batch
# Some of the defaults have been tweaked to cater to large models.
# add arguments
parser.add_argument(
"--registration_details_folder",
type=Path,
help="Folder containing model registration details in a JSON file named model_registration_details.json",
)
parser.add_argument(
"--model_id",
type=str,
help="Asset ID of the model registered in workspace/registry.",
)
parser.add_argument(
"--inference_payload_file",
type=Path,
help="File containing data used to validate deployment",
)
parser.add_argument(
"--inference_payload_folder",
type=Path,
help="Folder containing files used to validate deployment",
)
parser.add_argument(
"--endpoint_name",
type=str,
help="Name of the endpoint",
)
parser.add_argument("--deployment_name", type=str, help="Name of the the deployment")
parser.add_argument(
"--compute_name",
type=str,
help="Name of the compute target to execute the batch scoring jobs on",
)
parser.add_argument(
"--size",
type=str,
help="Compute instance size to deploy model",
default=DEFAULT_COMPUTE_SIZE,
)
parser.add_argument(
"--min_instances",
type=int,
default=DEFAULT_MIN_INSTANCES,
help="Minimum number of instances of the compute cluster",
)
parser.add_argument(
"--max_instances",
type=int,
default=DEFAULT_MAX_INSTANCES,
help="Maximum number of instances of the compute cluster",
)
parser.add_argument(
"--idle_time_before_scale_down",
type=int,
default=DEFAULT_IDLE_TIME_BEFORE_SCALE_DOWN,
help="Node Idle Time before scaling down amlCompute",
)
parser.add_argument(
"--output_file_name",
type=str,
default=DEFAULT_OUTPUT_FILE_NAME,
help="Name of the batch scoring output file",
)
parser.add_argument(
"--max_concurrency_per_instance",
type=int,
default=DEFAULT_MAX_CONCURRENCY_PER_INSTANCE,
help="The maximum number of parallel scoring_script runs per instance",
)
parser.add_argument(
"--error_threshold",
type=int,
default=DEFAULT_ERROR_THRESHOLD,
help="The number of file failures that should be ignored",
)
parser.add_argument(
"--max_retries",
type=int,
default=DEFAULT_MAX_RETRIES,
help="The maximum number of retries for a failed or timed-out mini batch",
)
parser.add_argument(
"--timeout",
type=int,
default=DEFAULT_TIMEOUT,
help="The timeout in seconds for scoring a single mini batch.",
)
parser.add_argument(
"--logging_level",
type=str,
default=DEFAULT_LOGGING_LEVEL,
help="The log verbosity level",
)
parser.add_argument(
"--mini_batch_size",
type=int,
default=DEFAULT_MINI_BATCH_SIZE,
help="The number of files the code_configuration.scoring_script can process in one run() call",
)
parser.add_argument(
"--instance_count",
type=int,
help="The number of nodes to use for each batch scoring job",
default=DEFAULT_INSTANCE_COUNT,
choices=range(1, MAX_INSTANCE_COUNT),
)
parser.add_argument(
"--batch_job_output_folder",
type=Path,
help="Folder to which batch job outputs will be saved",
)
# parse args
args = parser.parse_args()
logger.info(f"Args received {args}")
print("args received ", args)
return args