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

76 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```