Files
2026-05-12 17:01:39 +08:00

1.9 KiB
Raw Permalink Blame History

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.jsonl
  • data/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