Repository navigation
[Benchmark] Add E.T. Bench for event-level time-sensitive video understanding - #1772
aliasgerovs wants to merge 3 commits into
Conversation
…standing Adds E.T. Bench (PolyU-ChenLab/ETBench): 7,289 samples in 12 tasks (referring, grounding, dense captioning and complex understanding), plus the official 470-sample subset. Answers are scored with the rules of the official evaluation script and reported as the 14 headline numbers of the paper.
|
@ssiq @TianhaoLiang2000 Could you review this when you have a moment? It adds E.T. Bench (12 tasks, plus the official 470-sample subset), and the scoring gives exactly the same numbers as the official compute_metrics.py on the reference run. Thanks! |
# Conflicts: # tests/fixtures/predefined_video_shortcuts_manifest.json # vlmeval/dataset/__init__.py # vlmeval/dataset/video_dataset_config.py
|
Thanks for the additional results. Qwen3-VL-8B is not included in the official E.T. Bench report, so I cannot verify whether the scores reported in this PR align with the official results. Could you provide results for a model that is already included in the official report, evaluated using the same benchmark protocol? That would give us a verifiable reference point and allow us to confirm whether this integration reproduces the official scores. |
|
@ssiq Thanks, that makes sense. I added E.T. Chat, the model from the E.T. Bench paper, in #1815, using its official code, weights and inference settings, and ran it end to end with this PR's data and scoring:
On the full set the 14 numbers are on average 1.0 point from the paper, and the averages of the five groups are all within 0.7 points. E.T. Chat samples its answers (temperature 0.2, as in the official script), so two runs differ a little; the largest gaps are ECA +3.0 and EVS -2.3. The subset numbers come from the same answers, but with only about 40 samples per task they move more. E.T. Chat reads timestamps as special tokens, so it needs the benchmark's second official prompt style ( |
What this adds
This PR adds E.T. Bench (Liu et al., NeurIPS 2024), a benchmark for event-level, time-sensitive video understanding. It has 7,289 samples in 12 tasks over 7K videos (251 hours, 8 domains), grouped into four abilities:
There is also
ETBench-Subset, the official 470-sample subset that the paper uses for commercial models.Data: https://huggingface.co/datasets/PolyU-ChenLab/ETBench (CC BY-NC-SA 4.0).
How it works
LMUData/ETBench.evaluation/compute_metrics.py). The result has the 14 numbers of the paper's main table, the five averages (referring accuracy, grounding F1, captioning F1 and similarity, complex recall), and the details for every task and source.all-MiniLM-L6-v2. Captions are PTB-tokenized with pycocoevalcap when it is installed (it needs Java), and with a simple tokenizer otherwise.summe/cooking.mp4, has broken timestamps: decord cannot seek in it, so loading it fails (and the torchvision fallback in qwen-vl-utils fails too with recent PyAV). It is re-encoded once after extraction with PyAV, frame for frame at the same frame rate, and the original is kept next to it. I checked all 7,002 videos with decord and this is the only one.etbench_vid_v1.0.json) for models that read timestamps as special tokens, such as the paper's E.T. Chat: timestamps in the prompt are written as<vid>tokens and their values are given separately. The_vidpresets use these prompts; the text item then also carries the values (src) and the task. For ECA the two files write the options differently ("13.7 - 16.8 seconds" or "13.7 - 16.8"), and the official scorer compares answers with the option texts when the letter is wrong or missing, so the_vidpresets are scored with that file's options, as the official script would.ETBench_1fps,ETBench_2fps,ETBench-Subset_1fps,ETBench-Subset_2fps, andETBench_1fps_vid,ETBench-Subset_1fps_vid.Check against the official script
The official script is under CC BY-NC-SA, so the scoring is written fresh following its rules. To check it, I generated an answer for every one of the 7,289 samples in all the formats the official parser handles (with noise in the times, wrong options, shuffled captions, and some unreadable answers) and scored them with both. All 20 task/source results are identical: accuracy, F1, recall, mIoU, the number of unreadable answers, and the caption similarity when both use the same seed for the random strings. Unit tests are in
tests/test_etbench_metrics.py.Reference result
Qwen3-VL-8B-Instruct on
ETBench_1fps, with the same model settings as #1715 (64 to 14,336 visual tokens, greedy, up to 1,024 new tokens):The five averages are 59.7 (referring accuracy), 35.9 (grounding F1), 28.6 / 16.4 (captioning F1 / similarity) and 15.0 (complex recall). All but 2 of the 7,289 answers could be read. For context, the paper's best open model, E.T. Chat, has 44.6 / 37.0 / 33.6 on RAR / ECA / RVQ, 38.6 TVG F1 and 62.5 VHD F1. The newer Qwen3-VL-8B is clearly ahead on referring and sentence grounding, but still weak on episodic memory (EPM) and grounded question answering (GVQ), as in the paper.
Scoring these Qwen3-VL-8B answers with the official
compute_metrics.pygives exactly the same numbers for all 20 task/source results, including the 2 unreadable answers.Check with a model from the paper
E.T. Chat, the model of the E.T. Bench paper, added in #1815 with the official inference settings, run end to end on
ETBench_1fps_vidand compared with the paper's Table 1:On the full set the 14 numbers are on average 1.0 point from the paper, and the averages of the five groups are all within 0.7 points. E.T. Chat samples its answers (temperature 0.2, as in the official script), so two runs differ a little; the largest gaps are ECA +3.0 and EVS -2.3 (with the text-style option list ECA would be 37.6). The subset numbers come from the same answers; with only about 40 samples per task, they move more.
Checks
pytest tests/test_etbench_metrics.py: 16 passed (parsing, every scoring rule, end-to-end scoring, the video repair, both prompt styles).pytest tests/test_dataset_alias.py: 29 passed (the new datasets are in the shortcut manifest).