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 结构
- 修弱监督文本
- 重排训练分布
默认模型
Qwen/Qwen3.5-2B
默认训练命令
bash run_train.sh --gpu-count 2 --model-name Qwen/Qwen3.5-2B
默认用的是:
data/train_sft_focus.jsonldata/dev_sft.jsonl
可选:如果你想拿全量不加权版试验
把 run_train.sh 里的 TRAIN_FILE 改成:
data/train_sft_all.jsonl
训练前后对比
训练前 benchmark:
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:
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
对比:
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