mcpField
T
tao-train-optical-inspection

tao-train-optical-inspection

github.com/promptingcompanyデータ・データベース039 回インストール17 週間前に更新
リポジトリ

tao-train-optical-inspection について

Siamese ネットワークで画像ペアを比較し、製造上の欠陥を検出する TAO スキルです。モデルのトレーニング、評価、推論、エクスポート、TensorRT デプロイに対応します。

主な機能

  1. 01Siamese による画像ペア比較
  2. 02欠陥・異常の検出
  3. 03CSV によるデータセット入力
  4. 04AutoML トレーニング
  5. 05TensorRT デプロイ操作

活用シーン

  1. 01画像比較による製造欠陥の検出
  2. 02検査画像の異常検知
  3. 03画像ペアとラベルを使った学習
  4. 04TensorRT 推論の実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/promptingcompany/nv-skills --skill tao-train-optical-inspection

インストール後、Claude Code で/tao-train-optical-inspectionを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
skill_info.yaml
spec_template_deploy_experiment.yaml
spec_template_evaluate.yaml
spec_template_export.yaml
spec_template_gen_trt_engine.yaml
spec_template_inference.yaml
spec_template_train.yaml
tao-deploy-optical-inspection.md
tao-deploy-optical-inspection.skill_info.yaml
schemas/
evaluate.schema.json
export.schema.json
gen_trt_engine.schema.json
inference.schema.json
manifest.json
train.schema.json

詳細

光学検査

シャムネットワークを使用した、欠陥検出のための光学検査です。画像ペアを比較して、製造上の欠陥、異常、品質上の問題を検出します。

事前学習済みのシャムネットワークの重みに、train.pretrained_model_path を設定してください。

TAO Deploy の TensorRT アクション(gen_trt_engine、TensorRT の evaluate、および TensorRT の inference)については、まず references/tao-deploy-optical-inspection.md をお読みください。Deploy の仕様テンプレートは、このスキルの references/ フォルダーにあり、接頭辞は spec_template_deploy_*.yaml です。

データクラススキーマ

生成された TAO Core スキーマは schemas/<action>.schema.json にパッケージ化されており、利用可能なアクションは schemas/manifest.json に記載されています。生成された各スキーマから、スキーマ最上位の default フィールドを使って references/spec_template_<action>.yaml も生成されます。AutoML の有効化は、references/skill_info.yaml のモデルレイヤーで automl_enabled を使って宣言されています。AutoML を実行するには、schemas/train.schema.json と references/spec_template_train.yaml が存在し、解析可能である必要があります。automl_default_parameters、automl_disabled_parameters、デフォルト値、最小値/最大値の範囲、列挙値、オプションの重み、数式条件、依存関係、および一般的なパラメーターには、パッケージ化された train スキーマを使用してください。実行時に ~/tao-core が存在することを前提にしないでください。メンテナーは、スキルバンクをパッケージ化する前にスキーマとテンプレートを再生成してください。

Train アクションのポリシー

このモデルでは、モデルレイヤーで AutoML が有効になっています。train ステージのリクエストを処理する前に、references/skill_info.yaml を読み込み、明示的な automl_policy 値、またはユーザーのワークフローリクエストから実行時のオーバーライドを判定してください。「AutoML をオフにして」「AutoML を無効にして」「HPO なしで」「通常のトレーニング」といった表現は、この実行に限り automl_policy: off として扱ってください。それ以外の場合は、デフォルトで auto にしてください。automl_policy: auto、automl_enabled: true、schemas/train.schema.json と references/spec_template_train.yaml の両方がパッケージ化されている場合は、デフォルトで、このモデルの skill_dir を指定して train アクションを tao-skill-bank:tao-run-automl 経由で実行してください。データセット、仕様、出力ディレクトリ、GPU/プラットフォーム設定、親チェックポイント、および automl_policy に対するワークフロー/アプリケーションのオーバーライドは維持してください。直接モデルをトレーニングするのは、automl_policy: off の場合、またはパッケージ化された train スキーマ/テンプレートがない場合に限ってください。スキーマがない場合は、AutoML は有効ですが、このモデルではスキーマが生成されるまで実行できないことを報告してください。

evaluate、inference、export、Deploy フローなどの train 以外のアクションは、このモデルスキル内で引き続き実行してください。実行ごとの automl_policy オーバーライドによって、モデルのメタデータが変更されることはありません。

トレーニング要件

  • データセットの種類: optical_inspection
  • 形式: デフォルト
  • モニタリング指標: val_acc
