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
|