components mmtracking_video_multi_object_tracking_finetune - Azure/azureml-assets GitHub Wiki
Component to finetune MMTracking models for video multi-object tracking task.
Version: 0.0.10
View in Studio: https://ml.azure.com/registries/azureml/components/mmtracking_video_multi_object_tracking_finetune/version/0.0.10
component input: model path
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
model_path | Output folder of model selector containing model metadata like config, checkpoints, tokenizer config. | uri_folder | False |
component input: training mltable
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
training_data | Path to the mltable of the training dataset. | mltable | False |
optional component input: validation mltable
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
validation_data | Path to the mltable of the validation dataset. | mltable | True | ||
image_width | Image width that is input to the network. Default is -1 which means it would be overwritten by image_scale in model config. | integer | -1 | True | |
image_height | Image height that is input to the network. Default is -1 which means it would be overwritten by image_scale in model config. | integer | -1 | True | |
task_name | Which task the model is solving. | string | ['video-multi-object-tracking'] | ||
number_of_workers | Number of subprocesses to use for data loading (PyTorch only). 0 means that the data will be loaded in the main process. | integer | 8 | True |
Training parameters
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
number_of_epochs | Number of training epochs. | integer | 15 | True | |
max_steps | If set to a positive number, the total number of training steps to perform. Overrides 'number_of_epochs'. In case of using a finite iterable dataset the training may stop before reaching the set number of steps when all data is exhausted. | integer | -1 | True | |
training_batch_size | Train batch size. | integer | 1 | True | |
auto_find_batch_size | Flag to enable auto finding of batch size. If the provided 'per_device_train_batch_size' goes into Out Of Memory (OOM) enabling auto_find_batch_size will find the correct batch size by iteratively reducing 'per_device_train_batch_size' by a factor of 2 till the OOM is fixed. | boolean | False | True |
learning rate and learning rate scheduler
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
learning_rate | Start learning rate. Defaults to linear scheduler. | number | 0.0001 | True | |
learning_rate_scheduler | The scheduler type to use. | string | warmup_cosine_with_restarts | True | ['warmup_linear', 'warmup_cosine', 'warmup_cosine_with_restarts', 'warmup_polynomial', 'constant', 'warmup_constant'] |
warmup_steps | Number of steps used for a linear warmup from 0 to learning_rate. | integer | 5 | True |
optimizer
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
optimizer | optimizer to be used while training. | string | sgd | True | ['adamw_hf', 'adamw', 'sgd', 'adafactor', 'adagrad'] |
weight_decay | The weight decay to apply (if not zero) to all layers except all bias and LayerNorm weights in AdamW optimizer. | number | 0.0 | True | |
extra_optim_args | Optional additional arguments that are supplied to SGD Optimizer. The arguments should be semi-colon separated key value pairs and should be enclosed in double quotes. For example, "momentum=0.5; nesterov=True" for sgd. Please make sure to use a valid parameter names for the chosen optimizer. For exact parameter names, please refer https://pytorch.org/docs/1.13/generated/torch.optim.SGD.html#torch.optim.SGD for SGD. Parameters supplied in extra_optim_args will take precedence over the parameter supplied via other arguments such as weight_decay. If weight_decay is provided via "weight_decay" parameter and via extra_optim_args both, values specified in extra_optim_args will be used. | string | True |
gradient accumulation
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
gradient_accumulation_step | Number of update steps to accumulate the gradients for, before performing a backward/update pass. | integer | 1 | True |
mixed precision training
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
precision | Apply mixed precision training. This can reduce memory footprint by performing operations in half-precision. | string | 32 | True | ['32', '16'] |
primary metric
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
metric_for_best_model | Specify the metric to use to compare two different models. | string | mean_average_precision | True | ['mean_average_precision', 'precision', 'recall', 'MOTA', 'MOTP', 'IDF1'] |
metric thresholds
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
iou_threshold | IOU threshold used during inference in non-maximum suppression post processing. | number | True | ||
box_score_threshold | During inference, only return proposals with a score greater than box_score_threshold . The score is the multiplication of the objectness score and classification probability. |
number | True |
random seed
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
random_seed | Random seed that will be set at the beginning of training. | integer | 42 | True |
evaluation strategy parameters
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
evaluation_strategy | The evaluation strategy to adopt during training. Please note that the save_strategy and evaluation_strategy should match. | string | epoch | True | ['epoch', 'steps'] |
evaluation_steps | Number of update steps between two evals if evaluation_strategy='steps'. Please note that the saving steps should be a multiple of the evaluation steps. | integer | 500 | True |
logging strategy parameters
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
logging_strategy | The logging strategy to adopt during training. | string | epoch | True | ['epoch', 'steps'] |
logging_steps | Number of update steps between two logs if logging_strategy='steps'. | integer | 500 | True |
Save strategy
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
save_strategy | The checkpoint save strategy to adopt during training. Please note that the save_strategy and evaluation_strategy should match. | string | epoch | True | ['epoch', 'steps'] |
save_steps | Number of updates steps before two checkpoint saves if save_strategy="steps". Please note that the saving steps should be a multiple of the evaluation steps. | integer | 500 | True |
model checkpointing limit
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
save_total_limit | If a value is passed, will limit the total amount of checkpoints. Deletes the older checkpoints in output_dir. If the value is -1 saves all checkpoints". | integer | 5 | True |
Early Stopping Parameters
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
early_stopping | Enable early stopping. | boolean | False | True | |
early_stopping_patience | Stop training when the specified metric worsens for early_stopping_patience evaluation calls. | integer | 1 | True |
Grad Norm
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
max_grad_norm | Maximum gradient norm (for gradient clipping) | number | 1.0 | True |
resume from the input model
Name | Description | Type | Default | Optional | Enum |
---|---|---|---|---|---|
resume_from_checkpoint | Loads optimizer, Scheduler and Trainer state for finetuning if true. | boolean | False | True | |
save_as_mlflow_model | Save as mlflow model with pyfunc as flavour. | boolean | True | True |
Name | Description | Type |
---|---|---|
mlflow_model_folder | Output dir to save the finetune model as mlflow model. | mlflow_model |
pytorch_model_folder | Output dir to save the finetune model as torch model. | custom_model |
azureml://registries/azureml/environments/acft-mmtracking-video-gpu/versions/33