tao-train-mask-grounding-dino

Par nvidia · skills

Mask Grounding DINO pour la segmentation d'instances ancrée. Étend Grounding DINO avec une tête de prédiction de masques pour

npx skills add https://github.com/nvidia/skills --skill tao-train-mask-grounding-dino

Mask Grounding DINO

Mask Grounding DINO pour la segmentation d'instance ancrée. Étend Grounding DINO avec une tête de prédiction de masque pour la segmentation open-set guidée par des invites texte.

Définissez train.pretrained_model_path pour les poids du modèle complet.

Pour les actions TAO Deploy TensorRT (gen_trt_engine, évaluation TensorRT et inférence TensorRT), lisez d'abord references/tao-deploy-mask-grounding-dino.md. Les modèles de spécification de déploiement se trouvent dans le dossier references/ de cette compétence avec le préfixe spec_template_deploy_*.yaml.

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 depuis le champ default du niveau supérieur du schéma. L'activation d'AutoML est déclarée au niveau du modèle dans references/skill_info.yaml via automl_enabled. AutoML exécutable nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et s'analysent correctement. 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 responsables régénèrent les schémas/modèles avant d'empaqueter la banque de compétences.

Politique d'action d'entraînement

Ce modèle est activé pour AutoML au niveau du 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 d'une valeur automl_policy explicite ou 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 la valeur par défaut auto. Quand automl_policy: auto, automl_enabled: true, et que schemas/train.schema.json et references/spec_template_train.yaml sont empaquetés, acheminez l'action d'entraînement via tao-skill-bank:tao-run-automl par défaut avec le skill_dir de ce modèle. Préservez les substitutions de workflow/application pour les ensembles de données, les spécifications, les répertoires de sortie, les paramètres GPU/plateforme, les points de contrôle parents et automl_policy. Utilisez uniquement l'entraînement direct du modèle quand automl_policy: off ou le schéma/modèle d'entraînement 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 liées à l'entraînement, comme 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 d'ensemble de données : segmentation
  • Formats : odvg, coco, coco_raw
  • Métrique de surveillance : [bbox] val_mAP@50

Exigences d'ensemble de données par action

Action Clé Spec Source Fichiers Liste ?
evaluate dataset.test_data_sources eval_dataset image_dir: images.tar.gz, json_file: annotations.json Non
inference dataset.infer_data_sources inference_dataset image_dir: images.tar.gz, classmap: label_map.txt, json_file: inference.jsonl, captions: inference.jsonl Non
quantize dataset.train_data_sources train_datasets image_dir: images.tar.gz, json_file: annotations_odvg.jsonl, label_map: annotations_odvg_labelmap.json Oui
quantize dataset.val_data_sources eval_dataset image_dir: images.tar.gz, json_file: annotations.json Non
quantize dataset.quant_calibration_data_sources train_datasets image_dir: images.tar.gz, json_file: annotations_odvg.jsonl, label_map: annotations_odvg_labelmap.json Non
train dataset.train_data_sources train_datasets image_dir: images.tar.gz, json_file: annotations_odvg.jsonl, label_map: annotations_odvg_labelmap.json Oui
train dataset.val_data_sources eval_dataset image_dir: images.tar.gz, json_file: 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 Exigences d'ensemble de données par action 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.num_epochs": 10,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "val_data_sources.data_type": "OD",
    "model.num_region_queries": 100,
    "dataset.train_data_sources": [{"image_dir": f"{S3_TRAIN}/images.tar.gz", "json_file": f"{S3_TRAIN}/annotations_odvg.jsonl", "label_map": f"{S3_TRAIN}/annotations_odvg_labelmap.json"}],
    "dataset.val_data_sources": {"image_dir": f"{S3_EVAL}/images.tar.gz", "json_file": f"{S3_EVAL}/annotations.json"},
}

evaluate (sources de données obligatoires) :

{
    "test_data_sources.data_type": "OD",
    "dataset.test_data_sources": {"image_dir": f"{S3_EVAL}/images.tar.gz", "json_file": f"{S3_EVAL}/annotations.json"},
}

inference (sources de données obligatoires) :

{
    "infer_data_sources.data_type": "OD",
    "dataset.infer_data_sources": {"image_dir": f"{S3_EVAL}/images.tar.gz", "classmap": f"{S3_EVAL}/label_map.txt", "json_file": f"{S3_EVAL}/inference.jsonl", "captions": f"{S3_EVAL}/inference.jsonl"},
}

quantize (sources de données obligatoires) :

{
    "dataset.train_data_sources": [{"image_dir": f"{S3_TRAIN}/images.tar.gz", "json_file": f"{S3_TRAIN}/annotations_odvg.jsonl", "label_map": f"{S3_TRAIN}/annotations_odvg_labelmap.json"}],
    "dataset.val_data_sources": {"image_dir": f"{S3_EVAL}/images.tar.gz", "json_file": f"{S3_EVAL}/annotations.json"},
    "dataset.quant_calibration_data_sources": {"image_dir": f"{S3_TRAIN}/images.tar.gz", "json_file": f"{S3_TRAIN}/annotations_odvg.jsonl", "label_map": f"{S3_TRAIN}/annotations_odvg_labelmap.json"},
}

