File size: 3,539 Bytes
0dd9a1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# ================================================================
# DM-GRPO Final Evaluation Launcher
# ================================================================
# Usage:
#   bash run_eval.sh                          # Run all models in the list
#   bash run_eval.sh --gpus 0,1,2,3           # Specify GPUs
#   bash run_eval.sh --benchmarks tempcompass  # Specify benchmarks
#   tmux new-session -d -s final_eval "bash /root/zwj/DM-GRPO/Eval/run_eval.sh --gpus 0,1,2,3"
# To add a new model: append to MODELS array below.
# Format: "model_path|file_name|nframes|rep_penalty"
# ================================================================

set -e
source /root/miniconda3/etc/profile.d/conda.sh
conda activate Video-R1

export DECORD_EOF_RETRY_MAX=20480

# ========================== Configuration ==========================
# Format: "model_path|file_name|nframes|rep_penalty"
# nframes: 16 or 32 (set to match training)
# rep_penalty: 1.0 (greedy) or 1.1 (with penalty)
MODELS=(
    # --- Add models here ---
    # "/root/zwj/Model/Qwen2.5-VL-7B-Instruct|Qwen2.5-VL-7B-Instruct-32f-1.0|32|1.0"
    # "/root/zwj/Model/Qwen2.5-VL-7B-Instruct|Qwen2.5-VL-7B-Instruct-32f-1.1|32|1.1"
    # "/root/zwj/Video-R1/src/r1-v/log/DeltaMask-GRPO-v5_SFT-v9-16f_ts-reward|DM-GRPO-v5_SFT-v9-16f_rep1.1|32|1.1"
    # "/root/zwj/Video-R1/src/r1-v/log/DeltaMask-GRPO-v4_SFT-v9-32f_ts-reward|DM-GRPO-v4_SFT-v9-32f_rep1.1|32|1.1"
    "/root/zwj/Model/SFT/Qwen2.5-VL-7B-Video-CoT-SFT-v5-same-speed-32f|SFT-v5-same-speed-32f_rep1.0|32|1.0"
    # "/root/zwj/Model/SFT/Qwen2.5-VL-7B-Video-CoT-SFT-v5-same-speed-32f|SFT-v5-same-speed-32f_rep1.1|32|1.1"
)

# Defaults (override via CLI args)
GPUS="${GPUS:-0,1,2,3}"
BENCHMARKS="${BENCHMARKS:-tempcompass}"
BSZ="${BSZ:-64}"
MAX_TOKENS="${MAX_TOKENS:-4096}"
MAX_MODEL_LEN="${MAX_MODEL_LEN:-16384}"
GPU_MEM="${GPU_MEM:-0.8}"

# ========================== Parse CLI args ==========================
while [[ $# -gt 0 ]]; do
    case $1 in
        --gpus) GPUS="$2"; shift 2;;
        --benchmarks) BENCHMARKS="$2"; shift 2;;
        --bsz) BSZ="$2"; shift 2;;
        --max_tokens) MAX_TOKENS="$2"; shift 2;;
        *) echo "Unknown arg: $1"; exit 1;;
    esac
done

export CUDA_VISIBLE_DEVICES="$GPUS"

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# ========================== Run ==========================
if [ ${#MODELS[@]} -eq 0 ]; then
    echo "ERROR: No models configured. Edit MODELS array in this script."
    exit 1
fi

for entry in "${MODELS[@]}"; do
    IFS='|' read -r MODEL_PATH FILE_NAME NFRAMES REP_PENALTY <<< "$entry"

    echo ""
    echo "============================================================"
    echo "  Model:        $MODEL_PATH"
    echo "  File name:    $FILE_NAME"
    echo "  Frames:       $NFRAMES"
    echo "  rep_penalty:  $REP_PENALTY"
    echo "  Benchmarks:   $BENCHMARKS"
    echo "  GPUs:         $GPUS"
    echo "============================================================"

    NFRAMES_ARG=""
    if [ -n "$NFRAMES" ] && [ "$NFRAMES" != "none" ]; then
        NFRAMES_ARG="--nframes $NFRAMES"
    fi

    python "$SCRIPT_DIR/eval.py" \
        --model_path "$MODEL_PATH" \
        --file_name "$FILE_NAME" \
        --benchmarks $BENCHMARKS \
        --bsz "$BSZ" \
        --max_tokens "$MAX_TOKENS" \
        --max_model_len "$MAX_MODEL_LEN" \
        --gpu_memory_utilization "$GPU_MEM" \
        --repetition_penalty "$REP_PENALTY" \
        $NFRAMES_ARG

    echo "Done: $FILE_NAME"
done

echo ""
echo "All evaluations complete."