| 名称 | tao-analyze-gaps-vlm-bcq |
| 描述 | 从VLM二元分类问题(BCQ,是/否)预测中提取假阳性和假阴性差距。当用户要求“分析VLM BCQ差距”、“提取VLM假阳性与假阴性”,或从一个预测JSON中识别失败案例以用于DEFT根本原因分析时使用(针对二元分类VLM工作流)。 |
| 开源协议 | Apache-2.0 compatibility: 需要docker + nvidia-container-toolkit。 metadata: |
| 作者 | NVIDIA Corporation |
| 版本 | “0.1.0” allowed-tools: Read Bash tags: - 差距分析 - rcca - VLM - 评估 - 假阳性 - 假阴性 |
VLM二元分类差距分析
独立安装? 如果此会话未由TAO技能库插件初始化,请先运行
tao-setup技能(主机预检、凭据、跨技能发现)。
读取VLM预测JSON,将每个模型响应与真实值进行比较,并将FP/FN失败案例写入JSONL文件及摘要报告。
目的
在VLM上运行二元是/否评估任务后,需要将预测与真实值进行比较以识别失败案例。本技能生成一个结构化的FP(假阳性)和FN(假阴性)样本列表,供下游RCCA阶段(如cosmos生成、根本原因分析)使用以驱动DEFT迭代。
用法
在TAO工具包数据服务容器中调用vlm_bcq操作,使用Hydra风格键=值覆盖:
gap_analysis vlm_bcq \
predictions_json=/path/to/results.json \
results_dir=/path/to/output/gaps
当video_id值是相对路径时,包含videos_dir:
gap_analysis vlm_bcq \
predictions_json=/path/to/results.json \
results_dir=/path/to/output/gaps \
videos_dir=/path/to/videos/root
运行后,展示kpi_gaps_report.txt中的FP/FN计数,并将下游阶段指向kpi_gaps.jsonl。
输入
- predictions_json:预测JSON文件的路径。必须是JSON数组,每项包含
video_id、response和gt字段。response和gt使用词边界匹配解析——字符串中任意位置的'yes'或'no'都会被识别。两者都存在或都不存在的样本会被跳过并警告。 - videos_dir(可选):用于解析相对
video_id路径的基础目录。如果省略,video_id值被视为绝对路径。
预测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路径的基础目录 |
错误模式
| 错误 | 原因 | 修复 |
|---|---|---|
FileNotFoundError |
predictions_json不存在 |
检查路径 |
ValueError: must be a JSON array |
预测文件不是列表 | 将预测包在[...]中 |
ValueError: missing 'gt'/'response'/'video_id' |
预测项缺少必填字段 | 检查并修复预测JSON |
| 样本被静默跳过 | response或gt包含两个或都不包含’yes’/‘no’ |
检查日志中的警告;检查这些样本 |