01
预训练 Pretrain
领域混合流式训练(代码 35% / 通用 30% / 数学 25% / 推理 10%),最后 5% 步自动切换退火阶段——高质量数据 + LR 线性衰减。
100B tokens · torch.compile · 梯度检查点02
SFT 指令微调
指令感知 masking 仅对 assistant 回复计算 loss;序列 packing 拼接短样本,GPU 利用率提升 2~3 倍。
assistant-only loss · 动态 padding03
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 层。
| 预设 | 参数量 | Layers | Hidden | KV Heads | FFN | 上下文 |
|---|---|---|---|---|---|---|
| 1b | ~1.5B | 28 | 2048 | 4 | 6144 | 32K |
| 3b | ~2.8B | 26 | 3200 | 8 | 8640 | 32K |
| 7b | ~6.7B | 32 | 4096 | 8 | 11008 | 64K |
| 14b | ~12.7B | 40 | 5120 | 10 | 13824 | 64K |
训练显存不够?
按顺序启用以下手段,消费级 GPU 也能跑:
梯度检查点
gradient_checkpointing=True,显存直降约 60%。
BF16 混合精度
bf16=True,显存减半,训练更稳。
LoRA 微调
仅训练约 1% 参数,默认秩 r=8。
梯度累积
减小 batch_size + 增大累积步数等效大批次。