tao-analyze-gaps-vlm-bcq
NVIDIA/skills
Extraire les écarts de type « faux positif » et « faux négatif » des prédictions de VLM concernant les questions de classification binaire, en comparant les réponses du modèle aux données de référence, afin de générer un fichier JSONL structuré et un rapport de synthèse destinés à l'analyse en aval des causes profondes.
...Développer toutAnalyse des écarts de classification binaire VLM
Lit un fichier JSON contenant les prédictions VLM, compare chaque réponse du modèle aux valeurs de référence, puis enregistre les cas d'échec (FP/FN) dans un fichier JSONL accompagné d'un rapport de synthèse.
Objectif
Après avoir exécuté un VLM sur une tâche d’évaluation binaire « oui/non », les prédictions doivent être comparées aux données de référence afin d’identifier les cas d’échec. Cette compétence génère une liste structurée d’échantillons FP (faux positifs) et FN (faux négatifs) que les étapes RCCA en aval (par exemple, génération de cosmos, analyse des causes profondes) utilisent pour piloter une itération DEFT.
Utilisation
Appelez l’action vlm_bcq à l’intérieur du conteneur de services de données TAO Toolkit en utilisant des remplacements de type Hydra (clé=valeur) :
gap_analysis vlm_bcq \
predictions_json=/chemin/vers/results.json \
results_dir=/chemin/vers/output/gaps
Ajoutez videos_dir lorsque les valeurs video_id dans les prédictions sont des chemins relatifs :
gap_analysis vlm_bcq \
predictions_json=/chemin/vers/results.json \
results_dir=/chemin/vers/output/gaps \
videos_dir=/chemin/vers/videos/root
Une fois l’exécution terminée, extraire les comptes de FP/FN du fichier kpi_gaps_report.txt et orienter les étapes en aval vers le fichier kpi_gaps.jsonl.
Entrées
- predictions_json: chemin d’accès au fichier JSON des prédictions. Doit être un tableau JSON dont chaque élément comporte les champs
video_id,responseetgt.Les champs responseetgtsont analysés selon une correspondance au niveau des mots —les chaînes « yes »ou« no »sont reconnues où qu’elles apparaissent dans la chaîne de caractères. Les échantillons où les deux sont présents ou où aucun n’est présent sont ignorés avec un avertissement. - videos_dir (facultatif) : répertoire de base pour la résolution des chemins relatifs
video_id. S’il est omis, les valeursvideo_idsont utilisées comme chemins absolus.
Format JSON des prédictions :
[
{
"video_id": "/path/to/video.mp4",
"response": "Oui, il y a une collision.",
"gt": "B. Non",
"question": "Y a-t-il une collision ?"
}
]
Sorties
- kpi_gaps.jsonl: un objet JSON par ligne pour chaque cas de FP/FN. Champs :
video_id(chemin absolu),error_type(FPouFN),question,ground_truth,response. - kpi_gaps_report.txt: tableau lisible par l’utilisateur indiquant le nombre total de FP et de FN.
Si aucun écart n’est détecté, aucun fichier n’est généré et un message est consigné dans le journal.
Paramètres clés
| Paramètre | Obligatoire | Description |
|---|---|---|
| predictions_json | Oui | Chemin d'accès au fichier JSON des prédictions |
| results_dir | Oui | Répertoire de sortie ; créé s'il n'existe pas |
| videos_dir | Non | Répertoire de base pour la résolution des chemins relatifs vers les identifiants vidéo (video_id) |
Modèles d'erreur
| Erreur | Cause | Solution |
|---|---|---|
FileNotFoundError |
Le fichierpredictions_json n'existe pas |
Vérifiez le chemin d'accès |
ValueError : doit être un tableau JSON |
Le fichier de prédictions n'est pas une liste | Encadrez les prédictions entre [...] |
ValueError : « gt », « response » ou « video_id » manquant |
Il manque un champ obligatoire dans un élément de prédiction | Vérifiez et corrigez le fichier JSON des prédictions |
| Échantillons ignorés sans message d'erreur | « response » ou « gt » contiennent à la fois « yes » et « no », ou aucun des deux |
Vérifiez les journaux pour détecter d’éventuels avertissements ; examinez ces échantillons |
---
name: tao-analyze-gaps-vlm-bcq
description: Extract false-positive and false-negative gaps from VLM binary-classification-question predictions by comparing model responses against ground truth, producing a structured JSONL file and summary report for downstream root-cause analysis.
license: Apache-2.0
---
# VLM Binary Classification Gap Analysis
Reads a VLM predictions JSON, compares each model response against ground truth, and writes FP/FN failure cases to a JSONL file with a summary report.
## Purpose
After running a VLM on a binary yes/no evaluation task, the predictions need to be compared against ground truth to identify failure cases. This skill produces a structured list of FP (false positive) and FN (false negative) samples that downstream RCCA stages (e.g., cosmos generation, root cause analysis) consume to drive a DEFT iteration.
## Usage
Invoke the `vlm_bcq` action inside the TAO Toolkit data services container with Hydra-style key=value overrides:
```bash
gap_analysis vlm_bcq \
predictions_json=/path/to/results.json \
results_dir=/path/to/output/gaps
```
Include `videos_dir` when `video_id` values in the predictions are relative paths:
```bash
gap_analysis vlm_bcq \
predictions_json=/path/to/results.json \
results_dir=/path/to/output/gaps \
videos_dir=/path/to/videos/root
```
After the run, surface the FP/FN counts from `kpi_gaps_report.txt` and point downstream stages at `kpi_gaps.jsonl`.
## Inputs
- **predictions_json**: Path to predictions JSON file. Must be a JSON array where each item has `video_id`, `response`, and `gt` fields. `response` and `gt` are parsed with word-boundary matching — `'yes'` or `'no'` anywhere in the string is recognized. Samples where both or neither are present are skipped with a warning.
- **videos_dir** (optional): Base directory for resolving relative `video_id` paths. If omitted, `video_id` values are used as absolute paths.
**Predictions JSON format:**
```json
[
{
"video_id": "/path/to/video.mp4",
"response": "Yes, there is a collision.",
"gt": "B. No",
"question": "Is there a collision?"
}
]
```
## Outputs
- **kpi_gaps.jsonl**: One JSON object per line for each FP/FN case. Fields: `video_id` (absolute path), `error_type` (`FP` or `FN`), `question`, `ground_truth`, `response`.
- **kpi_gaps_report.txt**: Human-readable table with total FP/FN counts.
If no gaps are found, no files are written and a message is logged.
## Key Parameters
| Parameter | Required | Description |
|-----------|----------|-------------|
| predictions_json | Yes | Path to predictions JSON file |
| results_dir | Yes | Output directory; created if it does not exist |
| videos_dir | No | Base directory for resolving relative `video_id` paths |
## Error Patterns
| Error | Cause | Fix |
|-------|-------|-----|
| `FileNotFoundError` | `predictions_json` does not exist | Check the path |
| `ValueError: must be a JSON array` | Predictions file is not a list | Wrap predictions in `[...]` |
| `ValueError: missing 'gt'/'response'/'video_id'` | A prediction item is missing a required field | Inspect and fix the predictions JSON |
| Samples silently skipped | `response` or `gt` contains both or neither 'yes'/'no' | Check logs for warnings; inspect those samples |
Tous les fichiers
6 fichiersInstaller tao-analyze-gaps-vlm-bcq
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
git clone https://github.com/NVIDIA/skills/tree/main/skills/tao-analyze-gaps-vlm-bcq # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
