tao-train-optical-inspection

Par nvidia · skills

Inspection optique pour la détection de défauts par réseaux siamois. Compare des paires d'images pour détecter les anomalies de fabrication

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

Inspection optique

Inspection optique pour la détection de défauts à l'aide de réseaux Siamois. Compare des paires d'images pour détecter les défauts de fabrication, les anomalies ou les problèmes de qualité.

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

Pour les actions TAO Deploy TensorRT (gen_trt_engine, TensorRT evaluate et TensorRT inference), consultez d'abord references/tao-deploy-optical-inspection.md. Les modèles de spec Deploy se trouvent dans le dossier references/ de cette skill avec le préfixe spec_template_deploy_*.yaml.

Schémas de classes de données

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 de haut 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'exécution d'AutoML nécessite toujours que schemas/train.schema.json et references/spec_template_train.yaml existent et se parsent. Utilisez le schéma train empaqueté pour automl_default_parameters, automl_disabled_parameters, les valeurs par défaut, les limites min/max, les énumérations, les poids des options, 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 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 à l'étape d'entraînement, lisez references/skill_info.yaml et résolvez le remplacement d'exécution à partir d'une valeur automl_policy explicite ou de la demande de workflow de l'utilisateur. Traitez les phrases 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 que schemas/train.schema.json et references/spec_template_train.yaml sont empaqueté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 remplacements de workflow/application pour les datasets, specs, répertoires de sortie, paramètres GPU/platform, checkpoints parents et automl_policy. Utilisez l'entraînement direct du modèle uniquement quand automl_policy: off ou que le schéma/modèle train 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 autres que l'entraînement comme evaluate, inference, export et les flux de déploiement restent dans cette skill de modèle. Le remplacement automl_policy par exécution ne change pas les métadonnées du modèle.

Conditions d'entraînement

  • Type de dataset : optical_inspection
  • Formats : default
  • Métrique de suivi : val_acc

Conditions de dataset par action

Action Clé Spec Source Fichiers Liste ?
evaluate dataset.test_dataset.images_dir eval_dataset images.tar.gz Non
evaluate dataset.test_dataset.csv_path eval_dataset dataset.csv Non
gen_trt_engine gen_trt_engine.tensorrt.calibration.cal_image_dir calibration_dataset images.tar.gz Oui
inference dataset.infer_dataset.images_dir inference_dataset images.tar.gz Non
inference dataset.infer_dataset.csv_path inference_dataset dataset.csv Non
train dataset.train_dataset.images_dir train_datasets images.tar.gz Non
train dataset.train_dataset.csv_path train_datasets dataset.csv Non
train dataset.validation_dataset.images_dir eval_dataset images.tar.gz Non
train dataset.validation_dataset.csv_path eval_dataset dataset.csv Non
train dataset.test_dataset.images_dir eval_dataset images.tar.gz Non
train dataset.test_dataset.csv_path eval_dataset dataset.csv Non

Remplacements typiques de spec

Les remplacements de source de données sont obligatoires pour chaque action — l'agent DOIT construire les chemins de source de données à partir du tableau Conditions 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": 30,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "dataset.train_dataset.images_dir": f"{S3_TRAIN}/images.tar.gz",
    "dataset.train_dataset.csv_path": f"{S3_TRAIN}/dataset.csv",
    "dataset.validation_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
    "dataset.validation_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
    "dataset.test_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
    "dataset.test_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}

gen_trt_engine (sources de données obligatoires) :

{
    "gen_trt_engine.tensorrt.data_type": "fp16",
    "gen_trt_engine.tensorrt.calibration.cal_image_dir": [f"{S3_TRAIN}/images.tar.gz"],
}

evaluate (sources de données obligatoires) :

{
    "dataset.test_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
    "dataset.test_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}

inference (sources de données obligatoires) :

{
    "dataset.infer_dataset.images_dir": f"{S3_EVAL}/images.tar.gz",
    "dataset.infer_dataset.csv_path": f"{S3_EVAL}/dataset.csv",
}

Dataset d'évaluation

Optionnel. Le dataset d'évaluation utilise le même format (images + CSV).

Paramètres importants

  • model.model_type : variant Siamois. Les options incluent Siamese, Siamese_3.
  • model.model_backbone : custom par défaut.
  • model.embedding_vectors : nombre de dimensions d'embedding. Par défaut 5.
  • train.optim.lr : taux d'apprentissage. Par défaut 5e-4.
  • dataset.num_input : nombre d'images d'entrée par comparaison.
  • dataset.input_map : mappage des canaux d'entrée / paires d'images.

Multi-GPU / Multi-nœud

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

Clé Spec Description Par défaut
train.num_gpus Nombre de GPUs 1
train.gpu_ids Indices d'appareil GPU [0]
  • Stratégie : auto (Lightning choisit la meilleure stratégie automatiquement)
  • Pas de config num_nodes ou distributed_strategy explicite — mono-nœud uniquement
  • Réseau Siamois léger, une seule GPU généralement suffisante

Matériel

Minimum 1 GPU, recommandé 1 GPU. 8 GB+ VRAM par GPU. Les réseaux Siamois pour l'inspection sont légers. Une seule GPU suffit.

Motifs d'erreur

Erreur de format CSV : assurez-vous que dataset.csv a le format de colonne correct pour les chemins de paires d'images et les labels.

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 assistants SDK avant create_job(). Cela reflète l'ancien flux infer_params.py des microservices.

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

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 create_onnx_file chemin de sortie ONNX
export results_dir output_dir répertoire de résultats du job courant
gen_trt_engine encryption_key key clé de chiffrement
gen_trt_engine gen_trt_engine.onnx_file parent_model fichier modèle déduit du dossier de résultats du job parent
gen_trt_engine gen_trt_engine.tensorrt.calibration.cal_cache_file create_cal_cache chemin de cache d'étalonnage
gen_trt_engine gen_trt_engine.trt_engine create_engine_file chemin de sortie du moteur TensorRT
gen_trt_engine 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 inference.trt_engine 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.pretrained_model_path ptm_if_no_resume_model PTM quand aucun checkpoint de reprise n'existe
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 d'entraînement/export/AutoML en amont comme parent_job_id. Le SDK liste le dossier de résultats parent, filtre les artefacts checkpoint et retourne le fichier ou dossier de modèle sélectionné. N'ajoutez pas ces mappages à config.json et ne patchchez pas les scripts runner générés pour deviner les chemins de checkpoint.

Déploiement

  • tao-deploy-optical-inspection — flux de déploiement Inspection optique pour la génération de moteur TensorRT, l'évaluation TensorRT et l'inférence TensorRT utilisant TAO Deploy.

Skills similaires