Download code/rerank_ins/scripts/submit/submit_train_qwen3vl_cot.sh from WaitXian/liqi: direct link, hf CLI and curl.
- Browser
- Download file 4.72 kB
-
https://huggingface.co/WaitXian/liqi/resolve/main/code/rerank_ins/scripts/submit/submit_train_qwen3vl_cot.sh
- Command line
-
hf download hf://WaitXian/liqi/code/rerank_ins/scripts/submit/submit_train_qwen3vl_cot.sh
-
curl -L -o submit_train_qwen3vl_cot.sh https://huggingface.co/WaitXian/liqi/resolve/main/code/rerank_ins/scripts/submit/submit_train_qwen3vl_cot.sh
4.72 kB
| # Qwen3-VL CoT reranker 训练 - Nebula 提交(训练参数直接在本文件配置) | |
| # Usage: sh scripts/submit/submit_train_qwen3vl_cot.sh | |
| # 远程机器上 OSS 挂载在 /data/oss_bucket_0/,模型/数据/输出都直接走该路径 | |
| ## 集群资源配置(每个 worker = 8 卡;gpu:800 表示 8 张卡) | |
| CLUSTER_CONFIG='./cluster.json' | |
| cat <<EOT > ${CLUSTER_CONFIG} | |
| { | |
| "worker": { | |
| "gpu": 800, | |
| "cpu": 9600, | |
| "memory": 400000 | |
| } | |
| } | |
| EOT | |
| WORKER_COUNT=2 | |
| NPROC_PER_NODE=8 | |
| ## ============ 模型设置 ============ | |
| MODEL_ID=qwen3-vl-2b | |
| MODEL_LOCAL_PATH=/data/oss_bucket_0/liqi/models/Qwen3-VL-2B-Instruct | |
| ## 换 8B 时改成(需确认该路径已在 OSS 上): | |
| # MODEL_ID=qwen3-vl-8b | |
| # MODEL_LOCAL_PATH=/data/oss_bucket_0/liqi/models/Qwen3-VL-8B-Instruct | |
| ## ============ 数据集设置(cot_gen 生成并合并后的 CoT 数据) ============ | |
| TRAIN_DATA_PATH=/data/oss_bucket_0/liqi/dataset/reranker/train_cot.jsonl | |
| EVAL_DATA_PATH=/data/oss_bucket_0/liqi/dataset/reranker/eval_cot.jsonl | |
| NUM_TRAIN_DOCS=10 | |
| FULL_CROP_MODE=False | |
| FORMAT_PROMPT=train_cot/listwise_cot_reranker_v1.jinja | |
| ## ============ 训练参数设置 ============ | |
| ### 视觉部分 | |
| TRAIN_VISION_ENCODER=False | |
| USE_VISION_LORA=False | |
| TRAIN_VISION_PROJECTOR=False | |
| ### LoRA(USE_LORA=False 走全参数微调) | |
| USE_LORA=True | |
| Q_LORA=False | |
| LORA_R=128 | |
| LORA_ALPHA=256 | |
| ### DS 和基本训练参数 | |
| DS_STAGE=zero2 | |
| PER_DEVICE_BATCH_SIZE=4 | |
| GRAD_ACCUM=2 | |
| NUM_EPOCHS=10 | |
| LR=5e-5 | |
| MODEL_MAX_LEN=10240 | |
| SAVE_STEPS=50 | |
| ## 自定义 CoT 评测(生成式)触发间隔,走 train_reranker_qwen3vl_cot.py 里的 CustomCallback | |
| EVAL_STEPS=50 | |
| ## ============ 保存设置 ============ | |
| RUN_ID=${MODEL_ID}-cot-reranker_lora_${USE_LORA} | |
| OUTPUT_DIR=/data/oss_bucket_0/liqi/cot_reranker/cot_sft/${RUN_ID} | |
| ## ============ wandb 设置 ============ | |
| ## WANDB_API_KEY / WANDB_PROJECT / WANDB_MODE 在 train_cot/train_reranker_qwen3vl_cot.py 开头通过环境变量默认值配置 | |
| ## ============ 拼装启动与训练参数(由 entry 使用 torchrun 拉起每节点 8 个进程) ============ | |
| args="\ | |
| --training_script train_cot/train_reranker_qwen3vl_cot.py \ | |
| --nnodes $WORKER_COUNT \ | |
| --nproc_per_node $NPROC_PER_NODE \ | |
| --model_id $MODEL_ID \ | |
| --output_dir $OUTPUT_DIR \ | |
| --report_to wandb \ | |
| --run_name $RUN_ID \ | |
| --deepspeed ./ds_configs/${DS_STAGE}.json \ | |
| --bf16 True \ | |
| --num_train_epochs $NUM_EPOCHS \ | |
| --per_device_train_batch_size $PER_DEVICE_BATCH_SIZE \ | |
| --per_device_eval_batch_size 4 \ | |
| --gradient_accumulation_steps $GRAD_ACCUM \ | |
| --eval_strategy no \ | |
| --eval_steps $EVAL_STEPS \ | |
| --eval_accumulation_steps 4 \ | |
| --save_strategy epoch \ | |
| --save_steps $SAVE_STEPS \ | |
| --save_total_limit 500 \ | |
| --learning_rate ${LR} \ | |
| --weight_decay 0. \ | |
| --warmup_ratio 0.03 \ | |
| --lr_scheduler_type cosine \ | |
| --logging_steps 1 \ | |
| --tf32 True \ | |
| --model_max_length $MODEL_MAX_LEN \ | |
| --gradient_checkpointing True \ | |
| --dataloader_num_workers 8 \ | |
| --train_vision_encoder $TRAIN_VISION_ENCODER \ | |
| --use_vision_lora $USE_VISION_LORA \ | |
| --train_vision_projector $TRAIN_VISION_PROJECTOR \ | |
| --use_lora $USE_LORA \ | |
| --q_lora $Q_LORA \ | |
| --lora_r $LORA_R \ | |
| --lora_alpha $LORA_ALPHA \ | |
| --model_local_path $MODEL_LOCAL_PATH \ | |
| --train_data_path $TRAIN_DATA_PATH \ | |
| --eval_data_path $EVAL_DATA_PATH \ | |
| --use_flash_attn True \ | |
| --format_prompt $FORMAT_PROMPT \ | |
| --num_train_docs $NUM_TRAIN_DOCS \ | |
| --full_crop_mode $FULL_CROP_MODE \ | |
| --max_full_tokens 20 \ | |
| --max_crop_tokens 80" | |
| nebulactl run mdl \ | |
| --engine=xdl \ | |
| --ignore=venv/*,data/*,.git/*,cot_data/* \ | |
| --job_name=${RUN_ID} \ | |
| --queue="pailitao_algo_high_2" \ | |
| --entry="scripts/entry/train_qwen3vl_entry.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} | |
| # queue是队列名,algo_name由队列所决定 | |
| # nebula_project是集群名 | |
| # entry 在每个 worker 上通过 torchrun 启动 NPROC_PER_NODE 个训练进程 | |
| # worker_count 是机器数量,每台机器的卡数由 cluster.json 的 gpu 决定(800 = 8 卡) | |
| # nas_file_system_id 和 oss是存储文件的地址 | |