mcpField
T
tao-train-dino

tao-train-dino

github.com/nvidiaデータ・データベース3.8k1.6k 回インストール今日更新
リポジトリ

tao-train-dino について

NVIDIA TAO のコンピュータービジョンワークフローで、DINO 2D 物体検出器のトレーニング、評価、エクスポート、蒸留、量子化、推論を扱うスキルです。データセットの要件や設定例、AutoML の実行方針も含みます。

主な機能

  1. 01DINO による 2D 物体検出
  2. 02トレーニングと評価
  3. 03エクスポート、蒸留、量子化
  4. 04モデル推論
  5. 05AutoML の実行方針

活用シーン

  1. 01COCO 形式のデータで検出器をトレーニング
  2. 022D 検出器の評価や推論
  3. 03モデルのエクスポート、蒸留、量子化

インストール

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

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

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

同梱ファイル

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

BENCHMARK.md
skill-card.md
skill.oms.sig
config/
skillspector-baseline.yaml
evals/
evals.json
references/
detailed-guide.md
dino-actions-errors.md
dino-data-specs.md
dino-tuning-multigpu.md
skill_info.yaml
spec_template_deploy_evaluate.yaml
spec_template_deploy_gen_trt_engine.yaml
spec_template_deploy_inference.yaml
spec_template_distill.yaml
spec_template_evaluate.yaml
spec_template_export.yaml
spec_template_gen_trt_engine.yaml
spec_template_inference.yaml
spec_template_quantize.yaml
spec_template_train.yaml
tao-deploy-dino.md
tao-deploy-dino.skill_info.yaml
schemas/
distill.schema.json
evaluate.schema.json
export.schema.json
gen_trt_engine.schema.json
inference.schema.json
manifest.json
quantize.schema.json
train.schema.json

詳細

DINO

単独でインストールする場合 このセッションが TAO skill bank プラグインによって初期化されていない場合は、まず tao-setup スキルを実行してください(ホストの事前確認、認証情報、スキル間の検出)。

DINO(DETR with Improved DeNoising Anchor Boxes)は、2D 物体検出用です。ノイズ除去学習、マルチスケール特徴、オプションの蒸留に対応した、Transformer ベースの検出器です。

事前学習済みバックボーンの重み(例:ResNet-50 ImageNet)を使用します。バックボーンのみの場合は model.pretrained_backbone_path を、モデル全体の場合は train.pretrained_model_path を設定してください。

使用する場面

TAO DINO 2D 物体検出器の学習、評価、エクスポート、蒸留、量子化、または推論を実行します。

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

リファレンスマップ

  • references/dino-data-specs.md — データセットの契約、アクションごとのデータセット要件、アクションごとの仕様上書き例(train、evaluate、export、deploy/gen_trt_engine、inference、quantize、distill)、データソース配列、チェックポイント推論、データセットのレイアウト。
  • references/dino-actions-errors.md — 重要なパラメーター、デフォルト値、evaluate/export のデフォルト、ハードウェア、エラーパターンの全カタログ。
  • references/dino-tuning-multigpu.md — AutoML/HPO に関する詳細な情報(メトリクス、ハイパーパラメーター、エクストラクター)と、マルチ GPU の仕様整合性。
  • references/tao-deploy-dino.md — TensorRT の Deploy ワークフロー。
  • references/detailed-guide.md — 詳細なモデルガイドへのマップ。

Dataclass スキーマ

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

Train アクションのポリシー

このモデルは、モデルレイヤーで AutoML が有効になっています。train 段階のリクエストを処理する前に、references/skill_info.yaml を読み込み、明示的な automl_policy 値またはユーザーのワークフローリクエストから実行時の上書きを決定してください。デフォルトでは automl_policy: on を使用し、新しい起動プロンプトでは on/off のみを提示してください。「AutoML をオフにする」「AutoML を無効にする」「HPO なし」「通常の学習」のような表現は、この実行に限り automl_policy: off として扱ってください。automl_policy: on、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 上書きによって、モデルのメタデータが変更されることはありません。

トレーニング要件

DINO のトレーニングスクリプトまたは AutoML スクリプトを生成する前に、エージェントはこのセクションを必ず読む必要があります。

  • データセットの種類: object_detection
  • 形式: coco、coco_raw
  • 受け付けるデータセットの用途: training、evaluation、testing、calibration
  • AutoML のメトリクス規約: デフォルトの評価ベースのワークフローでは、最大化を方向として test_mAP50 を使用します。COCO/論文形式の mAP をユーザーが明示的に要求した場合に限り、test_mAP を使用します。
  • トレーニング監視メトリクス: 運用上の迅速な確認には val_mAP50(Validation mAP50 としてログに記録)を使用します。COCO/論文形式のベンチマーク比較には val_mAP を使用します。
  • 評価アクションのメトリクス: AP50 には test_mAP50、COCO mAP には test_mAP を使用します。スタンドアロンの evaluate アクションで推奨をスコアリングする AutoML ワークフローでは、対応する test_* KPI を使用する必要があります。

