DINO
DINO (DETR with Improved DeNoising Anchor Boxes) pour la détection d'objets 2D. Détecteur basé sur Transformer avec entraînement de débruitage, caractéristiques multi-échelles et support optionnel de la distillation.
Utilise des poids de backbone pré-entraînés (ex. ResNet-50 ImageNet). Définissez model.pretrained_backbone_path pour le backbone seul ou train.pretrained_model_path pour le modèle complet.
Pour les actions TAO Deploy TensorRT (gen_trt_engine, évaluation TensorRT et inference TensorRT), consultez d'abord references/tao-deploy-dino.md. Les modèles de spec de déploiement se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.
Les schémas TAO Core générés sont packagés dans schemas/<action>.schema.json (avec schemas/manifest.json listant les actions) ; chaque schéma émet un fichier references/spec_template_<action>.yaml correspondant. Consultez references/sdk_orchestration.md pour tous les détails sur la dataclass-schema, le spec-template, les data-sources et l'inférence du parent-model utilisés par l'orchestration SDK.
Politique d'action d'entraînement
Ce modèle est activé par AutoML au niveau du modèle. Avant de traiter toute demande d'étape d'entraînement, lisez references/skill_info.yaml et résolvez l'override d'exécution à partir soit d'une valeur automl_policy explicite, soit de la demande de workflow de l'utilisateur. Traitez les expressions comme « désactiver AutoML », « désactiver AutoML », « pas HPO » ou « entraînement simple » comme automl_policy: off pour cette exécution uniquement ; sinon, 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, routez 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 overrides 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 si le schéma/template d'entraînement packagé est manquant ; dans le cas du schéma manquant, signalez qu'AutoML est activé mais pas 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 skill de modèle. L'override automl_policy par exécution ne change pas les métadonnées du modèle.
Exigences d'entraînement
L'agent DOIT lire cette section avant de générer tout script d'entraînement ou AutoML pour DINO.
- Type de dataset : object_detection
- Formats : coco, coco_raw
- Intents de dataset acceptés : training, evaluation, testing, calibration
- Métrique de surveillance : val_mAP50
Datasets requis — DOIT résoudre les deux :
| Dataset | Requis | Pourquoi |
|---|---|---|
| URI du dataset d'entraînement | Oui | Données d'entraînement (format COCO) |
| URI du dataset de validation | Oui — TOUJOURS | DINO construit inconditionnellement un val dataloader. Omettre val_data_sources provoque une FileNotFoundError au démarrage quel que soit la métrique ou le workflow. Si l'utilisateur n'a pas de split d'évaluation séparé, réutilisez l'URI d'entraînement. |
Entrées requises avant de générer toute spec d'entraînement :
- URI du dataset d'entraînement — Chemin S3 vers les données d'entraînement au format COCO
- URI du dataset de validation — Chemin S3 vers les données val au format COCO (peut être identique à l'entraînement)
num_classes— Combien de classes d'objets ? Défaut 91 (COCO). Doit être >=max(category_id) + 1. Une valeur trop basse provoque uneCUDA error: device-side assert triggered.
Résolvez ces valeurs à partir de la demande de l'utilisateur ou du profil par défaut ci-dessous. Posez des questions uniquement pour les valeurs qui manquent toujours après application des règles du profil.
Profil local par défaut bancable pour les exécutions smoke DINO AutoML :
Utilisez ce profil uniquement quand l'utilisateur demande d'exécuter DINO AutoML et ne fournit pas les entrées dataset ou nombre de classes. Ce profil est intentionnellement petit et local à cette skill bank ; il est pour les exécutions smoke/itération, pas un benchmark de production. Ne recherchez pas les exécutions précédentes, logs, état de session, historique shell ou le répertoire home pour récupérer ces valeurs.
DINO_AUTOML_PROFILE = {
"train_dataset_uri": "s3://nvcf-storage-handling/data/tao_od_synthetic_subset_train_no_convert",
"validation_dataset_uri": "s3://nvcf-storage-handling/data/tao_od_synthetic_subset_val_no_convert",
"object_classes": 4,
"dataset_num_classes": 5,
"image_archive": "images.tar.gz",
"annotation_file": "annotations.json",
"max_recommendations": 10,
"train_num_epochs": 10,
"train_checkpoint_interval": 10,
"train_validation_interval": 1,
"train_num_gpus": 1,
}
Si l'utilisateur fournit un URI de dataset ou une valeur de nombre de classes, préférez la valeur utilisateur et demandez toute valeur DINO requise restante. Ne mélangez pas partiellement un dataset personnalisé de l'utilisateur avec le nombre de classes de ce profil à moins que l'utilisateur ne le confirme.
Ne posez pas de question sur la disposition des images pour le dataset DINO standard. L'artefact de dataset TAO DINO standard est images.tar.gz plus annotations.json. Utilisez images.tar.gz dans l'override de spec image_dir distant. Le SDK télécharge l'archive et réécrit le spec d'exécution au dossier extrait nommé d'après le nom de l'archive (images.tar.gz -> images). Ne déviez que si l'utilisateur fournit explicitement un nom d'artefact d'image différent.
Spec Overrides, Datasets et Paramètres
Les overrides de data source sont obligatoires pour chaque action — le config.json de DINO a des data_sources vides car le runner ne peut pas auto-résoudre les clés de spec array-of-objects. L'agent DOIT construire les chemins de data source et les inclure dans spec_overrides.
Consultez references/spec_overrides.md pour : la table des exigences de dataset par action ; les blocs spec_overrides obligatoires pour train, evaluate, export, gen_trt_engine, inference, quantize et distill ; la résolution de checkpoint via l'inférence parent_model et le fallback results_dir/train/dino_model_latest.pth ; les règles du format de dataset COCO et archive-stem images.tar.gz ; les dispositions de data-source par action ; la liste complète des Paramètres Importants (num_classes, backbone et ses valeurs supportées, lr/lr_backbone, num_epochs, lr_steps, num_queries, batch_size) ; Valeurs Par Défaut (num_epochs 10, batch_size 4, learning_rate 2e-4, lr_backbone 2e-5, num_classes 91, backbone resnet_50) ; Valeurs Par Défaut d'Évaluation ; Valeurs Par Défaut d'Export (input 640x640, opset 17, trt_data_types [FP32, FP16, INT8], trt_workspace_size_mb 1024) ; et les conseils Matériel (1 GPU minimum, 4 recommandés, 24 GB+ A100). Référence complète TAO Deploy : tao-deploy-dino.
Lors de la génération d'une spec evaluate, reportez les paramètres structurels du modèle gagnant de la recommandation AutoML (model.backbone, model.num_queries, model.dropout_ratio, dataset.num_classes) pour que la forme du checkpoint corresponde au modèle d'évaluation.
Modèles d'erreur
Les défaillances courantes incluent CUDA OOM, num_select < num_queries * num_classes, erreurs de fusion spec/schema, dataset-plus-petit-que-batch, désaccord return_interm_indices vs num_feature_levels, FileNotFoundError sur les images ou données val manquantes, CUDA device-side assert causée par un num_classes bas, entrées S3 non téléchargées et checkpoint d'évaluation non trouvé à la racine des résultats. Consultez references/troubleshooting.md pour chaque modèle d'erreur et sa correction.
Notes AutoML / HPO
AutoML exécute l'entraînement — toutes les Exigences d'entraînement ci-dessus s'appliquent, et le cas sans entrée utilise DINO_AUTOML_PROFILE. N'inspectez pas les exécutions AutoML précédentes pour déduire les URIs de dataset, num_classes, le nombre de recommandations ou les paramètres d'intervalle. Utilisez metric="mAP50" explicite avec direction="maximize" et un metric_extractor personnalisé lisant Validation mAP50 plutôt que metric="kpi". Consultez references/automl.md pour le metric_extractor recommandé, la liste des hyperparamètres, custom_param_ranges, la note sur train.optim.weight_decay et les conseils de contrainte de backbone.
Optionnel : exécution via le TAO SDK
L'orchestration script_runner du SDK, l'enrobage S3 I/O, les internals AutoML, la génération spec-template, le gap data-sources, les déclarations inputs de config.json et la table complète de mappage des paramètres spec par action / inférence parent-model sont documentés dans references/sdk_orchestration.md. Ignorez ceci lors de l'exécution locale avec docker run.