--- license: apache-2.0 base_model: Qwen/Qwen2.5-VL-7B-Instruct tags: - video - forensics - grpo - temporal-grounding pipeline_tag: video-text-to-text --- # forensics-grpo GRPO-trained video-forgery / temporal-forensics models, fine-tuned from [Qwen/Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct), plus all training code, evaluation outputs and a baseline (TempSamp-R1). Companion dataset (videos + annotations): 👉 [sdzt/forensics-grpo-data](https://huggingface.co/datasets/sdzt/forensics-grpo-data) --- ## 📂 Repository layout ``` forensics-grpo/ ├── v10_r2/ # ★ Main model │ ├── model-0000{1..4}-of-00004.safetensors # final weights (~16 GB) │ ├── tokenizer / config files │ └── checkpoint-{240,270,480,510,720,750,780,930,956}/ # 9 intermediate checkpoints │ ├── ab_noAug/ # Ablation — no augmentation │ ├── final weights │ └── checkpoint-956/ │ ├── ab_noHung/ # Ablation — no Hungarian matching │ ├── final weights │ └── checkpoint-956/ │ ├── baselines/ │ └── tempsamp_r1/ # TempSamp-R1 baseline (weights) │ ├── TempSampR1_nocot_forensics_7B_8gpu_4ep/ │ │ ├── final weights + checkpoint-{240,480,720,956}/ │ └── TempSampR1_single_span_forensics_7B_8gpu_4ep/ │ └── final weights + checkpoint-{290,580,870,1160}/ │ ├── code/ # All source code (172 files) │ ├── src/ scripts/ # forensics_grpo training / pipeline code │ ├── time_r1/ tempsamp_r1/ # baseline code │ ├── libs/ train.py # activityforensics code │ ├── # evaluate*.py, verifier_*.py, etc. │ └── dl_explicit.py, dl_retry.sh # data-download helpers │ ├── eval_results/ # Evaluation outputs (34 runs, 553 files) │ └── eval__ckpt/ ... │ └── README.md ``` ### What lives where | Path | Contents | Size | |------|----------|------| | `v10_r2/` | Main model: final weights + 9 checkpoints | ~155 GB | | `ab_noAug/` | Ablation (no aug): final + ckpt-956 | ~31 GB | | `ab_noHung/` | Ablation (no Hungarian): final + ckpt-956 | ~31 GB | | `baselines/tempsamp_r1/` | TempSamp-R1: 2 runs × (final + 4 ckpts) | ~155 GB | | `code/` | Full training + eval source code | < 50 MB | | `eval_results/` | Per-run evaluation outputs | ~19 MB | > Each model folder holds 4-shard `model-0000x-of-00004.safetensors` weights plus > tokenizer / processor config. `checkpoint-*` folders are weight snapshots only > (no optimizer state). --- ## 🚀 Usage Load the main model (final weights): ```python from transformers import AutoModelForImageTextToText, AutoProcessor model = AutoModelForImageTextToText.from_pretrained("sdzt/forensics-grpo", subfolder="v10_r2") processor = AutoProcessor.from_pretrained("sdzt/forensics-grpo", subfolder="v10_r2") ``` Load a specific checkpoint or ablation: ```python # intermediate checkpoint model = AutoModelForImageTextToText.from_pretrained( "sdzt/forensics-grpo", subfolder="v10_r2/checkpoint-510") # ablation model = AutoModelForImageTextToText.from_pretrained( "sdzt/forensics-grpo", subfolder="ab_noAug") ``` Download just one folder: ```bash hf download sdzt/forensics-grpo --include "v10_r2/*" --local-dir ./forensics-grpo ```