tao-train-nvpanoptix3d

Par nvidia · skills

NVPanoptix3D pour la reconstruction de scène 3D panoptique à partir d'images RGB posées. Produit une segmentation panoptique 3D

npx skills add https://github.com/nvidia/skills --skill tao-train-nvpanoptix3d

NVPanoptix3D

NVPanoptix3D pour la reconstruction de scène 3D panoptique à partir d'images RGB posées. Produit une segmentation panoptique 3D (masques sémantiques, d'instance et panoptiques) avec complétion d'occupation. Construit sur un backbone VGGT avec une tête de style Mask2Former et reconstruction de frustum 3D.

Utilise des checkpoints de stage 2D et 3D. Définissez train.checkpoint_2d et train.checkpoint_3d pour l'initialisation par étapes.

Schémas Dataclass

Les schémas TAO Core générés sont packagé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 de haut niveau 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 se parsent. Utilisez le schéma d'entraînement packagé pour automl_default_parameters, automl_disabled_parameters, défauts, bornes min/max, énumérations, poids d'option, conditions mathématiques, dépendances et paramètres populaires. Ne vous attendez pas à ~/tao-core à l'exécution ; les responsables régénèrent les schémas/templates avant de packager la banque de skills.

Politique Train Action

Ce modèle est activé AutoML au niveau du modèle. Avant de traiter toute demande d'entraînement, lisez references/skill_info.yaml et résolvez la substitution d'exécution à partir d'une valeur automl_policy explicite ou d'une demande de workflow 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 par défaut à auto. Quand automl_policy: auto, automl_enabled: true et schemas/train.schema.json et references/spec_template_train.yaml sont packagés, acheminez l'action train via tao-skill-bank:tao-run-automl par défaut avec skill_dir de ce modèle. Préservez les substitutions de workflow/application pour les datasets, specs, répertoires de sortie, paramètres GPU/plateforme, checkpoints parents et automl_policy. Utilisez l'entraînement direct du modèle uniquement quand automl_policy: off ou que le schéma/template d'entraînement packageé manque ; 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-train comme evaluate, inference, export et les flux de déploiement restent dans cette skill 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 : nvpanoptix3d
  • Formats : front3d, matterport
  • Métrique de suivi : kpi

Exigences de Dataset par Action

Action Clé Spec Source Fichiers Liste ?
evaluate dataset.frustum_mask_path eval_dataset meta/frustum_mask.npz Non
evaluate dataset.label_map eval_dataset meta/colormap.json Non
evaluate dataset.val.json_path eval_dataset meta/val.json Non
evaluate dataset.val.base_dir eval_dataset Non
evaluate dataset.test.json_path inference_dataset meta/test.json Non
evaluate dataset.test.base_dir inference_dataset Non
inference dataset.frustum_mask_path inference_dataset meta/frustum_mask.npz Non
inference dataset.label_map inference_dataset meta/colormap.json Non
inference inference.images_dir inference_dataset images.tar.gz Non
train dataset.frustum_mask_path train_datasets meta/frustum_mask.npz Non
train dataset.label_map train_datasets meta/colormap.json Non
train dataset.train.json_path train_datasets meta/train.json Non
train dataset.train.base_dir train_datasets Non
train dataset.val.json_path eval_dataset meta/val.json Non
train dataset.val.base_dir eval_dataset Non
train dataset.test.json_path inference_dataset meta/test.json Non
train dataset.test.base_dir inference_dataset 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 d'exigences de Dataset 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_epochs": 10,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "dataset.enable_3d": True,
    "model.sem_seg_head.num_classes": 13,
    "dataset.frustum_mask_path": f"{S3_TRAIN}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_TRAIN}/meta/colormap.json",
    "dataset.train.json_path": f"{S3_TRAIN}/meta/train.json",
    "dataset.train.base_dir": f"{S3_TRAIN}",
    "dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
    "dataset.val.base_dir": f"{S3_EVAL}",
    "dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
    "dataset.test.base_dir": f"{S3_EVAL}",
}

evaluate (sources de données obligatoires) :

{
    "dataset.enable_3d": True,
    "dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
    "dataset.val.json_path": f"{S3_EVAL}/meta/val.json",
    "dataset.val.base_dir": f"{S3_EVAL}",
    "dataset.test.json_path": f"{S3_EVAL}/meta/test.json",
    "dataset.test.base_dir": f"{S3_EVAL}",
}

inference (sources de données obligatoires) :

{
    "dataset.enable_3d": True,
    "dataset.frustum_mask_path": f"{S3_EVAL}/meta/frustum_mask.npz",
    "dataset.label_map": f"{S3_EVAL}/meta/colormap.json",
    "inference.images_dir": f"{S3_EVAL}/images.tar.gz",
}

Dataset Eval

Optionnel. Splits val/test configurés via chemins dataset.val et dataset.test.

