# SFT Full-Log Qwen3.5-2B V2 Server Bundle 这版不是重复上一版 SFT。 核心修补点: - 不再依赖 strong/weak 回答配对,SFT 直接用 `prompt -> chosen` - 把弱 `rule chosen` 统一重写成规范 JSON,避免短模板把模型训偏 - 默认训练集改成 `focus split`,对 `SQ3/SQ4` 和高难 `TP/FP` 做适度加权 ## 数据文件 - `data/train_sft_all.jsonl` - 2500 条,全量标准化训练集 - `data/train_sft_focus.jsonl` - v2 默认训练集 - 在全量基础上对 `SQ3/SQ4 + difficulty>=3 + TP rule cases` 做重复采样 - `data/dev_sft.jsonl` - 300 条标准化 dev 集 ## 为什么这次不需要 strong/weak 不需要。 那套是 DPO 用的。SFT 只关心一件事: - 给定 prompt,模型应该学会输出什么样的正确答案 所以 v2 直接做: - 统一 target answer 结构 - 修弱监督文本 - 重排训练分布 ## 默认模型 ```bash Qwen/Qwen3.5-2B ``` ## 默认训练命令 ```bash bash run_train.sh --gpu-count 2 --model-name Qwen/Qwen3.5-2B ``` 默认用的是: - `data/train_sft_focus.jsonl` - `data/dev_sft.jsonl` ## 可选:如果你想拿全量不加权版试验 把 `run_train.sh` 里的 `TRAIN_FILE` 改成: ```bash data/train_sft_all.jsonl ``` ## 训练前后对比 训练前 benchmark: ```powershell python eval_api.py --model Qwen/Qwen3.5-2B --api-base http://localhost:8000/v1 --api-key not-needed --temperature 0 --disable-thinking-only --output-dir results/qwen35_2b_before_sft_v2 ``` 训练后 benchmark: ```powershell python eval_api.py --model qwen35_2b_sft_v2 --api-base http://localhost:8001/v1 --api-key not-needed --temperature 0 --disable-thinking-only --output-dir results/qwen35_2b_after_sft_v2 ``` 对比: ```powershell python SFT_FULLLOG_QWEN2B_V2_SERVER_BUNDLE/scripts/compare_eval_results.py --before results/qwen35_2b_before_sft_v2 --after results/qwen35_2b_after_sft_v2 ```