tao-train-dino について
tao-train-dinoは、TAOのDINOモデルで2D物体検出を行うスキルです。学習、評価、推論、デプロイに加え、AutoMLの学習方針やCOCOデータ要件、操作別の設定を扱います。
主な機能
- 01Transformerベースの2D物体検出
- 02デノイズ学習とマルチスケール特徴
- 03蒸留とAutoMLに対応
- 04評価・推論・デプロイ操作
活用シーン
- 01COCOデータで物体検出モデルを学習
- 02AutoMLで学習設定を探索
- 03モデル評価やTensorRTエンジン生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill tao-train-dinoインストール後、Claude Code で/tao-train-dinoを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/automl.mdsdk_orchestration.mdskill_info.yamlspec_overrides.mdspec_template_deploy_evaluate.yamlspec_template_deploy_gen_trt_engine.yamlspec_template_deploy_inference.yamlspec_template_distill.yamlspec_template_evaluate.yamlspec_template_export.yamlspec_template_gen_trt_engine.yamlspec_template_inference.yamlspec_template_quantize.yamlspec_template_train.yamltao-deploy-dino.mdtao-deploy-dino.skill_info.yamltroubleshooting.mdschemas/distill.schema.jsonevaluate.schema.jsonexport.schema.jsongen_trt_engine.schema.jsoninference.schema.jsonmanifest.jsonquantize.schema.jsontrain.schema.json詳細
DINO
DINO(DETR with Improved DeNoising Anchor Boxes)は、2D物体検出用です。ノイズ除去学習、マルチスケール特徴、オプションの蒸留サポートを備えた、Transformer ベースの検出器です。
事前学習済みのバックボーン重み(例:ResNet-50 ImageNet)を使用します。バックボーンのみの場合は model.pretrained_backbone_path を、モデル全体の場合は train.pretrained_model_path を設定してください。
TAO Deploy TensorRT アクション(gen_trt_engine、TensorRT の evaluate、および TensorRT の inference)については、まず references/tao-deploy-dino.md をお読みください。Deploy の仕様テンプレートは、このスキルの references/ フォルダー内にあり、spec_template_deploy_*.yaml というプレフィックスが付いています。
生成された TAO Core スキーマは schemas/<action>.schema.json にパッケージ化されています(アクションの一覧は schemas/manifest.json を参照してください)。各スキーマに対応する references/spec_template_<action>.yaml が生成されます。SDK オーケストレーションで使用するデータクラスのスキーマ、仕様テンプレート、データソース、親モデルの推論について詳しくは、references/sdk_orchestration.md を参照してください。
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、およびデプロイフローなど、train 以外のアクションは、このモデルのスキル内にとどまります。実行ごとの automl_policy オーバーライドによって、モデルのメタデータが変更されることはありません。
トレーニング要件
DINO 用のトレーニングスクリプトまたは AutoML スクリプトを生成する前に、エージェントは必ずこのセクションを読む必要があります。
- データセットの種類: object_detection
- 形式: coco、coco_raw
- 受け付けるデータセットの用途: training、evaluation、testing、calibration
- 監視メトリクス: val_mAP50
必須データセット — 両方を必ず解決してください:
| データセット | 必須 | 理由 |
|---|---|---|
| トレーニングデータセット URI | はい | トレーニングデータ(COCO 形式) |
| 検証データセット URI | はい — 常に | DINO は無条件に検証用データローダーを構築します。val_data_sources を省略すると、メトリクスやワークフローに関係なく、起動時に FileNotFoundError が発生します。ユーザーが個別の評価用分割を持っていない場合は、トレーニング URI を再利用してください。 |
トレーニング仕様を生成する前に必要な入力:
- トレーニングデータセット URI — COCO 形式のトレーニングデータへの S3 パス
- 検証データセット URI — COCO 形式の検証データへの S3 パス(トレーニングデータと同じでもかまいません)
num_classes— オブジェクトのクラス数。デフォルトは 91(COCO)です。max(category_id) + 1以上である必要があります。値が小さすぎると、CUDA error: device-side assert triggeredが発生します。
これらの値は、ユーザーのリクエストまたは以下のデフォルトプロファイルから解決してください。プロファイルのルールを適用した後も不足している値だけを尋ねてください。
DINO AutoML のスモーク実行向けに保存されたローカルデフォルトプロファイル:
ユーザーが DINO AutoML の実行を求めており、データセットまたはクラス数の入力を指定していない場合に限り、このプロファイルを使用してください。このプロファイルは意図的に小規模で、このスキルバンク内のみで使用します。本番ベンチマークではなく、スモーク実行や反復実行向けです。これらの値を取得するために、以前のランナー、ログ、セッション状態、シェル履歴、ホームディレクトリを検索しないでください。
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,
}
ユーザーがデータセット URI またはクラス数を指定した場合は、ユーザーの値を優先し、残りの必須 DINO 値を尋ねてください。ユーザーの確認なしに、ユーザー指定のデータセットとこのプロファイルのクラス数を部分的に組み合わせないでください。
標準の DINO データセットについて、画像のレイアウトを尋ねないでください。 標準の TAO DINO データセットアーティファクトは images.tar.gz と annotations.json です。リモートの image_dir 仕様オーバーライドには images.tar.gz を使用してください。SDK はアーカイブをダウンロードし、アーカイブ名の拡張子を除いた名前(images.tar.gz -> images)のフォルダーに展開して、実行時の仕様を書き換えます。ユーザーが別の画像アーティファクト名を明示的に指定した場合に限り、この規則から変更してください。
仕様オーバーライド、データセット、パラメーター
データソースのオーバーライドは、すべてのアクションで必須です。DINO の config.json では data_sources が空になっています。これは、ランナーがオブジェクトの配列である仕様キーを自動解決できないためです。エージェントは必ずデータソースのパスを構築し、spec_overrides に含める必要があります。
references/spec_overrides.md を参照してください。各アクションに必要なデータセットをまとめた表、train、evaluate、export、gen_trt_engine、inference、quantize、distill の必須 spec_overrides ブロック、parent_model 推論および results_dir/train/dino_model_latest.pth フォールバックによるチェックポイント解決、COCO データセット形式と images.tar.gz のアーカイブ名ルール、アクションごとのデータソースレイアウト、重要なパラメーターの一覧(num_classes、backbone とそのサポート対象の値、lr/lr_backbone、num_epochs、lr_steps、num_queries、batch_size)、デフォルト値(num_epochs 10、batch_size 4、learning_rate 2e-4、lr_backbone 2e-5、num_classes 91、backbone resnet_50)、評価のデフォルト値、エクスポートのデフォルト値(入力 640x640、opset 17、trt_data_types [FP32, FP16, INT8]、trt_workspace_size_mb 1024)、およびハードウェアのガイダンス(GPU は最低 1 基、推奨 4 基、24GB 以上の A100)が記載されています。TAO Deploy の完全なリファレンス:tao-deploy-dino。
evaluate 仕様を生成するときは、選択された AutoML 候補のモデル構造設定(model.backbone、model.num_queries、model.dropout_ratio、dataset.num_classes)を引き継ぎ、チェックポイントと評価モデルの形状を一致させてください。
エラーパターン
よくある失敗には、CUDA OOM、num_select < num_queries * num_classes、spec/schema のマージエラー、データセットのサイズがバッチより小さい場合、return_interm_indices と num_feature_levels の不一致、画像がない場合や検証データがない場合の FileNotFoundError、num_classes が小さいことによる CUDA device-side assert、S3 入力がダウンロードされていない、結果のルートに評価用チェックポイントが見つからない、などがあります。それぞれのエラーパターンと修正方法については、references/troubleshooting.md を参照してください。
AutoML / HPO に関する注意事項
AutoML ではトレーニングを実行するため、上記のトレーニング要件がすべて適用されます。また、入力がない場合は DINO_AUTOML_PROFILE が使用されます。データセット URI、num_classes、推奨件数、間隔の設定を推測するために、過去の AutoML 実行を調べないでください。metric="kpi" ではなく、metric="mAP50" と direction="maximize" を明示的に指定し、Validation mAP50 を読み取るカスタムの metric_extractor を使用してください。推奨されるメトリック抽出器、ハイパーパラメーターの一覧、custom_param_ranges、train.optim.weight_decay に関する注記、バックボーンの制約に関するガイダンスについては、references/automl.md を参照してください。
オプション:TAO SDK を使用した実行
SDK の script_runner オーケストレーション、S3 I/O のラッピング、AutoML の内部処理、spec テンプレートの生成、データソースの不足、config.json の inputs 宣言、各アクションの spec パラメーターと親モデルの完全な推論マッピング表については、references/sdk_orchestration.md に記載されています。docker run を使用してローカルで実行する場合は、この項目をスキップしてください。