MAL
MAL (Mask Auto-Label) pour la segmentation faiblement supervisée. Produit des masques de segmentation à partir d'annotations minimales (par exemple, annotations ponctuelles ou de boîte). Utilise un backbone ViT-MAE.
Définissez train.pretrained_model_path pour les poids pré-entraînés de ViT-MAE.
Schémas Dataclass
Les schémas TAO Core générés sont empaquetés dans schemas/<action>.schema.json, avec schemas/manifest.json listant les actions disponibles. Chaque schéma généré émet également references/spec_template_<action>.yaml à partir du champ default au niveau du schéma. L'activation AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. L'AutoML exécutable nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et se analysent. Utilisez le schéma d'entraînement empaqueté pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids d'option, les conditions mathématiques, les dépendances et les paramètres populaires. N'attendez pas ~/tao-core à l'exécution ; les mainteneurs régénèrent les schémas/templates avant d'empaqueter la banque de compétences.
Politique d'Action d'Entraînement
Ce modèle est activé AutoML au niveau de la couche modèle. Avant de traiter toute demande au stade de l'entraînement, lisez references/skill_info.yaml et résolvez la substitution d'exécution à partir soit d'une valeur automl_policy explicite, soit de la demande de workflow de l'utilisateur. Traitez les expressions comme « turn off AutoML », « disable AutoML », « no HPO » ou « plain training » comme automl_policy: off pour cette exécution uniquement ; sinon, utilisez auto par défaut. Lorsque automl_policy: auto, automl_enabled: true et que schemas/train.schema.json et references/spec_template_train.yaml sont empaquetés, routez l'action d'entraînement par défaut via tao-skill-bank:tao-run-automl avec le skill_dir de ce modèle. Préservez les substitutions de workflow/application pour les datasets, les specs, les répertoires de sortie, les paramètres GPU/plateforme, les checkpoints parent et automl_policy. Utilisez l'entraînement direct du modèle uniquement lorsque automl_policy: off ou que le schéma d'entraînement/template empaqueté est manquant ; dans le cas du schéma manquant, signalez qu'AutoML est activé mais non exécutable pour ce modèle jusqu'à ce que les schémas soient générés.
Les actions non-entraînement telles que evaluate, inference, export et les flux de déploiement restent dans cette compétence de modèle. La substitution automl_policy par exécution ne change pas les métadonnées du modèle.
Exigences d'Entraînement
- Type de dataset : segmentation
- Formats : par défaut
- Métrique de surveillance : mIoU
Exigences de Dataset par Action
| Action | Clé Spec | Source | Fichiers | Liste ? |
|---|---|---|---|---|
| evaluate | dataset.val_img_dir | eval_dataset | images.tar.gz | Non |
| evaluate | dataset.val_ann_path | eval_dataset | annotations.json | Non |
| inference | inference.img_dir | inference_dataset | images.tar.gz | Non |
| inference | inference.ann_path | inference_dataset | annotations.json | Non |
| train | dataset.train_img_dir | train_datasets | images.tar.gz | Non |
| train | dataset.train_ann_path | train_datasets | annotations.json | Non |
| train | dataset.val_img_dir | eval_dataset | images.tar.gz | Non |
| train | dataset.val_ann_path | eval_dataset | annotations.json | Non |
Substitutions Spec Typiques
Les substitutions de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau Per-Action Dataset Requirements ci-dessus et les inclure dans spec_overrides.
S3_TRAIN = "s3://bucket/data/train"
S3_EVAL = "s3://bucket/data/eval"
train (sources de données obligatoires) :
{
"train.num_gpus": 1,
"train.gpu_ids": [
0
],
"train.num_epochs": 5,
"train.checkpoint_interval": 5,
"train.validation_interval": 5,
"dataset.train_img_dir": f"{S3_TRAIN}/images.tar.gz",
"dataset.train_ann_path": f"{S3_TRAIN}/annotations.json",
"dataset.val_img_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.val_ann_path": f"{S3_EVAL}/annotations.json",
}
evaluate (sources de données obligatoires) :
{
"dataset.val_img_dir": f"{S3_EVAL}/images.tar.gz",
"dataset.val_ann_path": f"{S3_EVAL}/annotations.json",
}
inference (sources de données obligatoires) :
{
"inference.img_dir": f"{S3_EVAL}/images.tar.gz",
"inference.ann_path": f"{S3_EVAL}/annotations.json",
}
Dataset d'Évaluation
Optionnel. Les images et annotations de validation configurées aux côtés des chemins d'entraînement.
Paramètres Importants
- model.arch : Variante du backbone ViT-MAE. Par défaut vit-mae-base/16. Les options incluent vit-mae-large/16 et autres variantes ViT-MAE.
- train.lr : Taux d'apprentissage. Par défaut 1e-6 (très bas — fine-tuning de ViT).
- model.crop_size : Taille de crop d'entraînement. Par défaut 512.
- train.warmup_epochs : Epochs de warmup avant le taux d'apprentissage complet.
- model.load_mask : Si les masques pré-calculés doivent être chargés.
Multi-GPU / Multi-Node
Méthode de lancement : Gérée par Lightning (processus python unique, Lightning crée les workers).
| Clé Spec | Description | Par défaut |
|---|---|---|
train.num_gpus |
Nombre de GPUs | 1 |
train.gpu_ids |
Indices de périphérique GPU | [0] |
train.num_nodes |
Nombre de nœuds | 1 |
- Stratégie Multi-GPU :
ddp_find_unused_parameters_true - Pas de support fsdp
- Auto-scaling du LR :
lr = lr * num_devices * batch_size(le taux d'apprentissage est automatiquement mis à l'échelle par le nombre de périphériques et la taille du batch)
Variables env Multi-node (définies par l'orchestrateur) : WORLD_SIZE, NODE_RANK, MASTER_ADDR, MASTER_PORT, NUM_GPU_PER_NODE.
Matériel
Minimum 1 GPU, recommandé 2 GPUs. 24 Go+ (A100 recommandé) de VRAM par GPU. Le backbone ViT-MAE avec crop_size=512 nécessite 24 Go+ de mémoire GPU.
Motifs d'Erreur
CUDA out of memory : Réduisez model.crop_size (512 -> 384 -> 256) ou utilisez une variante ViT-MAE plus petite (base vs large).
Spec Param / Inférence du Modèle Parent
Les mappages d'inférence spécifiques au modèle appartiennent à ce fichier MD, pas à config.json. Les runners générés doivent lire cette section et appliquer les mappages avec les helpers du SDK avant create_job(). Cela reflète l'ancien flux microservices infer_params.py.
Mappages d'inférence à partir de mal.config.json de TAO Core :
| Action | Champ Spec | Fonction d'Inférence | Signification |
|---|---|---|---|
| evaluate | evaluate.checkpoint |
parent_model |
fichier de modèle déduit du dossier des résultats du job parent |
| evaluate | results_dir |
output_dir |
répertoire des résultats du job actuel |
| inference | inference.checkpoint |
parent_model |
fichier de modèle déduit du dossier des résultats du job parent |
| inference | inference.label_dump_path |
create_inference_result_file_mal |
chemin JSON d'inférence MAL |
| inference | results_dir |
output_dir |
répertoire des résultats du job actuel |
| train | results_dir |
output_dir |
répertoire des résultats du job actuel |
Pour parent_model ou parent_model_folder, passez l'id du job enfant d'entraînement/export/AutoML en amont comme parent_job_id. Le SDK liste le dossier de résultat parent, filtre les artefacts de checkpoint et retourne le fichier ou dossier de modèle sélectionné. N'ajoutez pas ces mappages dans config.json et ne patchez pas les scripts runner générés pour deviner les chemins de checkpoint.