从零开始的练习生
Level 1 | 基础篇
大家好,我是参数量两千五百万的个人练习生,从零开始练习语言建模。
- 什么是语言模型预训练(Next Token Prediction)
- 数据格式 (jsonl)、清洗、去重
- Cosine Learning Rate Schedule 的原理
- 混合精度训练 (AMP) + 梯度累积
- 预训练 vs SFT 的本质区别
- 从零训练一个能"说话"的模型
基于 MiniMind 的 trainer/train_pretrain.py
cd trainer && python train_pretrain.py \
--epochs 2 --batch_size 32 --learning_rate 5e-4 \
--hidden_size 512 --data_path ../dataset/pretrain_hq.jsonl| 概念 | 说明 |
|---|---|
| CLM | Causal Language Modeling,预测下一个 token |
| Loss | Cross Entropy,衡量预测和真实 token 的差距 |
| Cosine LR | 学习率从高到低余弦衰减,训练更稳定 |
| Gradient Accumulation | 小 batch 模拟大 batch,省显存 |
| AMP | 混合精度,float16 加速训练 |
预训练: "给它一堆书让它自学" → 学会语言
SFT: "给它对话样本让它学" → 学会聊天
预训练的数据: {"text": "中国是世界上人口最多的国家..."}
SFT的数据: {"conversations": [{"role":"user",...}, {"role":"assistant",...}]}
| Level | Repo | 学什么 |
|---|---|---|
| 1 | ikun-tokenizer | 分词器原理 |
| 1 | ikun-pretrain <-- 你在这里 | 从零预训练 |
| 1 | ikun-2.5B | SFT + LoRA 微调 |
| 2 | ikun-DPO | 偏好对齐 |
| 2 | ikun-GRPO | 强化学习 |
| 2 | ikun-Reason | 推理模型 |
| 3 | ikun-MoE | 混合专家 |
| 3 | ikun-Distill | 知识蒸馏 |
| 3 | ikun-V | 多模态 |
| 4 | ikun-deploy | 部署 |
