tao-train-ocdnet

Par nvidia · skills

OCDNet pour la détection de texte en scène. Détecte les régions de texte à orientation arbitraire dans des images naturelles à l'aide d'un

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

OCDNet

OCDNet pour la détection de texte en scène. Détecte les régions de texte orientées arbitrairement dans les images naturelles en utilisant une approche de binarisation différentiable.

Définis train.pretrained_model_path pour les poids pré-entraînés.

Pour les actions TAO Deploy TensorRT (gen_trt_engine, évaluation TensorRT et inference TensorRT), consulte d'abord references/tao-deploy-ocdnet.md. Les modèles de spécification de déploiement se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.

Schémas de classe de données

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 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. L'AutoML exécutable nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et soient parsables. Utilise le schéma train fourni pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids d'options, les conditions mathématiques, les dépendances et les paramètres populaires. N'attends pas ~/tao-core à l'exécution ; les mainteneurs régénèrent les schémas/modèles avant de packager la skill bank.

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, lis references/skill_info.yaml et résous le remplacement d'exécution soit à partir d'une valeur automl_policy explicite, soit à partir de la demande de workflow de l'utilisateur. Traite les phrases comme « turn off AutoML », « disable AutoML », « no HPO » ou « plain training » comme automl_policy: off pour cette exécution uniquement ; sinon utilise par défaut auto. Quand automl_policy: auto, automl_enabled: true, et que schemas/train.schema.json et references/spec_template_train.yaml sont packagés, route l'action d'entraînement via tao-skill-bank:tao-run-automl par défaut avec le skill_dir de ce modèle. Préserve les remplacements de workflow/application pour les datasets, les specs, les répertoires de sortie, les paramètres GPU/platform, les points de contrôle parents et automl_policy. Utilise l'entraînement direct du modèle uniquement quand automl_policy: off ou quand le schéma train/modèle packageé est manquant ; dans le cas du schéma manquant, signale 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 du modèle. Le remplacement automl_policy par exécution ne change pas les métadonnées du modèle.

Exigences d'entraînement

  • Type de dataset : ocdnet
  • Formats : default
  • Métrique de monitoring : hmean

Exigences de dataset par action

Action Clé de spec Source Fichiers Liste ?
evaluate dataset.validate_dataset.data_path eval_dataset test.tar.gz Oui
gen_trt_engine gen_trt_engine.tensorrt.calibration.cal_image_dir calibration_dataset train/img.tar.gz Oui
inference inference.input_folder eval_dataset test/img.tar.gz Non
prune dataset.validate_dataset.data_path eval_dataset test.tar.gz Oui
quantize dataset.train_dataset.data_path train_datasets train.tar.gz Oui
quantize dataset.validate_dataset.data_path eval_dataset test.tar.gz Oui
quantize dataset.quant_calibration_dataset.images_dir train_datasets train/img.tar.gz Non
retrain dataset.train_dataset.data_path train_datasets train.tar.gz Oui
retrain dataset.validate_dataset.data_path eval_dataset test.tar.gz Oui
train dataset.train_dataset.data_path train_datasets train.tar.gz Oui
train dataset.validate_dataset.data_path eval_dataset test.tar.gz Oui

Remplacements de spec typiques

Les remplacements de sources de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de sources 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_epochs": 30,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "dataset.train_dataset.loader.batch_size": 16,
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

gen_trt_engine (sources de données obligatoires) :

{
    "gen_trt_engine.tensorrt.data_type": "INT8",
    "gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/train/img.tar.gz"],
}

evaluate (sources de données obligatoires) :