必須データセット — 両方を必ず解決してください:

データセット必須理由
トレーニングデータセット URIはいトレーニングデータ(COCO 形式)
検証データセット URIはい — 常にDINO は無条件に検証用データローダーを構築します。val_data_sources を省略すると、メトリクスやワークフローにかかわらず、起動時に FileNotFoundError が発生します。別個の評価用分割がない場合は、トレーニング URI を再利用してください。

トレーニング仕様を生成する前に必要な入力:

  1. トレーニングデータセット URI — COCO 形式のトレーニングデータの S3 パス
  2. 検証データセット URI — COCO 形式の検証データの S3 パス(トレーニングデータと同じでもかまいません)
  3. 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 は train、evaluate、export、distill、quantize、inference をサポートします。データソースのオーバーライドはすべてのアクションで必須です。DINO の config.json では、ランナーがオブジェクト配列の仕様キーを自動解決できないため、data_sources は空になっています。エージェントはデータソースのパスを構築し、spec_overrides に含める必要があります。

references/dino-data-specs.md を参照してください。ここには、アクションごとに必要なデータセットの一覧表、標準データセットアーティファクト(images.tar.gz + annotations.json)と実行時フォルダーの書き換えルール、train、evaluate、export、deploy/gen_trt_engine、inference、quantize、distill の各アクションに対応する spec_overrides の完全な例が記載されています。これには、parent_model を使用したチェックポイント推論、results_dir/train/ のチェックポイント保存先、distillation における FAN ティーチャー/学生モデルのルールも含まれます。

重要なパラメーターとデフォルト値

デフォルト値:num_epochs=10、batch_size=4、learning_rate=2e-4、 lr_backbone=2e-5、num_classes=91、backbone=resnet_50。

  • dataset.num_classes:デフォルトは91(COCO)です。max(category_id) + 1 以上である必要があります。値が低すぎると、CUDA error: device-side assert triggered が発生します。仕様のオーバーライドでは <num_classes> + 1 に設定してください。
  • num_epochs:デフォルトは10(短時間での反復用)です。実際のデータセットで良好な mAP を得るには、通常30~50エポック以上が必要です。

パラメーター一覧(バックボーンの選択肢、train.optim.lr/lr_steps、model.num_queries、batch_size)、デフォルト値、評価のデフォルト値、エクスポートのデフォルト値(入力960x544、opset 17、TRT データ型、ワークスペース1024 MB)、およびハードウェア要件については、references/dino-actions-errors.md を参照してください。

マルチ GPU と AutoML/HPO

train.num_gpus を増やす場合は、表示されるデバイス範囲と同じ値を train.gpu_ids にも設定してください。そうしないと、分散起動の整合性が取れなくなることがあります。

AutoML は学習を実行するため、上記の 学習要件 がすべて適用されます。入力不要のローカルスモーク実行には DINO_AUTOML_PROFILE を使用してください。学習ログのみでスコアを算出する場合は、Validation mAP50 から抽出される val_mAP50 または val_mAP を使用してください。各推奨設定をスタンドアロンの評価アクションでスコアリングする場合は、direction="maximize" とともに test_mAP50 または test_mAP を使用してください。

マルチ GPU の完全な仕様整合性ルール(8 GPU の例、NCCL タイムアウトに関する注意)と、AutoML/HPO に関する詳細(指標の選択、metric_extractor、推奨ハイパーパラメーター、weight_decay の動作、高密度データセットでの再開に関するガイダンス、親モデル推論のマッピング)については、references/dino-tuning-multigpu.md を参照してください。

エラーパターン

よくある失敗には、CUDA の OOM(batch_size を減らしてください)、val_data_sources の不足(起動時に FileNotFoundError が発生するため、必ず val を指定してください)、num_classes が低すぎる(CUDA のデバイス側アサート)、親の dino gen_trt_engine/dino convert における PyT-CLI の制約などがあります。

診断方法と修正方法を含むエラーパターンの完全な一覧については、references/dino-actions-errors.md を参照してください。

仕様パラメーター/親モデル推論

モデル固有の推論マッピングは、この MD ファイルに記載します。 parent_model/parent_model_folder では、上流の学習/エクスポート/AutoML 子ジョブ ID を親ジョブ ID として渡し、親の結果フォルダーを一覧表示してチェックポイントの成果物をフィルタリングし、解決されたモデルを選択してください。

完全な推論マッピング表(アクションごとの parent_model、key、output_dir、ptm_if_no_resume_model、resume_model、create_onnx_file)と TensorRT マッピングに関する注記については、references/dino-tuning-multigpu.md を参照してください。TensorRT マッピングはデプロイのワークフローにあり、PyT モデルのスキルにはありません。

デプロイ

コメント