Training

三阶段训练

训练最强小参数代码 / 推理模型的推荐路径:预训练打底 → SFT 对齐指令 → DPO 对齐偏好。

01

预训练 Pretrain

领域混合流式训练(代码 35% / 通用 30% / 数学 25% / 推理 10%),最后 5% 步自动切换退火阶段——高质量数据 + LR 线性衰减。

100B tokens · torch.compile · 梯度检查点
02

SFT 指令微调

指令感知 masking 仅对 assistant 回复计算 loss;序列 packing 拼接短样本,GPU 利用率提升 2~3 倍。

assistant-only loss · 动态 padding
03

DPO 偏好对齐

IPO 损失变体更稳定不易过拟合;长度归一化 + Label Smoothing;Ref Model 显存卸载节省约 50% 显存。

IPO · 长度归一化 · ref 卸载

预训练领域混合配比

DomainMixedDataset 按权重采样,配比可按业务语料调整。

代码 35%
通用 30%
数学 25%
推理 10%
代码 code 通用 general 数学 math 推理 reasoning

快速开始

一条命令启动 SFT 训练(支持 LoRA / 全量微调):

# SFT / LoRA 训练 $ starmoon-z1 train \ --model Qwen/Qwen2.5-1.5B-Instruct \ --data ./data/train.jsonl \ --output ./output \ --epochs 3 --batch-size 4 --lr 2e-5 # 推理(单次 / 交互 / HTTP 服务) $ starmoon-z1 infer --model ./output/final --prompt "解释快速排序" $ starmoon-z1 serve --model ./output/final --port 8000

模型预设

四档规模开箱即用;1B 预设更深(28 层)强化推理,绑定 embedding 释放 310M 参数给 Transformer 层。

预设参数量LayersHidden KV HeadsFFN上下文
1b~1.5B2820484614432K
3b~2.8B2632008864032K
7b~6.7B32409681100864K
14b~12.7B405120101382464K

训练显存不够?

按顺序启用以下手段,消费级 GPU 也能跑:

梯度检查点

gradient_checkpointing=True,显存直降约 60%。

BF16 混合精度

bf16=True,显存减半,训练更稳。

LoRA 微调

仅训练约 1% 参数,默认秩 r=8。

梯度累积

减小 batch_size + 增大累积步数等效大批次。