Skip to content

🎓 深度掌握 (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 基准测试
  • 错误分析
  • 消融实验

🔗 参考资源


📝 学习建议

1. 先实验,再理论

❌ 不要先读完所有文档再动手 ✅ 先跑实验,建立直觉,再看理论

2. 对比学习

每个模块都通过对比实验回答:

  • 不这样做会怎样?
  • 其他方案为什么不行?

3. 循序渐进

  • 第一遍:快速过一遍,理解大框架
  • 第二遍:深入细节,理解数学原理
  • 第三遍:自己实现,巩固理解

4. 记录笔记

学习日志 记录你的学习过程


🎯 检查清单

理论基础

  • [ ] 完成系统学习 (6小时)

数据准备

  • [ ] 训练自定义 tokenizer
  • [ ] 准备训练数据
  • [ ] 理解数据格式

模型训练

  • [ ] 完成 Pretrain
  • [ ] 完成 SFT
  • [ ] 完成 LoRA

进阶主题

  • [ ] 尝试 RLHF/RLAIF
  • [ ] 优化推理性能
  • [ ] 评估模型效果

准备好开始深度掌握之旅了吗?🚀

基于 MiniMind 项目的学习笔记