File size: 2,926 Bytes
01cf98b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/bin/bash
# Qwen3-VL reranker 评测 - Nebula 提交(评测参数直接在本文件配置)
# Usage: sh scripts/submit/submit_eval_qwen3vl.sh
# 远程机器上 OSS 挂载在 /data/oss_bucket_0/,模型/数据/输出都直接走该路径
# entry 直接指向评测脚本,nebula 每卡拉起一个进程,脚本内部按 rank 切分数据,
# 每个进程使用 Transformers 原生推理,rank0 汇总所有分片指标和 eval loss

## 集群资源配置(gpu:200 表示 2 张卡)
CLUSTER_CONFIG='./cluster.json'
cat <<EOT > ${CLUSTER_CONFIG}
{
    "worker": {
        "gpu": 200,
        "cpu": 2400,
        "memory": 100000
    }
}
EOT
WORKER_COUNT=1

## ============ 模型设置 ============
## 全量 checkpoint 无需 BASE_MODEL;LoRA checkpoint 才需要填写底座路径
MODEL_PATH=/data/oss_bucket_0/liqi/cot_reranker/baseline/checkpoint-100
BASE_MODEL=/data/oss_bucket_0/liqi/models/Qwen3-VL-2B-Instruct

## ============ 数据集设置 ============
EVAL_DATA_PATH=/data/oss_bucket_0/liqi/dataset/reranker/test.jsonl
FORMAT_PROMPT=format_prompt/listwise_reranker_v1.jinja
## 单图模式用 --no-full-crop-mode,双图模式用 --full-crop-mode
FULL_CROP_FLAG=--no-full-crop-mode
MAX_CROP_TOKENS=80
MAX_FULL_TOKENS=20

## ============ 保存设置 ============
RUN_ID=qwen3-vl-2b-reranker-baseline-eval
OUTPUT_DIR=/data/oss_bucket_0/liqi/cot_reranker/baseline/eval_results/${RUN_ID}

## ============ 拼装评测参数(user_params 会原样传给 entry 评测脚本) ============
args="\
    --model-path $MODEL_PATH \
    --eval-data $EVAL_DATA_PATH \
    --format-prompt $FORMAT_PROMPT \
    --output-dir $OUTPUT_DIR \
    $FULL_CROP_FLAG \
    --max-crop-tokens $MAX_CROP_TOKENS \
    --max-full-tokens $MAX_FULL_TOKENS \
    --num-docs 10 \
    --batch-size 2 \
    --loss-batch-size 4 \
    --dataloader-num-workers 8 \
    --model-max-length 8192 \
    --use-flash-attn"

if [ -n "$BASE_MODEL" ]; then
    args="$args --base-model $BASE_MODEL"
fi

nebulactl run mdl \
          --engine=xdl \
          --ignore=venv/*,data/*,.git/* \
          --job_name=${RUN_ID} \
          --queue="pailitao_algo_high_2" \
          --entry="eval/eval_reranker_qwen3vl.py" \
          --nebula_project=pailitao_v100 \
          --algo_name=pytorch280 \
          --worker_count=${WORKER_COUNT} \
          --file.cluster_file="./cluster.json" \
          --user_params="$args" \
          --nas_file_system_id=98d384a407-okl3.cn-zhangjiakou.nas.aliyuncs.com \
          --oss_access_id=LTAI5tMZb5HHH6HHgAExAyiL \
          --oss_access_key=6MVP8JnTE01t4TLUHhPoFV0swZNTrb \
          --oss_bucket=pailitao-ai \
          --oss_endpoint=oss-cn-zhangjiakou.aliyuncs.com \
          --requirements_file_name=requirements_qwen3vl.txt

rm ${CLUSTER_CONFIG}
# 卡数由 cluster.json 的 gpu 决定(200 = 2 卡),评测数据会按进程数均分
# 结果只由 rank0 写入 OUTPUT_DIR/eval_results.json