tao-train-mask-auto-label

Par nvidia · skills

MAL (Mask Auto-Label) pour la segmentation faiblement supervisée. Génère des masques de segmentation à partir d'annotations minimales

npx skills add https://github.com/nvidia/skills --skill tao-train-mask-auto-label

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.

Skills similaires