仓库:jingyaogong/minimind
语言:Python(PyTorch 原生)
协议:Apache 2.0
Trending:1005 stars/day
一句话
一个从零开始、不依赖 transformers/trl/peft 高级封装的完整 LLM 训练项目——预训练、SFT、LoRA、RLHF-DPO、RLAIF(PPO/GRPO/CISPO)、Tool Use、Agentic RL、蒸馏全覆盖,64M 参数,单卡 3090 两小时跑完,成本 3 块人民币。
场景开篇
你想学大模型。你打开 Hugging Face,看到 transformers 库:
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-7B")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-7B")
# 完事了
你跟着教程跑通了推理。然后你想"训练"一个模型,发现 trl 库给你一个 SFTTrainer:
from trl import SFTTrainer
trainer = SFTTrainer(model=model, dataset=dataset, ...)
trainer.train()
# 完事了
你跑通了。但你心里清楚:你不知道 from_pretrained 里发生了什么,不知道 SFTTrainer 的 train() 里 loss 怎么算的,不知道 attention 是怎么实现的,不知道 RoPE 是怎么编码的。你是在"使用"大模型,不是在"理解"大模型。
MiniMind 的作者把这件事说得很直白:
"用乐高自己拼出一架飞机,远比坐在头等舱里飞行更让人兴奋。"
它做了什么
MiniMind 不是一个"模型",它是一个完整的从零训练链路。核心数字:
| 维度 | 数值 |
|---|---|
| 主线模型参数量 | 64M(Dense)/ 198M-A64M(MoE) |
| 模型体积 | GPT-3 的 1/2700 |
| 训练时间 | 2 小时(单卡 RTX 3090,1 epoch SFT) |
| 训练成本 | 3 元人民币(GPU 租用) |
| 训练阶段 | Pretrain → SFT → LoRA → DPO → PPO/GRPO/CISPO → Tool Use → Agentic RL → 蒸馏 |
| 代码依赖 | PyTorch 原生,不依赖 transformers/trl/peft 高级封装 |
| 模型结构对齐 | Qwen3 / Qwen3-MoE 生态 |
关键设计:所有核心算法(attention、RoPE、MoE 路由、PPO、GRPO、CISPO、LoRA、蒸馏)都用 PyTorch 从零实现,不调第三方库的高级接口。你能看到每一行代码。
从零实现意味着什么
大多数 LLM 教程的路径是:
下载模型 → from_pretrained → trainer.train() → 推理
MiniMind 的路径是:
写 Tokenizer → 写 Attention → 写 RoPE → 写 MoE → 写 Pretrain → 写 SFT → 写 LoRA → 写 DPO → 写 PPO → 写 GRPO → 写 CISPO → 写 Tool Use → 写 Agentic RL → 写蒸馏 → 推理
这两条路径的差距不是"效率差距",是"认知差距"。走第二条路出来的人,看到 transformers 的源码不会觉得是黑盒,看到 Qwen3 的技术报告能看懂每一行公式,看到 DeepSeek-R1 的训练流程能复现。
覆盖的完整训练链
| 阶段 | 从零实现的内容 |
|---|---|
| Pretrain | 自回归语言模型训练、数据清洗与去重 |
| SFT | 指令微调、多轮对话格式、chat_template |
| LoRA | 低秩适配器从零实现,不依赖 peft |
| RLHF-DPO | 直接偏好优化从零实现 |
| RLAIF | PPO、GRPO、CISPO 三种算法从零实现 |
| Tool Use | 工具调用能力混入 SFT 数据 |
| Agentic RL | 多轮 Tool-Use 场景下的 GRPO/CISPO |
| 自适应思考 | <think> 标签 + open_thinking 开关 |
| 蒸馏 | 白盒蒸馏原生实现 |
| YaRN | RoPE 长文本外推 |
最值得注意:RLAIF 阶段同时实现了 PPO、GRPO、CISPO 三种算法。GRPO 是 DeepSeek 在 R1 里用的,CISPO 是 2025 年的新算法。一个教学项目跟到了最前沿。
"大道至简"的工程哲学
MiniMind 的 README 里有一句"大道至简"。这不是装饰,是设计哲学。
1. 参数量极简
64M 参数。GPT-3 是 175B,差 2700 倍。这个差距意味着:
- 单卡 3090(24GB)就能训练,不需要 8 卡 A100
- 模型文件几百 MB,不需要几 TB 硬盘
- 推理在 CPU 上都能跑,不需要 H100
- 训练 2 小时跑完,不需要等两周
你可能会问:64M 的模型能干什么?答案是:什么都不能干,但什么都 ... 什么都能学到。64M 的模型不会通过图灵测试,但训练 64M 模型的代码和训练 175B 模型的代码在算法层面是一样的。你学的是算法,不是规模。
2. 依赖极简
不依赖 transformers、trl、peft。只依赖 PyTorch。
这意味着:
attention不是调F.scaled_dot_product_attention,是自己写的RoPE不是调transformers的LlamaRotaryEmbedding,是自己写的LoRA不是调peft.LoraConfig,是自己写的PPO不是调trl.PPOTrainer,是自己写的
每一行代码你都能看懂、改、调试。这和"用乐高拼飞机"同构——不是坐头等舱飞,是自己造一架能飞的。
3. 数据极简
默认只需要两个文件:pretrain_t2t_mini.jsonl 和 sft_t2t_mini.jsonl。下载、放入目录、跑训练。不需要处理 TB 级数据,不需要分布式数据加载,不需要复杂的数据管道。
为什么 1005 stars/day
MiniMind 踩中了两个同时爆发的需求:
需求一:LLM 教育的"从零开始"运动。 2024 年之前,学 LLM 的路径是"读论文 → 用 transformers → 调参"。2025 年后,DeepSeek-R1 的开源让社区意识到:真正的理解来自从零实现,不是从包调用。 MiniMind 提供了这条路径的完整实现。
需求二:RLHF/RLAIF 的民主化。 GRPO、CISPO 这些算法在 2025 年还是论文里的东西,大多数工程师只知道名字不知道实现。MiniMind 把这些算法从论文翻译成了可运行的 PyTorch 代码,而且是在一个 64M 的模型上跑——你能在笔记本上看完整个训练过程。
1005 stars/day 说明这个需求是真实的、迫切的。
和其他"从零训练 LLM"项目的区别
| 项目 | 参数量 | 训练阶段 | 从零实现 | 生态对齐 |
|---|---|---|---|---|
| MiniMind | 64M | Pretrain→SFT→LoRA→DPO→PPO/GRPO/CISPO→Tool Use→Agentic RL→蒸馏 | ✅ 全部 | Qwen3 |
| nanoGPT | ~1M | Pretrain only | ✅ 部分 | GPT-2 |
| minGPT | ~1M | Pretrain only | ✅ 部分 | GPT-2 |
| lit-gpt | 7B+ | Pretrain→SFT | ❌ 用 Lightning | Llama |
| LLaMA-Factory | 各规模 | 全流程 | ❌ 封装层 | 多模型 |
MiniMind 的独特位置:它是唯一一个"从零实现 + 全流程 + 前沿算法(GRPO/CISPO/Agentic RL)"的项目。nanoGPT 从零但只做预训练,LLaMA-Factory 全流程但不是从零。
一句话总结
MiniMind 不是要和 Qwen3 竞争——64M 的模型什么实用任务都干不了。它要做的是把 LLM 的完整训练链路从"黑盒"变成"白盒"。从 Tokenizer 到 Agentic RL,每一行代码都可见、可改、可理解。
"大道至简"不是一句口号,是一个工程决策:当你把规模缩到最小、依赖减到最少、代码写到最简时,复杂系统的本质就会显露出来。 64M 的 MiniMind 不会通过图灵测试,但它能通过比这更重要的测试——让一个从没训过大模型的人,在 2 小时内理解大模型的全部训练流程。
这是"教育"和"工程"的完美交叉点。3 块钱买不到一杯咖啡,但能买到一个完整的 LLM 训练课程。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。