📄 ACL 2026 · Paper (PDF)
📖 Overview · 📌 Updates · 🔧 Installation · 💾 Data and Model · 🚀 Usage · 📚 Citation · 🙏 Acknowledgements · 📬 Contact
Response-G1 is a fine-tuning-free framework for streaming video understanding (SVU). It asks Video-LLMs to decide when to speak while video unfolds (proactive timing) and to answer under streaming constraints, without relying only on implicit visual evidence.
The key idea is to align accumulated video evidence with query-specific response conditions using a shared scene graph representation:
- Online Query-Guided Scene Graph Generation — from streaming clips, extract scene graphs that reflect what is visible and what matters for the query.
- Memory-Based Graph Retrieval — keep a bank of historical graphs and retrieve the most semantically relevant graphs.
- Retrieval-Augmented Trigger — inject retrieved graphs (with light temporal cues) into the Video-LLM for silence / respond decisions and downstream answers.
Grounding both evidence and conditions in graphs yields more interpretable and more accurate response timing, as reported on standard SVU benchmarks (see the paper for full results).
- ✅ April 6, 2026 — Response-G1 accepted to ACL 2026.
- ✅ May 26, 2026 — Official evaluation code released in this repository.
We recommend Python 3.10+ and a CUDA environment suitable for Qwen3-VL.
# Example: create a conda env and install core deps
conda create -n response-g1 python=3.10 -y
conda activate response-g1
pip install -r requirements.txtThis repo’s scripts expect benchmark-specific assets:
| Benchmark | Role in this repo | Typical layout |
|---|---|---|
| StreamingBench | Proactive / reactive streaming QA | Task CSVs + per-sample video.mp4 under a root folder |
| OVO-Bench | Streaming video understanding (e.g., CRR proactive, mixed reactive tasks) | ovo_bench_new.json + src_videos/ |
Download the benchmarks from their official releases, then pass all paths on the command line (there are no machine-specific path globals in the runners):
--ckpt_path— local Hugging Face–style folder for Qwen3-VL weights--task_csv— StreamingBench annotation CSV (reactive / proactive scripts)--task_jsonor--task_csv— same path toovo_bench_new.jsonfor OVO-Bench scripts (--task_csvis kept as an alias only)--video_dir— root directory of benchmark videos--result_dir— run root: each job writeslog/,output/*.jsonl, anddrop/under this directory
Export CUDA_VISIBLE_DEVICES before launch to pick a GPU. If it is unset, each runner defaults it to 0 (see the top of the eval_*.py scripts).
python eval_streamingbench_proactive.py \
--ckpt_path /path/to/Qwen3-VL-8B-Instruct \
--task_csv /path/to/Proactive_Output.csv \
--video_dir /path/to/StreamingBench_PO \
--result_dir ./runs/streamingbench_proactiveCommon optional flags: --run_name, --fps, --frame_interval, --tolerance_time, --sg_generation_interval, --sg_force_first_frame / --no-sg_force_first_frame, --min_pixels / --max_pixels, --min_frames / --max_frames. Run python eval_streamingbench_proactive.py --help for the full list.
python eval_streamingbench_reactive.py \
--ckpt_path /path/to/Qwen3-VL-8B-Instruct \
--task_csv /path/to/Real_Time_Visual_Understanding.csv \
--video_dir /path/to/StreamingBench_videos \
--result_dir ./runs/streamingbench_reactivepython eval_ovobench_proactive.py \
--ckpt_path /path/to/Qwen3-VL-8B-Instruct \
--task_json /path/to/ovo_bench_new.json \
--video_dir /path/to/OVO-Bench/src_videos \
--result_dir ./runs/ovobench_proactive(--task_csv is accepted as an alias for --task_json.) Other knobs (pixels, frames, scene-graph switches) are listed in python eval_ovobench_proactive.py --help.
python eval_ovobench_reactive.py \
--ckpt_path /path/to/Qwen3-VL-8B-Instruct \
--task_json /path/to/ovo_bench_new.json \
--video_dir /path/to/OVO-Bench/src_videos \
--result_dir ./runs/ovobench_reactivepython eval_streaming_results.py --result_file ./runs/.../your_run.jsonl --output_file ./runs/.../metrics.json
python eval_ovo_results.py --result_file ./runs/.../your_run.jsonlIf you find this work useful, please cite:
@inproceedings{ma2026responseg1,
title = {{Response-G1}: Explicit Scene Graph Modeling for Proactive Streaming Video Understanding},
author = {Ma, Ke and Tang, Jiaqi and Guo, Bin and Han, Xueting and Xu, Ruonan and He, Qingfeng and Wang, Ziheng and Wang, Xu and Chen, Qifeng and Yu, Zhiwen and Liu, Yunhao},
booktitle = {Proceedings of the Association for Computational Linguistics},
year = {2026}
}This repo is built upon:
We sincerely thank the authors for the open-source work.
If you encounter any problems or have questions, feel free to reach out:
