关于 tao-analyze-gaps-vlm-bcq
该 TAO 技能比较 VLM 二分类预测与真实标签,整理误报和漏报样本并生成汇总报告,供后续根因分析和迭代使用。
主要功能
- 01比较预测与真实标签
- 02识别误报和漏报
- 03生成 JSONL 案例文件
- 04输出错误计数报告
适用场景
- 01检查 VLM 二分类评测结果
- 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.mdskill-card.mdskill.oms.sigassets/default_vlm_bcq.yamlconfig/skillspector-baseline.yamlevals/evals.jsonreferences/skill_info.yamlscripts/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 入口点在处理覆盖参数前,硬性要求提供实验规范文件。
错误模式
| 错误 | 原因 | 修复方法 |
|---|---|---|
FileNotFoundError | predictions_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' 同时出现或都未出现 | 检查日志中的警告,并检查相应样本 |