mcpField
T
tao-train-reid

tao-train-reid

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

tao-train-reid について

カメラの異なる視点間で同一人物を照合するためのTAOスキルです。識別性の高い埋め込みを学習し、AutoML対応の学習と検索ベースの評価を行えます。

主な機能

  1. 01カメラ間の人物照合
  2. 02識別的な埋め込み学習
  3. 03AutoML対応の学習フロー
  4. 04CMCとmAPによる評価

活用シーン

  1. 01複数カメラ映像から同一人物を検索
  2. 02クエリとギャラリーで人物照合を評価

インストール

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

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

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

同梱ファイル

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

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
skill_info.yaml
spec_template_evaluate.yaml
spec_template_export.yaml
spec_template_inference.yaml
spec_template_train.yaml
schemas/
evaluate.schema.json
export.schema.json
inference.schema.json
manifest.json
train.schema.json

詳細

再識別

人物再識別。異なるカメラビュー間で同一人物を照合するため、識別能力の高い埋め込みを学習します。メトリック学習に基づいています。

事前学習済みの重みを使用するには、model.pretrained_model_path を設定してください。

データクラスのスキーマ

生成された 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 経由で実行してください。データセット、spec、出力ディレクトリ、GPU/プラットフォーム設定、親チェックポイント、automl_policy に関するワークフロー/アプリケーションの上書き設定は維持してください。直接モデルをトレーニングするのは、automl_policy: off の場合、またはパッケージ済みの train スキーマ/テンプレートがない場合に限ります。スキーマがない場合は、AutoML は有効ですが、スキーマが生成されるまではこのモデルで実行できないことを報告してください。

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

トレーニング要件

  • データセットの種類: re_identification
  • 形式: default
  • モニタリング指標: cmc_rank_1
アクションごとのデータセット要件
アクションSpec キーソースファイルリスト?
evaluateevaluate.test_datasettrain_datasetssample_test.tar.gzいいえ
evaluateevaluate.query_datasettrain_datasetssample_query.tar.gzいいえ
inferenceinference.test_datasettrain_datasetssample_test.tar.gzいいえ
inferenceinference.query_datasettrain_datasetssample_query.tar.gzいいえ
traindataset.train_dataset_dirtrain_datasetssample_train.tar.gzいいえ
traindataset.test_dataset_dirtrain_datasetssample_test.tar.gzいいえ
traindataset.query_dataset_dirtrain_datasetssample_query.tar.gzいいえ
典型的な Spec 上書き設定

データソースの上書きはすべてのアクションで必須です。エージェントは上記の「アクションごとのデータセット要件」表からデータソースのパスを構築し、spec_overrides に含める必要があります。

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

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

{
    "train.num_epochs": 30,
    "train.checkpoint_interval": 10,
    "train.validation_interval": 10,
    "train.num_gpus": 1,
    "num_classes": 100,
    "num_workers": 4,
    "batch_size": 16,
    "dataset.train_dataset_dir": f"{S3_TRAIN}/sample_train.tar.gz",
    "dataset.test_dataset_dir": f"{S3_TRAIN}/sample_test.tar.gz",
    "dataset.query_dataset_dir": f"{S3_TRAIN}/sample_query.tar.gz",
}

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

{
    "evaluate.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
    "evaluate.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}

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

{
    "inference.test_dataset": f"{S3_TRAIN}/sample_test.tar.gz",
    "inference.query_dataset": f"{S3_TRAIN}/sample_query.tar.gz",
}

評価データセット

必須です。検索ベースの指標(CMC、mAP)を算出するには、評価用の test データセットと query データセットが必要です。

重要なパラメーター

  • dataset.num_classes:IDの数です。デフォルトは751です。トレーニングデータ内の一意なIDの数と一致する必要があります。
  • model.backbone:デフォルトはresnet_50です。
  • optim.base_lr:基本学習率です。デフォルトは3.5e-4です。
  • dataset.batch_size:GPUごとのバッチサイズです。デフォルトは64です。Re-IDでは、トリプレット/コントラストサンプリングの精度を高めるため、大きなバッチサイズが有効です。
  • dataset.num_instances:バッチ内のIDごとのインスタンス数です。メトリック学習のサンプリング方法を制御します。

マルチGPU/マルチノード

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

Spec Key説明デフォルト
train.num_gpusGPUの数1
train.gpu_idsGPUデバイスのインデックス[0]
  • マルチGPU戦略:ddp_find_unused_parameters_true
  • sync_batchnormは常に有効です
  • 精度はFP16(16-mixed)に固定されます
  • num_nodesの明示的な設定はありません(単一ノード向けです)

ハードウェア

最低1 GPU、推奨2 GPUです。GPUごとに16GB以上のVRAMが必要です。Re-IDモデルは比較的軽量ですが、メトリック学習では大きなバッチサイズが有効です。

エラーパターン

num_classesの不一致:dataset.num_classesが、トレーニングセット内の一意なIDフォルダーの数と一致していることを確認してください。

クエリ/ギャラリーの不一致:クエリデータセットとテスト(ギャラリー)データセットでは、同じID名前空間を共有する必要があります。

Spec パラメーター/親モデルの推論

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

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

アクションSpec フィールド推論関数意味
evaluateencryption_keykey暗号化キー
evaluateevaluate.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
evaluateevaluate.output_cmc_curve_plotcreate_evaluate_cmc_plot_reidReID CMCプロットのパス
evaluateevaluate.output_sampled_matches_plotcreate_evaluate_matches_plot_reidReIDサンプリング済みマッチのプロットパス
evaluateresults_diroutput_dir現在のジョブの結果ディレクトリー
exportencryption_keykey暗号化キー
exportexport.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
exportexport.onnx_filecreate_onnx_file出力ONNXパス
exportresults_diroutput_dir現在のジョブの結果ディレクトリー
inferenceencryption_keykey暗号化キー
inferenceinference.checkpointparent_model親ジョブの結果フォルダーから推論されるモデルファイル
inferenceinference.output_filecreate_inference_result_file_reidReID推論JSONのパス
inferenceresults_diroutput_dir現在のジョブの結果ディレクトリー
trainencryption_keykey暗号化キー
trainmodel.pretrained_model_pathptm_if_no_resume_model再開用チェックポイントがない場合のPTM
trainresults_diroutput_dir現在のジョブの結果ディレクトリー
traintrain.resume_training_checkpoint_pathresume_model現在のジョブの結果フォルダーから推論されるモデルファイル

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

コメント