🎓 深度掌握 (30+小时)
从零训练一个完整的 LLM
🎯 学习目标
30 小时后你将能够:
- ✅ 从零训练一个可用的 LLM
- ✅ 理解完整的训练流程
- ✅ 调试和优化模型
- ✅ 在自己的数据上微调模型
📋 学习路径
第 1 周: 理论基础 (6小时)
✅ 完成 📚 系统学习
第 2 周: 数据准备 (8小时)
1. Tokenizer 训练 (2小时)
bash
python scripts/train_tokenizer.py学习内容:
- 理解 BPE 算法
- 训练自定义 tokenizer
2. 数据清洗和预处理 (4小时)
- 阅读
dataset/lm_dataset.py - 理解数据打包(packing)策略
- 创建自己的数据集
3. 数据格式转换 (2小时)
- Pretrain 格式
- SFT 格式
- DPO 格式
完成标准:
- [ ] 能训练一个自定义 tokenizer
- [ ] 理解不同训练阶段的数据格式
- [ ] 准备好训练数据
第 3 周: 模型训练 (10小时)
1. Pretraining (4小时)
bash
cd trainer
python train_pretrain.py \
--data_path ../dataset/pretrain_hq.jsonl \
--epochs 1 \
--batch_size 32 \
--hidden_size 512 \
--num_hidden_layers 8学习要点:
- 理解 Causal Language Modeling 目标
- 监控训练曲线(loss、learning rate)
- 调试常见问题(NaN、OOM)
2. Supervised Fine-Tuning (3小时)
bash
python train_full_sft.py \
--data_path ../dataset/sft_mini_512.jsonl \
--from_weight pretrain学习要点:
- 理解指令微调的作用
- 对比 pretrain vs SFT 的效果
3. LoRA Fine-Tuning (3小时)
bash
python train_lora.py \
--data_path ../dataset/lora_identity.jsonl \
--from_weight full_sft学习要点:
- 理解参数高效微调(PEFT)
- LoRA 的数学原理
- 领域适配策略
完成标准:
- [ ] 成功训练一个小模型(困惑度 < 3.0)
- [ ] 理解 pretrain → SFT → LoRA 的完整流程
- [ ] 能调试训练问题
第 4 周: 进阶主题 (6+小时)
可选方向 1: RLHF / RLAIF (4小时)
- DPO(Direct Preference Optimization)
- PPO/GRPO(Reinforcement Learning)
可选方向 2: 推理优化 (2小时)
- KV Cache
- Flash Attention
- 量化(INT8/INT4)
可选方向 3: 评估和分析 (2小时)
- C-Eval / MMLU 基准测试
- 错误分析
- 消融实验
🔗 参考资源
- 📖 MiniMind 原仓库
- 📝 CLAUDE.md - 完整的命令参考
- 💻 训练脚本 - 所有训练代码
📝 学习建议
1. 先实验,再理论
❌ 不要先读完所有文档再动手 ✅ 先跑实验,建立直觉,再看理论
2. 对比学习
每个模块都通过对比实验回答:
- 不这样做会怎样?
- 其他方案为什么不行?
3. 循序渐进
- 第一遍:快速过一遍,理解大框架
- 第二遍:深入细节,理解数学原理
- 第三遍:自己实现,巩固理解
4. 记录笔记
在 学习日志 记录你的学习过程
🎯 检查清单
理论基础
- [ ] 完成系统学习 (6小时)
数据准备
- [ ] 训练自定义 tokenizer
- [ ] 准备训练数据
- [ ] 理解数据格式
模型训练
- [ ] 完成 Pretrain
- [ ] 完成 SFT
- [ ] 完成 LoRA
进阶主题
- [ ] 尝试 RLHF/RLAIF
- [ ] 优化推理性能
- [ ] 评估模型效果
准备好开始深度掌握之旅了吗?🚀