Skip to content

gzhzk/alignreason

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AlignReason

AlignReason 是一个小规模后训练实验:使用高质量显式推理数据对 4B instruct 模型做 LoRA SFT,并用 LiveBench 验证推理、数学、代码、科学等能力是否提升。

实验问题

OpenThoughts 的高质量 reasoning trace 能否进一步提升 Qwen/Qwen3-4B-Instruct-2507 在 LiveBench 上的表现?

本项目的微调对象是:

  • Qwen/Qwen3-4B-Instruct-2507

对比对象包括:

  • 微调前的 Qwen/Qwen3-4B-Instruct-2507
  • 同规模 thinking 参考模型 Qwen/Qwen3-4B-Thinking-2507
  • LiveBench 公榜上的大模型结果

这样可以把实验拆成两层:先看 LoRA 相对原始 instruct 模型是否带来增益,再看它在公榜大模型坐标系里的位置。

实验路线

完整的渐进式实验计划见 docs/experiment-plan.md

Phase 0: 全量 Baseline(当前)
     ↓
Phase 1: Imitation SFT(模仿,快速提升)
     ↓
Phase 2: Rejection + DCO(搜索,突破天花板)
     ↓
Phase 3 [备选]: Self-Play / GRPO(自进化)

Baseline 结果(2026-01-08 release)

类别 分数 状态
instruction_following 79.1
data_analysis 51.8
reasoning 51.4
math 41.1
language 28.7
coding ⏭️ 需要 Docker
Average 50.4

使用 2026-01-08 release 而非 2024-11-25(Qwen3 训练数据截止前),是为了避免时间穿越和数据泄露风险。

初始方案

项目 选择
微调基座 Qwen/Qwen3-4B-Instruct-2507
同规模参考 Qwen/Qwen3-4B-Thinking-2507
数据集 open-thoughts/OpenThoughts3-1.2M
采样量 smoke test 后扩展到 20,000 条
微调方式 LoRA SFT
目标硬件 单卡 RTX 3090 24GB
评测 LiveBench 2026-01-08 release,vLLM 本地 API

为什么要做 reasoning 后训练

小模型的推理能力是瓶颈。OpenThoughts 提供了 QwQ-32B 产出的高质量 reasoning traces,用 LoRA SFT → Rejection Sampling → DCO 逐步递进,看 4B 模型的推理分数能拉高多少。

仓库结构

alignreason/
  README.md
  requirements.txt
  configs/
    experiment.yaml
  docs/
    environment.md
    livebench-baseline.md
  scripts/

第一批实现目标:

  1. 采样 OpenThoughts 并保存为 JSONL;
  2. 用 100 条样本跑 LoRA smoke train;
  3. 用 20K 样本训练正式 adapter;
  4. 用同一套 LiveBench 流程评测 base 和 fine-tuned 模型。

当前 baseline 阶段还没有使用 AlignReason 自写脚本。评测直接使用 LiveBench 官方仓库中的 run_livebench.pyshow_livebench_result.py,本仓库先记录流程和配置;后续再补数据采样、训练和结果汇总脚本。

环境

创建 Python 环境:

cd /path/to/alignreason
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements.txt

Qwen3 需要较新的 Transformers。模型卡提示 transformers<4.51.0 可能出现 KeyError: 'qwen3',因此本项目依赖中保留 transformers>=4.51.0

更完整的环境说明见 docs/environment.md

第一阶段 LiveBench baseline 评测流程见 docs/livebench-baseline.md

先做 Smoke Test

正式训练前先跑小规模检查:

步骤 目的
100 条样本 验证数据转换和 chat template
20-50 个训练 step 验证 LoRA target modules 和显存占用
一次短生成 验证 adapter 可以加载并正常回答
一个很小的评测子集 验证进入 LiveBench 前的链路正常

只有 smoke test 通过后,再进入 20K 样本训练。

训练默认值

这些是第一版起点,不是最终结论:

model_name: Qwen/Qwen3-4B-Instruct-2507
dataset_name: open-thoughts/OpenThoughts3-1.2M
max_seq_length: 4096
sample_size: 20000
lora_rank: 16
lora_alpha: 32
lora_dropout: 0.05
target_modules:
  - q_proj
  - k_proj
  - v_proj
  - o_proj
learning_rate: 1.0e-5
num_train_epochs: 1
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
gradient_checkpointing: true

在 RTX 3090 上,4096 是保守的第一版上下文长度。8192 应作为后续显存实验。

评测设计

本地跑三个条件:

条件 模型
Baseline Qwen/Qwen3-4B-Instruct-2507
Fine-tuned Qwen/Qwen3-4B-Instruct-2507 + AlignReason LoRA
同规模参考 Qwen/Qwen3-4B-Thinking-2507

最主要的结果是:

fine-tuned instruct score - baseline instruct score

Thinking 模型是同规模参考,不是唯一外部目标。

同时把 fine-tuned 模型放到 LiveBench 公榜坐标中比较:

比较 目的
Fine-tuned vs frontier models 看和当前大闭源模型的绝对差距
Fine-tuned vs large open models 看 4B LoRA 是否接近更大开源模型
Fine-tuned vs same-size Qwen thinking 区分模型规模和 thinking mode 的影响
Fine-tuned vs base instruct 衡量本项目训练带来的真实增益

公榜比较必须记录 LiveBench snapshot 日期,因为公开排名会随时间变化。

成功标准

实验应该能用可复现产物回答这些问题:

  • LoRA adapter 是否提升了 instruct baseline 的 LiveBench 总分?
  • 哪些类别提升,哪些类别下降?
  • Adapter 是否缩小了和 Qwen3-4B-Thinking-2507 的差距?
  • Adapter 在 LiveBench 公榜大模型结果中处于什么位置?
  • 显式 reasoning SFT 是否带来输出变长、格式退化或指令跟随下降?

参考

About

Post-training experiments: using reasoning traces to push 4B model reasoning ceiling on LiveBench.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors