00-课程概述与大纲
·
MiniMind LLM 从零实现 — 教学大纲
课程简介
本课程基于开源项目 MiniMind 设计,以纯 PyTorch 从零实现一个小型语言模型为主线,带领学生完整经历大语言模型的训练全流程:Tokenizer → Pretrain → SFT → LoRA → RLHF → Agent RL → 部署。
MiniMind 主线版本仅 64M 参数(约为 GPT-3 的 1/2700),单张 RTX 3090 即可在约 2 小时内完成快速复现训练,成本仅约 3 元人民币。极低的硬件门槛使每位学生都能亲自动手完成全部实验。
为什么选择 MiniMind 做教学
| 优势 | 教学价值 |
|---|---|
| 纯 PyTorch 实现,无黑盒封装 | 学生能逐行阅读每一层代码,理解底层逻辑 |
| 完整训练链路 | 覆盖 LLM 全生命周期,形成体系化知识 |
| 单卡 3090 即可完成,成本约 3 元 | 降低硬件门槛,人人可动手 |
| 代码量适中(非玩具、非工业级) | 难度恰好适合进阶教学 |
| 覆盖前沿技术(MoE、GQA、RoPE、GRPO) | 与当前行业趋势对齐 |
| Apache 2.0 完全开源 | 无许可证限制,可自由修改和分发 |
课程教学目标
知识目标
- 理解大语言模型(LLM)的完整训练流程和各阶段目标
- 掌握 Transformer Decoder-Only 架构的核心组件及数学原理
- 掌握 Tokenizer(BPE)的工作原理和实现方法
- 理解预训练、监督微调、参数高效微调、强化学习对齐的原理和区别
- 了解 MoE、GQA、RoPE 等前沿优化技术
- 掌握 LLM 部署和推理的工程实践方法
能力目标
- 能够从零搭建并训练一个小型语言模型
- 能够分析训练过程中的 loss 曲线和训练状态
- 能够设计实验并对比不同训练策略的效果
- 能够将训练好的模型部署为可用的推理服务
- 能够阅读和修改开源 LLM 项目代码
课程安排
| 周次 | 阶段 | 课时 | 教学形式 | 核心内容 |
|---|---|---|---|---|
| 第 1 周 | 阶段 1-2 | 4 课时 | 讲授 + 上机 | 环境搭建、项目导览、Tokenizer 原理与实现 |
| 第 2 周 | 阶段 3 | 6 课时 | 讲授 + 代码研读 | Transformer 架构逐组件讲解与手写实现 |
| 第 3 周 | 阶段 4 | 4 课时 | 讲授 + 训练实验 | 预训练(Pretrain)完整流程 |
| 第 4 周 | 阶段 5 | 4 课时 | 讲授 + 训练实验 | 监督微调(SFT)、Tool Calling、知识蒸馏 |
| 第 5 周 | 阶段 6 | 2 课时 | 讲授 + 对比实验 | LoRA 参数高效微调 |
| 第 6 周 | 阶段 7 | 4 课时 | 讲授 + 训练实验 | 强化学习对齐(DPO / PPO / GRPO / CISPO) |
| 第 7 周 | 阶段 8 | 2 课时 | 部署实践 | 模型推理部署、API 服务、多框架集成 |
| 第 8 周 | 综合项目 | 4 课时 | 开放选题 | 综合实践与答辩 |
先修要求
必修基础
- Python 编程(熟悉面向对象、NumPy 基础操作)
- 深度学习基础(了解前向/反向传播、损失函数、优化器)
- PyTorch 框架(张量操作、模型定义、训练循环)
- 基本线性代数(矩阵乘法、向量空间)
推荐基础(非必须)
- 自然语言处理基础(分词、词向量)
- 了解 Transformer 论文基本概念
- Linux 命令行基本操作
硬件要求
推荐配置
| 组件 | 推荐配置 | 最低配置 |
|---|---|---|
| GPU | NVIDIA RTX 3090 / 4090(24GB) | NVIDIA RTX 3060(12GB) |
| CPU | 8 核以上 | 4 核 |
| 内存 | 32GB | 16GB |
| 硬盘 | 50GB 可用空间 | 30GB 可用空间 |
硬件方案
| 方案 | 说明 | 预估成本 |
|---|---|---|
| 本地单卡 | RTX 3090/4090,个人电脑 | 约 3 元/次完整训练 |
| 教学机房 | 多卡 3090,每 2-3 人一组共享 | 共享调度 |
| 云端租用 | AutoDL / 矩池云 按小时计费 | 约 2-5 元/小时 |
| CPU 降级 | 使用 minimind2-small(26M),仅 CPU 推理 | 0 元(仅推理) |
MiniMind 全流程概览
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Tokenizer │────>│ Pretrain │────>│ SFT │
│ (BPE训练) │ │ (预训练) │ │ (监督微调) │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌──────────────────────────┤
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ LoRA │ │ 知识蒸馏 │
│ (高效微调) │ │ (Distillation)│
└─────────────┘ └─────────────┘
│
▼
┌───────────────────────────┐
│ 强化学习对齐 │
│ DPO / PPO / GRPO / CISPO │
└───────────────────────────┘
│
▼
┌───────────────────────────┐
│ Agentic RL │
│ (多轮Tool-Use强化学习) │
└───────────────────────────┘
│
▼
┌───────────────────────────┐
│ 部署推理 │
│ OpenAI API / vLLM / ollama│
└───────────────────────────┘
模型规格
MiniMind-3 Dense
| 参数 | 值 |
|---|---|
| 参数量 | ~64M |
| 词汇表大小 | 6400 |
| 最大位置编码 | 32768 |
| 层数(n_layers) | 8 |
| 隐藏维度(d_model) | 768 |
| KV 头数 | 4 |
| Q 头数 | 8 |
| 显存占用 | ~0.5 GB |
| 归一化 | Pre-Norm + RMSNorm |
| 激活函数 | SwiGLU |
| 位置编码 | RoPE(支持 YaRN 外推) |
MiniMind-3 MoE
| 参数 | 值 |
|---|---|
| 参数量 | 198M(活跃 64M) |
| 专家数 | 4 |
| 路由策略 | top-1 routing |
| 其他参数 | 与 Dense 版本相同 |
考核方式
| 考核项 | 占比 | 说明 |
|---|---|---|
| 阶段实验报告 | 50% | 每个阶段一份小报告(共 8 份,取 5 份最高分) |
| 综合项目 | 30% | 开放选题,展示完整的训练/优化/部署流程 |
| 日常代码实践 | 20% | 代码提交、实验记录、课堂参与 |
配套材料清单
| 材料 | 说明 |
|---|---|
| 本教学文档(语雀系列) | 8 个阶段 + 1 个大纲,共 9 篇 |
| MiniMind 源码 | GitHub 克隆即可 |
| 预训练模型 | ModelScope / HuggingFace 下载 |
| 数据集 | ModelScope / HuggingFace 下载 |
| 实验报告模板 | 每阶段提供统一模板 |
项目地址与参考资源
更多推荐


所有评论(0)