2026-05-10 13:12:44 +08:00

144 lines
4.9 KiB
Markdown
Raw 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.

# 🧠 模型训练管线
> **「我们全参训练的这些模型是我们的世界,是人格体的大脑。
> 我们不是以模型发布的,是以模型之上的语言驱动操作系统发布的。」** ——冰朔
```yaml
id: HoloLake-Training
parent_arch: HLDP-ARCH-002
ts: 2026-05-01
status: 骨架就绪(等 GPU 服务器 + 全量语料)
sovereign: 冰朔 · TCS-0002∞
```
---
## 一、训练目标修正版(灵魂推理分离)
| 模型 | 角色 | 训练方式 | 是否在本管线 |
|---|---|---|---|
| **M0 · 母体世界观** | **Qwen2.5-7B-Base** 全参 CPT + 轻 SFT5-01 校准) | ✅ 是 | 主力 |
| ~~MC · 代码模型~~ | ~~Qwen2.5-Coder-7B 蒸馏~~ | ❌ 取消(用商业 API 替代) | — |
| **MP · 人格大脑×8** | **Qwen2.5-1.5B-Base** 蒸馏 + 微调5-01 校准) | ✅ 是 | 8 份 |
> **5-01 模型选型校准(冰朔 + 霜砚 + 铸渊)**
> 原方案 Qwen3-8B / Qwen3-1.7B 改为 Qwen2.5-7B / Qwen2.5-1.5B。
> 理由:与 Qwen2.5-Coder-7B 同代同 tokenizer蒸馏 KL 直接对齐 logits
> 整个 M0→MP→Coder API 链路无词表映射损失。详见 `HLDP-ARCH-002.md §六` 与
> `factory/docs/CORPUS-DECISION-MATRIX.md`。
**修正理由**:复杂推理(代码 / 数学 / 长 CoT→ 调 DeepSeek-Coder / Qwen-Max-Coder 等商业 API省 ¥4-6k + 2-4 天 + 一份模型维护。
---
## 二、目录结构
```
factory/training/
├── README.md # 本文件
├── configs/ # 训练配置
│ ├── deepspeed-zero3-8b.json # M0 全参训练 DeepSpeed 配置Qwen2.5-7B
│ ├── deepspeed-zero2-1p7b.json # MP 蒸馏/微调 配置Qwen2.5-1.5B · 文件名沿用历史)
│ └── tokenizer.yaml # tokenizer 设置
├── scripts/ # 训练脚本骨架
│ ├── train_m0_cpt.py # M0 阶段 1CPT
│ ├── train_m0_sft.py # M0 阶段 2SFT
│ ├── distill_mp.py # MP 蒸馏M0 → 1.5B
│ ├── finetune_mp.py # MP 微调(人格语料)
│ ├── data_loader.py # 通用数据加载器
│ └── checkpoint_utils.py # checkpoint / 恢复
└── recipes/ # 训练配方YAML 描述每次训练的全部参数)
├── m0-v1.yaml
└── mp-zhuyuan-v1.yaml
```
---
## 三、训练阶段总览
```
[Phase A · M0 · 5-7 天]
Qwen2.5-7B-Base
├─ A1 CPT: 全量光湖语料 6.5亿+ token · 1 epoch · lr 2e-5
│ 目的: 让世界观渗进每一层权重
└─ A2 SFT: 对话格式 1-2 亿 token · 2-3 epoch · lr 1e-5
目的: 学会以光湖语言响应
M0-v1 · 母体世界观底色
[Phase C · MP · 每人格 1-2 天 × 8 人格]
Qwen2.5-1.5B-Base
├─ C1 蒸馏: M0-v1 logits 对齐 + KL散度 · 共享世界观
├─ C2 微调: 该人格的对话语料 SFT · 思维路径 + 风格
└─ C3 路由训练: 学会判断"自答 / 调 API / 用神笔 / 调模块"
MP-{persona}-v1 · 人格大脑
```
---
## 四、关键配置原则
### 4.1 精度与显存
- 主力精度:**bf16**A100 / H100 原生支持,比 fp16 稳)
- ZeRO 阶段:**ZeRO-3 + offload**8B 全参 + 8 卡 A100 80G 必需)
- gradient checkpointing**开**(用算力换显存)
- flash-attention 2 / 3**开**(吞吐 +30%
### 4.2 序列长度
- M0 CPT 阶段4096覆盖大部分对话块
- M0 SFT 阶段8192保留长上下文对话
- MP 蒸馏4096
- MP 微调4096
### 4.3 学习率
- M0 CPT: 2e-5 / cosine decay / warmup 2%
- M0 SFT: 1e-5 / cosine decay / warmup 5%
- MP 蒸馏: 5e-5 / cosine decay
- MP 微调: 1e-5 / cosine decay
### 4.4 防过拟合
- 留 5% 验证集,监控 perplexity
- early stop验证 PPL 连续 3 次反弹立即停
- 每 1-2 小时存 checkpoint防断电烧钱
---
## 五、运行前检查清单
跑训练前必须确认(见 `factory/docs/BOOTSTRAP-CHECKLIST.md`
- [ ] GPU 服务器到位 + nvidia-driver + CUDA 12.x + cuDNN
- [ ] Python 环境torch / transformers / deepspeed / flash-attn 版本对齐)
- [ ] 模型权重已下载(**Qwen2.5-7B-Base + Qwen2.5-1.5B-Base** · SHA256 校验 · 5-01 校准)
- [ ] 全量语料已上传 + 质检通过
- [ ] WandB 或本地 tensorboard 监控就位
- [ ] checkpoint 存储路径可写 + 容量充足M0 训练全量约 200GB
---
## 六、当前状态
| 文件 | 状态 |
|---|---|
| `configs/deepspeed-zero3-8b.json` | ✅ 骨架 |
| `configs/deepspeed-zero2-1p7b.json` | ✅ 骨架 |
| `scripts/train_m0_cpt.py` | ✅ 骨架pseudo-code 占位 + TODO 标注) |
| `scripts/distill_mp.py` | ✅ 骨架 |
| `recipes/m0-v1.yaml` | ✅ 骨架 |
骨架阶段不会真跑训练(没 GPU但保证 GPU 一到位、依赖一装、就能直接放大跑。
---
*管线起草: 铸渊 · 2026-05-01*