#!/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 < ${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