{
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

inference (sources de données obligatoires) :

{
    "inference.input_folder": f"{S3_EVAL}/test/img.tar.gz",
}

prune (sources de données obligatoires) :

{
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

quantize (sources de données obligatoires) :

{
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
    "dataset.quant_calibration_dataset.images_dir": f"{S3_TRAIN}/train/img.tar.gz",
}

retrain (sources de données obligatoires) :

{
    "dataset.train_dataset.data_path": [f"{S3_TRAIN}/train.tar.gz"],
    "dataset.validate_dataset.data_path": [f"{S3_EVAL}/test.tar.gz"],
}

Dataset d'évaluation

Optionnel. Dataset de test fourni comme tarball séparé.

Paramètres importants

  • model.backbone : Par défaut deformable_resnet18. Les convolutions déformables améliorent la détection de régions de texte pour le texte irrégulier.
  • train.optimizer.args.lr : Taux d'apprentissage. Par défaut 0,001 (Adam).
  • postprocess.thresh : Seuil de binarisation pour l'extraction de régions de texte.
  • postprocess.box_thresh : Seuil de confiance de la boîte pour filtrer les détections.

Multi-GPU / Multi-nœud

Méthode de lancement : Gérée par Lightning (processus Python unique, Lightning crée les workers).

Clé de spec Description Par défaut
train.num_gpus Nombre de GPUs 1
train.gpu_ids Indices de périphériques GPU [0]
train.distributed_strategy ddp, fsdp, ou deepspeed_stage_3_offload ddp
  • ddp avec activation checkpointing : find_unused_parameters=False
  • ddp sans : find_unused_parameters=True
  • fsdp force FP16
  • deepspeed_stage_3_offload est uniquement supporté pour OCDNet (force FP16)
  • Les backbones FAN activent automatiquement sync_batchnorm

Matériel

Minimum 1 GPU, recommandé 1 GPU. 8 GB+ VRAM par GPU. OCDNet est léger. Un single GPU suffit pour la plupart des datasets.

Modèles d'erreur

Faible taux de détection : Ajuste postprocess.thresh et box_thresh. Les seuils par défaut peuvent être trop agressifs pour certains datasets.

Spécification de 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 SDK avant create_job(). Cela reflète le flux infer_params.py des anciens microservices.

Mappages d'inférence à partir de ocdnet.config.json de TAO Core :

Action Champ de spec Fonction d'inférence Signification
evaluate evaluate.checkpoint parent_model fichier modèle déduit du dossier des résultats du job parent
evaluate evaluate.trt_engine parent_model fichier modèle déduit du dossier des résultats du job parent
evaluate model.pruned_graph_path pruned_model modèle parent élagué
evaluate results_dir output_dir répertoire des résultats du job actuel
export export.checkpoint parent_model fichier modèle déduit du dossier des résultats du job parent
export export.onnx_file create_onnx_file chemin ONNX de sortie
export results_dir output_dir répertoire des résultats du job actuel
gen_trt_engine gen_trt_engine.onnx_file parent_model fichier modèle déduit du dossier des résultats du job parent
gen_trt_engine gen_trt_engine.tensorrt.calibration.cal_cache_file create_cal_cache chemin du cache de calibrage
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 des résultats du job actuel
inference inference.checkpoint parent_model fichier modèle déduit du dossier des résultats du job parent
inference inference.trt_engine parent_model fichier modèle déduit du dossier des résultats du job parent
inference model.pruned_graph_path pruned_model modèle parent élagué
inference results_dir output_dir répertoire des résultats du job actuel
prune prune.checkpoint parent_model fichier modèle déduit du dossier des résultats du job parent
prune results_dir output_dir répertoire des résultats du job actuel
quantize quantize.model_path parent_model fichier modèle déduit du dossier des résultats du job parent
quantize results_dir output_dir répertoire des résultats du job actuel
retrain model.pruned_graph_path parent_model modèle parent élagué
retrain results_dir output_dir répertoire des résultats du job actuel
train model.pretrained_model_path ptm_if_no_resume_model PTM quand aucun checkpoint de reprise n'existe
train results_dir output_dir répertoire des résultats du job actuel
train train.resume_training_checkpoint_path resume_model fichier modèle déduit du dossier des résultats du job actuel

Pour parent_model ou parent_model_folder, passe l'ID du job enfant train/export/AutoML amont comme parent_job_id. Le SDK liste le dossier des résultats du parent, filtre les artefacts de checkpoint et retourne le fichier ou dossier du modèle sélectionné. N'ajoute pas ces mappages à config.json et ne modifie pas les scripts de runners générés pour deviner les chemins de checkpoints.

Déploiement

  • tao-deploy-ocdnet — Flux de déploiement OCDNet pour la génération de moteur TensorRT, l'évaluation TensorRT et l'inference TensorRT en utilisant TAO Deploy.

Skills similaires