Downloads · 30 days
0
Zevin2023/czw2026_Track1_FinalPhase_Submission
czw2026_Track1_FinalPhase_Submission is a machine learning model from Zevin2023. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
以下路径均以当前目录 ./czw2026Track1FinalPhaseSubmission 为基准。先进入 czw2026Track1FinalPhaseSubmission 再执行命令:
Downloads · 30 days
0
Access
Public
Updated Mar 20, 2026
Repo size
56.6 GB
Likes
0
Public
Click a slice to open those files.
.safetensors52.6 GB · 93%
From the Hugging Face model README
以下路径均以当前目录 ./czw2026_Track1_FinalPhase_Submission 为基准。先进入 czw2026_Track1_FinalPhase_Submission 再执行命令:
cd ./czw2026_Track1_FinalPhase_Submission
conda create -n IQA python=3.10.19 -y
conda activate IQA
cd ms-swift
chmod u+x ./requirements/install_all.sh
./requirements/install_all.sh
pip install -e .
cd ..
# Phase2
bash ./scripts/infer_phase_2.sh
# Phase3
bash ./scripts/infer_phase_3.sh
脚本会进行:
./Checkpoints/MOE_1、./Checkpoints/MOE_2、./Checkpoints/MOE_3,通过一个投票系统,将这三个专家模型的预测结果进行集成,以达到更好、更鲁棒的结果./Datas/val_infer_1536_split_zoom_images.jsonl 和 ./Datas/final_infer_1536_split_zoom_images.jsonl./Output/Phase_2/raw 和 ./Output/Phase_3/raw./Output/Phase_2/predictions_MOE_*.jsonl 和 ./Output/Phase_3/predictions_MOE_*.jsonl./Output/Phase_2/predictions.jsonl 和 ./Output/Phase_3/predictions.jsonl在系统上提交,结果大致为:
| Phase | Final Score | Accuracy |
|---|---|---|
| Phase2 | 0.649 | 0.8627 |
| Phase3 | 0.5311 | 0.703 |
算力设备:8卡 NVIDIA A800-SXM4-40GB
训练数据集处理
| 原始detailed图 | 切割后image A | 切割后image B |
|---|---|---|
![]() | ![]() | ![]() |
基于官方提供的训练集的标注数据,我们将图片路径替换成上述切割后的图片路径,得到基础训练数据集(./Datas/train_sft_abs_split_zoom_images.jsonl)
基于GT,对训练的Instruction-Response进行扩充
<think>...<\think><answer>yes/no<\answer>[p_000_merged_c0.png, p_000_merged_c1.png] -> [p_000_merged_c1.png, p_000_merged_c0.png]<think>Image A shows xxx. Image B shows ppp.<\think><answer>Image A<\answer> -> <think>Image A shows ppp. Image A shows xxx<\think><answer>Image B<\answer>./Datas/train_sft_abs_split_zoom_images.jsonlInstruction-Response扩充的SFT数据集(More Question)./Datas/train_sft_abs_split_aug_more_ques_zoom_images.jsonl./Datas/train_grpo_1536_split_zoom_images.jsonlInstruction-Response扩充的GRPO数据集(Swaping)./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonl采用五阶段训练:SFT->GRPO->GRPO->SFT->GRPO
训练前权重下载: Qwen3-VL-8B,保存路径为:./Qwen3-VL-8B-Instruct
pip install modelscope
modelscope Qwen/Qwen3-VL-8B-Instruct --local-dir ./Qwen3-VL-8B-Instruct
或者
pip install huggingface_hub
HF_ENDPOINT=https://hf-mirror.com hf download Qwen/Qwen3-VL-8B-Instruct --local-dir ./Qwen3-VL-8B-Instruct
STAGE1: SFT
lora_rank = 128
lora_alpha = 256
num_train_epochs = 30
per_device_train_batch_size = 4
gradient_accumulation_steps = 8
learning_rate = 1e-4
Instruction-Response增强后的数据进行训练:./Datas/train_sft_abs_split_aug_more_ques_zoom_images.jsonlbash ./scripts/train/STAGE1.shbash ./scripts/merge/MERGE_STAGE1.sh进行权重merge,该阶段模型权重保存在:./EXP/STAGE1_FULLSTAGE2: GRPO
./EXP/STAGE1_FULL),进行GRPO的Post Training,以提升模型对该任务的探索和理解能力num_train_epochs = 10
per_device_train_batch_size = 2
gradient_accumulation_steps = 2
learning_rate = 1e-6
temperature = 0.9
./Datas/train_grpo_1536_split_zoom_images.jsonlbash ./scripts/train/STAGE2.sh./EXP/STAGE2_FULL/v*-xxxxxxxx-xxxxxx/checkpoint-20STAGE3: GRPO AGAIN
./EXP/STAGE2_FULL/v*-xxxxxxxx-xxxxxx/checkpoint-20),进行GRPO的Post Training./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonl,以及更小的学习率,尝试让模型在保留当前能力的同时,获得探索其他边界的能力num_train_epochs = 10
per_device_train_batch_size = 2
gradient_accumulation_steps = 2
learning_rate = 0.5e-6
temperature = 0.9
./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonlbash ./scripts/train/STAGE3.sh./EXP/STAGE3_FULL/v*-xxxxxxxx-xxxxxx/checkpoint-30STAGE4: FINAL SFT
./EXP/STAGE3_FULL/v*-xxxxxxxx-xxxxxx/checkpoint-30),再次进行SFTlora_rank = 128
lora_alpha = 256
num_train_epochs = 50
per_device_train_batch_size = 4
gradient_accumulation_steps = 8
learning_rate = 1e-5
./Datas/train_sft_abs_split_aug_more_ques_zoom_images.jsonlbash ./scripts/train/STAGE4.shbash ./scripts/merge/MERGE_STAGE4.sh进行权重merge,该阶段模型权重保存在:./EXP/STAGE4_FULLSTAGE5: FINAL GRPO
./EXP/STAGE4_FULL),再次进行SFTnum_train_epochs = 10
num_generations = 8
reward_weights = 1.5 0.5
per_device_train_batch_size = 2
gradient_accumulation_steps = 2
learning_rate = 0.5e-6
temperature = 1.0
./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonlbash ./scripts/train/STAGE5.sh./EXP/STAGE5_FULL/v*-xxxxxxxx-xxxxxx/checkpoint-10我们通过将STAGE1、STAGE2、STAGE3、STAGE4和STAGE5训练得到的专家模型进行排列组合,发现由STAGE1、STAGE2和STAGE5组成的MOE系统,性能最好最鲁棒,Phase 2 ACC为:0.86 (88/102)
各阶段训练结果总结
| 训练阶段 | 训练方式 | 训练数据 | 较上一阶段变化 | Phase2 准确率 | 是否选为专家模型 |
|---|---|---|---|---|---|
| STAGE1 | SFT | ./Datas/train_sft_abs_split_aug_more_ques_zoom_images.jsonl | -- | 0.74 (75/102) | $\checkmark$ |
| STAGE2 | GRPO | ./Datas/train_grpo_1536_split_zoom_images.jsonl | 采用GRPO后训练 | 0.77 (79/102) | $\checkmark$ |
| STAGE3 | GRPO | ./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonl | 采用数据增强的GRPO数据集训练 | 0.79 (81/102) | |
| STAGE4 | SFT | ./Datas/train_sft_abs_split_aug_more_ques_zoom_images.jsonl | 重新进行SFT微调 | 0.81 (83/102) | |
| STAGE5 | GRPO | ./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonl | 采用数据增强的GRPO数据集训练 | 0.84 (86/102) | $\checkmark$ |
| MOE | -- | -- | 多专家集成 | 0.86 (88/102) |
当前提交目录的主要结构如下:
./czw2026_Track1_FinalPhase_Submission
├── Checkpoints
│ ├── MOE_1
│ ├── MOE_2
│ └── MOE_3
├── Datas
│ ├── Tools
│ │ └── split_tool.py
│ ├── Train
│ │ ├── images
│ │ └── images-split-zoom
│ ├── Validation
│ │ ├── images
│ │ └── images-split-zoom
│ ├── Final
│ │ ├── images
│ │ └── images-split-zoom
│ ├── train_sft_abs_split_zoom_images.jsonl
│ ├── train_sft_abs_split_aug_more_ques.jsonl
│ ├── train_grpo_1536_split_zoom_images.jsonl
│ ├── train_grpo_1536_split_zoom_images_aug_swap.jsonl
│ ├── val_infer_1536_split_zoom_images.jsonl
│ └── final_infer_1536_split_zoom_images.jsonl
├── Output
│ ├── Phase_2
│ └── Phase_3
├── ms-swift
├── plugins
│ └── reward_funcs.py
├── scripts
│ ├── infer_phase_2.sh
│ └── infer_phase_3.sh
└── tools
├── make_submission.py
└── vote_merge.py
各部分作用如下:
./Checkpoints/MOE_1、./Checkpoints/MOE_2、./Checkpoints/MOE_3:三个用于集成推理的模型权重目录。./Datas:训练、验证、测试数据,以及对应的 jsonl 描述文件。./Datas/Tools/split_tool.py:将原始拼接图切分为左右两张图,并输出到 images-split-zoom。./scripts/infer_phase_3.sh:最终推理脚本。./tools/make_submission.py:将单模型推理结果转换为提交格式。./tools/vote_merge.py:对多个模型的预测结果做投票融合。./Output/Phase_2和./Output/Phase_3:保存推理和融合后的输出结果。./Datas 中按数据划分组织如下:
./Datas/Train/images:训练集原始图片。./Datas/Validation/images:验证集原始图片。./Datas/Final/images:测试集原始图片。./Datas/Train/images-split-zoom:训练集切分后的图片。./Datas/Validation/images-split-zoom:验证集切分后的图片。./Datas/Final/images-split-zoom:测试集切分后的图片。对应的 jsonl 文件位于 ./Datas 根目录:
./Datas/train_sft_abs_split_zoom_images.jsonl:SFT 训练数据./Datas/train_sft_abs_split_aug_more_ques.jsonl:SFT 增强训练数据./Datas/train_grpo_1536_split_zoom_images.jsonl:GRPO 训练数据./Datas/train_grpo_1536_split_zoom_images_aug_swap.jsonl:GRPO 增强训练数据./Datas/val_infer_1536_split_zoom_images.jsonl:验证集推理数据./Datas/final_infer_1536_split_zoom_images.jsonl:测试集推理数据images-split-zoom运行 ./Datas/Tools/split_tool.py,分别处理 Train、Validation 和 Final 三个目录下的原始图片:
python ./Datas/Tools/split_tool.py ./Datas/Train/images
python ./Datas/Tools/split_tool.py ./Datas/Validation/images
python ./Datas/Tools/split_tool.py ./Datas/Final/images
脚本会在每个 images 目录同级自动生成对应的 images-split-zoom 目录,即:
./Datas/Train/images-split-zoom./Datas/Validation/images-split-zoom./Datas/Final/images-split-zoom