| --- |
| 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 |
| β βββ <forensics_grpo top-level *.py> # evaluate*.py, verifier_*.py, etc. |
| β βββ dl_explicit.py, dl_retry.sh # data-download helpers |
| β |
| βββ eval_results/ # Evaluation outputs (34 runs, 553 files) |
| β βββ eval_<run>_ckpt<N>/ ... |
| β |
| βββ 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 |
| ``` |
| |