mcpField
T
tao-analyze-gaps-vlm-bcq

tao-analyze-gaps-vlm-bcq

github.com/nvidia数据与数据库3.8k1.6k 次安装今天更新
代码仓库

关于 tao-analyze-gaps-vlm-bcq

该 TAO 技能比较 VLM 二分类预测与真实标签,整理误报和漏报样本并生成汇总报告,供后续根因分析和迭代使用。

主要功能

  1. 01比较预测与真实标签
  2. 02识别误报和漏报
  3. 03生成 JSONL 案例文件
  4. 04输出错误计数报告

适用场景

  1. 01检查 VLM 二分类评测结果
  2. 02为后续根因分析整理失败样本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia/skills --skill tao-analyze-gaps-vlm-bcq

安装后在 Claude Code 中输入/tao-analyze-gaps-vlm-bcq确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
assets/
default_vlm_bcq.yaml
config/
skillspector-baseline.yaml
evals/
evals.json
references/
skill_info.yaml
scripts/
prepare_vlm_bcq_spec.py

详细介绍

VLM 二元分类差距分析

独立安装? 如果此会话并非由 TAO 技能库插件初始化,请先运行 tao-setup 技能(主机预检、凭据、跨技能发现)。

读取 VLM 预测 JSON,将每个模型响应与真实标签进行比较,并将 FP/FN 失败案例写入 JSONL 文件,同时生成摘要报告。使用 TAO Data Services 规范文件运行;data-services 入口点要求提供 -e <spec>。

用途

在 VLM 完成二元是/否评估任务后,需要将预测与真实标签进行比较,以识别失败案例。此技能会生成结构化的 FP(假阳性)和 FN(假阴性)样本列表,供下游 RCCA 阶段(例如 cosmos 生成、根因分析)使用,以推动 DEFT 迭代。

用法

使用随附的辅助工具生成 vlm_bcq_spec.yaml:

python3 skills/data/tao-analyze-gaps-vlm-bcq/scripts/prepare_vlm_bcq_spec.py \
  --predictions-json /path/to/results.json \
  --videos-dir /path/to/videos/root \
  --results-dir /path/to/output/gaps \
  --output-spec /path/to/output/gaps/vlm_bcq_spec.yaml

如果预测中的 video_id 值已经是绝对路径,则省略 --videos-dir。生成的规范文件格式如下:

predictions_json: /path/to/results.json
videos_dir: ""
results_dir: /path/to/output/gaps

如果预测中的 video_id 值是相对路径,则设置 videos_dir:

predictions_json: /path/to/results.json
videos_dir: /path/to/videos/root
results_dir: /path/to/output/gaps

在 TAO Toolkit data services 容器中使用 -e <spec> 调用 vlm_bcq 操作:

gap_analysis vlm_bcq -e /path/to/vlm_bcq_spec.yaml

请从所选平台请求恰好 1 个 GPU(compute_shape.gpus: 1、 compute_shape.nodes: 1)。VLM BCQ 差距分析不会执行 GPU 计算, 但 Data Services 镜像始终会调用 nvidia-smi,且在没有可见 GPU 时会失败。此处的 1 表示 GPU 数量,而非设备 ID;设备由平台选择。

运行结束后,提取 kpi_gaps_report.txt 中的 FP/FN 数量,并将 kpi_gaps.jsonl 提供给下游阶段。

输入

  • config spec:通过 -e 传入的 YAML 文件。模板:assets/default_vlm_bcq.yaml。
  • predictions_json:预测 JSON 文件的路径。必须是 JSON 数组,且每个项目都包含 video_id、response 和 gt 字段。系统使用单词边界匹配解析 response 和 gt——字符串中的 'yes' 或 'no' 会被识别。如果两者同时出现或都未出现,则跳过该样本并发出警告。
  • videos_dir(可选):用于解析相对 video_id 路径的基目录。如果省略,则将 video_id 值视为绝对路径。
  • results_dir:差距分析产物的输出目录。

预测 JSON 格式:

[
  {
    "video_id": "/path/to/video.mp4",
    "response": "Yes, there is a collision.",
    "gt": "B. No",
    "question": "Is there a collision?"
  }
]

输出

  • kpi_gaps.jsonl:每个 FP/FN 案例占一行 JSON 对象。字段:video_id(绝对路径)、error_type(FP 或 FN)、question、ground_truth、response。
  • kpi_gaps_report.txt:包含 FP/FN 总数的人类可读表格。

如果未发现差距,则不会写入文件,并会记录一条消息。

规范字段

参数必填描述
predictions_json是预测 JSON 文件的路径
results_dir是输出目录;如果不存在则创建
videos_dir否用于解析相对 video_id 路径的基目录

请将规范文件及其引用的所有路径放在绑定挂载的工作区下,以确保它们在容器内可解析。即使同时添加 Hydra 覆盖参数,也要传入 -e <spec>;当前 TAO Data Services 入口点在处理覆盖参数前,硬性要求提供实验规范文件。

错误模式

错误原因修复方法
FileNotFoundErrorpredictions_json 不存在检查路径
requires the following argument: -e/--experiment_spec_file启动容器时未提供规范文件编写 vlm_bcq_spec.yaml,并传入 gap_analysis vlm_bcq -e <spec>
ValueError: must be a JSON array预测文件不是列表将预测内容包装在 [...] 中
ValueError: missing 'gt'/'response'/'video_id'预测项目缺少必需字段检查并修正预测 JSON
样本被静默跳过response 或 gt 中的 'yes'/'no' 同时出现或都未出现检查日志中的警告,并检查相应样本

评论

支持 Markdown