TAO Grounding DINO 训练
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/tao-train-grounding-dino。
技能介绍
要解决什么问题
固定类别表的目标检测在「按自然语言描述找物体」的场景里很快不够用:类别要预先枚举,换任务就要改标签体系。Grounding DINO 把 DINO 式检测和 BERT 文本编码器接在一起,用文本提示指定要检的对象,属于开放式 / 开放词汇检测,不必维护固定 class list。
本技能是 TAO Toolkit 上的 grounding_dino 模型包:在统一规格里跑训练、评估、推理、导出与量化,并对接 TensorRT 部署文档与 spec_template_deploy_*.yaml 模板。
技能如何工作
- 数据:训练/量化用 ODVG(
annotations_odvg.jsonl+ label map);验证 mAP 仍建议 COCO 格式annotations.json。推理除images.tar.gz外,还可从工作流提示提供 captions 列表。 - 预训练:
train.pretrained_model_path填完整 Grounding DINO 权重,或model.pretrained_backbone_path只加载骨干。 - 训练路由:模型层默认开启 AutoML(
automl_policy: on)。具备schemas/train.schema.json与spec_template_train.yaml时,训练经tao-skill-bank:tao-run-automl;用户明确「关闭 AutoML / 无 HPO / 简单训练」则本次运行走直接训练。 - 关键超参:
model.backbone(默认swin_tiny_224_1k)、model.text_encoder_type(默认bert-base-uncased)、model.max_text_len(默认 256,需与标签位置图一致)、model.num_queries(默认 900,密集标注勿用过小烟雾值)。 - 多 GPU:Lightning 启动,
train.distributed_strategy为ddp或fsdp;多节点需 Orchestrator 注入WORLD_SIZE等环境变量。 - 导出 / TRT:导出输入默认 960×544、opset 17;TRT 仅 FP32/FP16(不支持 INT8),workspace 8192 MB,max batch 4。部署前读
references/tao-deploy-grounding-dino.md。
适用边界与注意点
- 图像源可打包为
images.tar.gz,但本地 Docker TAO CLI 必须把image_dir指到已解压目录(技能元数据runtime: extracted_folder)。 - 各操作的
dataset.*_data_sources需在spec_overrides里按操作表显式覆盖,代理不能省略。 - OOM 时优先降
batch_size;BERT 头显存开销明显,建议 24GB+ GPU,最少 1 卡、常用 4 卡。 - 勿为冒烟随意缩小
model.max_text_len或导出分辨率(过小如 128×128 可能在 ONNX 文本头 shape 推断失败);验证类别 ID 应从 0 起。 - 父作业检查点通过
parent_job_id与 SDK 映射解析(如evaluate.checkpoint→parent_model),勿在运行脚本里硬猜路径;评估/推理/导出需与训练一致的 backbone、queries、max_text_len等结构参数。
使用场景
- 已有 ODVG 标注的图像集,要在 TAO 上微调 Grounding DINO 并用 COCO 验证集算 val_mAP50
- 产线或质检图库需按自然语言 captions 批量推理,而不是固定类别 ID 列表
- 训练完成后要把检查点导出 ONNX,再按 references 文档生成 FP16 TensorRT 引擎做低延迟检测
- 想在同一份 train spec 里试 AutoML 超参搜索,而不是手写 learning rate 与 backbone 组合
适合人员
- 负责 NVIDIA TAO 物体检测流水线、要把语言提示检测接到现有 ODVG/COCO 数据规范的算法工程师
- 在 Skill Bank 里编排 train→export→gen_trt_engine 多阶段作业、需正确填 spec_overrides 与 parent_job_id 的 MLOps
- 要把 Grounding DINO 部署到 GPU 推理节点、需遵守 960×544 导出与 FP32/FP16 TRT 约束的嵌入式/边缘 CV 工程师
- 做开放词汇检测 POC、需区分 AutoML 训练与直接训练,并处理 BERT 权重与显存 OOM 的 CV 研究员