Paramètres importants

  • model.sem_seg_head.num_classes: Nombre de classes sémantiques. Défaut 13.
  • model.mode: Mode de prédiction. Options : panoptic, instance, semantic. Défaut panoptic.
  • model.backbone_type: Backbone. Défaut vggt (seule option dans le schéma).
  • model.mask_former.num_object_queries: Requêtes d'objets. Défaut 100.
  • model.mask_former.dec_layers: Couches du décodeur. Défaut 10.
  • model.frustum3d.truncation: Troncature frustum 3D. Défaut 3.
  • model.frustum3d.panoptic_weight: Poids de perte panoptique. Défaut 25.
  • model.frustum3d.completion_weights: Poids de perte de complétion. Défaut [50, 25, 10].
  • dataset.name: Nom du dataset. Options : front3d, matterport, synthetic_hospital, synthetic_warehouse.
  • dataset.downsample_factor: Facteur de sous-échantillonnage d'image. Défaut 1 (Front3D), 2 (Matterport).
  • dataset.target_size: Taille d'image cible. Défaut [320, 240].
  • dataset.depth_min: Profondeur min. Défaut 0,4 mètres.
  • dataset.depth_max: Profondeur max. Défaut 6,0 mètres.
  • train.lr: Taux d'apprentissage. Défaut 2e-4. backbone_multiplier=0.1.
  • train.lr_scheduler: Options : MultiStep, Warmuppoly. Milestones [88, 96].
  • train.precision: Options : fp16, fp32. Défaut fp16.
  • train.distributed_strategy: Options : ddp, fsdp. activation_checkpoint=True par défaut.
  • train.clip_grad_norm: Norme de clipping du gradient. Défaut 0,1.
  • export.onnx_file_2d: Chemin ONNX pour le composant modèle 2D.
  • export.onnx_file_3d: Chemin ONNX pour le composant modèle 3D.
  • export.max_voxels: Voxels max pour l'entrée du moteur. Défaut 700000.
  • inference.mode: Options : semantic, instance, panoptic.

Multi-GPU / Multi-Node

Méthode de lancement : Gérée par Lightning (processus python unique, Lightning génère les workers).

Clé Spec Description 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
train.distributed_strategy ddp uniquement ddp
  • fsdp n'est PAS supporté pour NVPanoptix3D (le code ne gère que ddp)
  • ddp avec activation checkpointing (activé par défaut) : find_unused_parameters=False
  • ddp sans : find_unused_parameters=True
  • Backbones FAN avec 3D activé activent automatiquement sync_batchnorm

Variables d'env multi-node (définies par l'orchestrateur) : WORLD_SIZE, NODE_RANK, MASTER_ADDR, MASTER_PORT, NUM_GPU_PER_NODE.

Valeurs par défaut Export / TRT

  • Exporte les modèles ONNX 2D et 3D séparés (onnx_file_2d, onnx_file_3d)
  • Types de données TRT : FP32, FP16 uniquement
  • max_voxels : 700000 (limite du tenseur d'entrée du moteur)

Matériel

Minimum 2 GPU(s), recommandé 4 GPU(s). 40 Go+ (A100 recommandé) de VRAM par GPU. La reconstruction 3D consomme beaucoup de mémoire. fp16 recommandé. activation_checkpoint activé par défaut. FSDP pour multi-node. AutoML est activé au niveau du modèle ; préservez cette recommandation GPU/VRAM lors du routage de train via AutoML.

Motifs d'erreur

Masque frustum manquant : Assurez-vous que meta/frustum_mask.npz est présent dans le répertoire du dataset.

Inadéquation du facteur de sous-échantillonnage : Utilisez downsample_factor=2 pour Matterport3D, 1 pour Front3D / datasets synthétiques.

OOM occupancy 3D : Réduisez frustum_dims ou grid_dimensions si vous manquez de mémoire GPU lors de la reconstruction 3D.

Spec Param / Inférence 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 SDK avant create_job(). Cela reflète l'ancien flux microservices infer_params.py.

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

Action Champ Spec Fonction d'inférence Signification
evaluate encryption_key key clé de chiffrement
evaluate evaluate.checkpoint parent_model fichier modèle déduit du dossier de résultats du job parent
evaluate results_dir output_dir répertoire de résultats du job courant
export encryption_key key clé de chiffrement
export export.checkpoint parent_model fichier modèle déduit du dossier de résultats du job parent
export export.onnx_file_2d create_onnx_file_2d create_onnx_file_2d
export export.onnx_file_3d create_onnx_file_3d create_onnx_file_3d
export results_dir output_dir répertoire de résultats du job courant
inference encryption_key key clé de chiffrement
inference inference.checkpoint parent_model fichier modèle déduit du dossier de résultats du job parent
inference results_dir output_dir répertoire de résultats du job courant
train encryption_key key clé de chiffrement
train results_dir output_dir répertoire de résultats du job courant
train train.checkpoint_2d parent_model_or_ptm modèle parent s'il est disponible, sinon PTM
train train.checkpoint_3d ptm modèle pré-entraîné
train train.resume_training_checkpoint_path resume_model fichier modèle déduit du dossier de résultats du job courant

Pour parent_model ou parent_model_folder, passez l'id du job enfant train/export/AutoML amont en tant que parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artifacts de checkpoint et retourne le fichier ou dossier modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne patchquez pas les scripts runner générés pour deviner les chemins de checkpoint.

Skills similaires