Ensemble de données d'évaluation

Optionnel. La validation utilise les annotations au format COCO même quand l'entraînement utilise ODVG.

Paramètres importants

  • model.backbone : Valeur par défaut swin_tiny_224_1k. Mêmes options de backbone que Grounding DINO.
  • train.optim.lr : Taux d'apprentissage. Valeur par défaut 2e-4. lr_backbone 2e-5. Réutilise GDINOTrainExpConfig — même configuration d'entraînement que Grounding DINO.
  • model.num_queries : Requêtes d'objet. Valeur par défaut 900.
  • model.has_mask : Active la tête de prédiction de masque. Valeur par défaut True. Ajoute les coefficients de perte mask/dice/rela.
  • model.num_region_queries : Nombre de requêtes de région pour la prédiction de masque. Valeur par défaut 100.
  • model.loss_types : Composants de perte. Valeur par défaut [labels, boxes, masks]. Inclut mask_loss_coef, dice_loss_coef, rela_loss_coef.
  • evaluate.ioi_threshold : Seuil IoI pour l'évaluation de masque. Valeur par défaut 0,5.
  • evaluate.nms_threshold : Seuil NMS. Valeur par défaut 0,2.
  • evaluate.text_threshold : Seuil de correspondance texte. Valeur par défaut 0,3.
  • dataset.has_mask : L'ensemble de données inclut les annotations de masque. Valeur par défaut True. Le type de données par défaut de val_data_sources est « VG ».

Multi-GPU / Multi-Nœud

Méthode de lancement : Gérée par Lightning. Même comportement DDP/FSDP que Grounding DINO.

Clé Spec Description Valeur par défaut
train.num_gpus Nombre de GPU 1
train.gpu_ids Indices des appareils GPU [0]
train.num_nodes Nombre de nœuds 1
train.distributed_strategy ddp ou fsdp ddp

Matériel

Minimum 1 GPU, recommandé 4 GPU. 24 Go+ (A100 recommandé) de VRAM par GPU. Plus lourd que Grounding DINO en raison de la tête de prédiction de masque. 24 Go+ de mémoire GPU recommandés.

Motifs d'erreur

CUDA mémoire insuffisante : Réduisez batch_size. La prédiction de masque ajoute des frais généraux en plus de Grounding DINO.

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 exécuteurs générés doivent lire cette section et appliquer les mappages avec les assistants SDK avant create_job(). Cela reflète l'ancien flux microservices infer_params.py.

Mappages d'inférence du fichier TAO Core mask_grounding_dino.config.json :

Action Champ Spec Fonction d'inférence Signification
evaluate encryption_key key clé de chiffrement
evaluate evaluate.checkpoint parent_model fichier de modèle déduit du dossier de résultats du travail parent
evaluate evaluate.trt_engine parent_model fichier de modèle déduit du dossier de résultats du travail parent
evaluate results_dir output_dir répertoire de résultats du travail courant
export encryption_key key clé de chiffrement
export export.checkpoint parent_model fichier de modèle déduit du dossier de résultats du travail parent
export export.onnx_file create_onnx_file chemin ONNX de sortie
export results_dir output_dir répertoire de résultats du travail courant
gen_trt_engine encryption_key key clé de chiffrement
gen_trt_engine gen_trt_engine.onnx_file parent_model fichier de modèle déduit du dossier de résultats du travail parent
gen_trt_engine gen_trt_engine.trt_engine create_engine_file chemin du moteur TensorRT de sortie
gen_trt_engine results_dir output_dir répertoire de résultats du travail courant
inference encryption_key key clé de chiffrement
inference inference.checkpoint parent_model fichier de modèle déduit du dossier de résultats du travail parent
inference inference.trt_engine parent_model fichier de modèle déduit du dossier de résultats du travail parent
inference results_dir output_dir répertoire de résultats du travail courant
quantize encryption_key key clé de chiffrement
quantize quantize.model_path parent_model fichier de modèle déduit du dossier de résultats du travail parent
quantize results_dir output_dir répertoire de résultats du travail courant
train encryption_key key clé de chiffrement
train model.pretrained_backbone_path ptm_if_no_resume_model PTM quand aucun point de contrôle de reprise n'existe
train results_dir output_dir répertoire de résultats du travail courant
train train.pretrained_model_path ptm_if_no_resume_model PTM quand aucun point de contrôle de reprise n'existe
train train.resume_training_checkpoint_path resume_model fichier de modèle déduit du dossier de résultats du travail courant

Pour parent_model ou parent_model_folder, passez l'ID du travail enfant de train/export/AutoML en amont sous forme parent_job_id. Le SDK énumère le dossier de résultats parent, filtre les artefacts de point de contrôle et retourne le fichier ou dossier de modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne corrigez pas les scripts de lanceur générés pour deviner les chemins de point de contrôle.

Déploiement

  • tao-deploy-mask-grounding-dino — Flux de déploiement Mask Grounding DINO pour la génération du moteur TensorRT, l'évaluation TensorRT et l'inférence TensorRT en utilisant TAO Deploy.

Skills similaires