アクションごとのデータセット要件
アクション仕様キーソースファイルリスト?
evaluatedataset.test_dataset.images_direval_datasetimages.tar.gzいいえ
evaluatedataset.test_dataset.csv_patheval_datasetdataset.csvいいえ
gen_trt_enginegen_trt_engine.tensorrt.calibration.cal_image_dircalibration_datasetimages.tar.gzはい
inferencedataset.infer_dataset.images_dirinference_datasetimages.tar.gzいいえ
inferencedataset.infer_dataset.csv_pathinference_datasetdataset.csvいいえ
traindataset.train_dataset.images_dirtrain_datasetsimages.tar.gzいいえ
traindataset.train_dataset.csv_pathtrain_datasetsdataset.csvいいえ
traindataset.validation_dataset.images_direval_datasetimages.tar.gzいいえ
traindataset.validation_dataset.csv_patheval_datasetdataset.csvいいえ
traindataset.test_dataset.images_direval_datasetimages.tar.gzいいえ
traindataset.test_dataset.csv_patheval_datasetdataset.csvいいえ
典型的な Spec Overrides

データソースのオーバーライドはすべてのアクションで必須です。エージェントは、上記の「アクションごとのデータセット要件」テーブルに基づいてデータソースパスを構築し、spec_overrides に含める必要があります。

S3_TRAIN = "s3://bucket/data/train"
S3_EVAL = "s3://bucket/data/eval"

train(必須データソース):

{
    "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(必須データソース):

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

evaluate(必須データソース):

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

inference(必須データソース):

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

評価データセット

任意です。評価データセットも同じ形式(画像 + CSV)を使用します。

重要なパラメーター

  • model.model_type:Siamese のバリアントです。Siamese、Siamese_3 などがあります。
  • model.model_backbone:デフォルトは custom です。
  • model.embedding_vectors:埋め込み次元数です。デフォルトは 5 です。
  • train.optim.lr:学習率です。デフォルトは 5e-4 です。
  • dataset.num_input:比較ごとの入力画像数です。
  • dataset.input_map:入力チャネル/画像ペアのマッピングです。

マルチ GPU/マルチノード

起動方法: Lightning による管理(単一の python プロセスで Lightning がワーカーを起動します)。

Spec Key説明デフォルト
train.num_gpusGPU 数1
train.gpu_idsGPU デバイスのインデックス[0]
  • ストラテジー:auto(Lightning が最適なストラテジーを自動的に選択します)
  • 明示的な num_nodes または distributed_strategy の設定はありません。シングルノードのみです。
  • Siamese ネットワークは軽量なため、通常は単一の GPU で十分です。

ハードウェア

最低 1 GPU、推奨 1 GPU です。GPU あたり 8GB 以上の VRAM が必要です。検査用の Siamese ネットワークは軽量です。単一の GPU で十分です。

エラーパターン

CSV 形式エラー: dataset.csv で画像ペアのパスとラベルに正しい列形式が使用されていることを確認してください。

Spec Param / 親モデルの推論

モデル固有の推論マッピングは、config.json ではなくこの MD ファイルに記述します。生成されたランナーはこのセクションを読み込み、create_job() の前に SDK ヘルパーを使用してマッピングを適用します。これは、以前のマイクロサービスにおける infer_params.py のフローを踏襲しています。

TAO Core の optical_inspection.config.json からの推論マッピング:

ActionSpec FieldInference FunctionMeaning
evaluateencryption_keykey暗号化キー
evaluateevaluate.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
evaluateresults_diroutput_dir現在のジョブの結果ディレクトリ
exportencryption_keykey暗号化キー
exportexport.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
exportexport.onnx_filecreate_onnx_file出力 ONNX パス
exportresults_diroutput_dir現在のジョブの結果ディレクトリ
gen_trt_engineencryption_keykey暗号化キー
gen_trt_enginegen_trt_engine.onnx_fileparent_model親ジョブの結果フォルダーから推論されるモデルファイル
gen_trt_enginegen_trt_engine.tensorrt.calibration.cal_cache_filecreate_cal_cacheキャリブレーションキャッシュのパス
gen_trt_enginegen_trt_engine.trt_enginecreate_engine_file出力 TensorRT エンジンのパス
gen_trt_engineresults_diroutput_dir現在のジョブの結果ディレクトリ
inferenceencryption_keykey暗号化キー
inferenceinference.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
inferenceinference.trt_engineparent_model親ジョブの結果フォルダーから推論されるモデルファイル
inferenceresults_diroutput_dir現在のジョブの結果ディレクトリ
trainencryption_keykey暗号化キー
trainresults_diroutput_dir現在のジョブの結果ディレクトリ
traintrain.pretrained_model_pathptm_if_no_resume_model再開チェックポイントがない場合の PTM
traintrain.resume_training_checkpoint_pathresume_model現在のジョブの結果フォルダーから推論されるモデルファイル

parent_model または parent_model_folder の場合は、上流の train/export/AutoML 子ジョブ ID を parent_job_id として渡します。SDK は親の結果フォルダーを一覧表示し、チェックポイント成果物を絞り込み、選択されたモデルファイルまたはフォルダーを返します。これらのマッピングを config.json に戻したり、チェックポイントパスを推測するよう生成されたランナースクリプトにパッチを適用したりしないでください。

デプロイ

  • tao-deploy-optical-inspection — TAO Deploy を使用した TensorRT エンジンの生成、TensorRT 評価、TensorRT 推論のための Optical Inspection デプロイワークフローです。

コメント