minimind
从零手写PyTorch,2小时3元训练64M参数的完整LLM全链路开源复现项目
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
从零手写PyTorch,2小时3元训练64M参数的完整LLM全链路开源复现项目
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你想让孩子理解汽车是如何工作的, 你会直接给他一辆特斯拉让他「玩着学」?还是从发动机原理开始, 一步步拆解、组装,让他真正搞懂每个零件的作用?
后者,就是 MiniMind 正在做的事。
2024年以来,ChatGPT、DeepSeek、Qwen等大模型相继爆火,全球开发者兴奋地涌向 AI 赛道。 然而,大多数人的「AI 开发」止步于:下载一个开源模型,用 LoRA 微调几个指令, 再接一个 LangChain 包装——然后美其名曰「自定义 AI 应用」。
作者 gongjy 在项目中写道:「这更像是在教牛顿如何使用 21 世纪的智能手机—— 虽然有趣,却偏离了理解物理本质的初衷。」
MiniMind 的出现,就是为了打破这一困局。 它以 64M 参数(约 GPT-3 的 1/2700)的小体量,从零手写 PyTorch 实现完整的大模型训练链路, 涵盖预训练、SFT、LoRA、DPO、PPO/GRPO/CISPO、Agent RL 等几乎所有主流技术阶段, 并将整个过程的训练成本压缩到 3元租 GPU + 2小时训练时间 的级别。
MiniMind 最大的特色不是模型性能有多强,而是每个细节都不依赖黑箱。 所有核心算法代码均从 0 使用 PyTorch 原生实现,不依赖 transformers 的高层封装。 Attention 机制、RoPE 位置编码、MoE 稀疏门控、RLHF 训练循环——全都可以在源码中一一对应。
对于想真正搞懂大模型原理的开发者来说,这比阅读任何教科书都更直观。
你不需要相信「API 会帮你处理这些」,而是可以亲眼看到数据如何流动、梯度如何反传。

图1:SFT(监督微调)阶段训练 loss 曲线,可以看到模型在短时间内的快速收敛过程
MiniMind 实现了大模型训练的完整技术栈,按阶段可分为:
预训练(Pretrain):使用 GPT-2 分词器 + 马可夫链数据清洗,在约 3000 条中文语料上做预训练, 从零初始化参数,验证小模型也能学习语言建模能力。
监督微调(SFT):将预训练模型在指令数据上进行微调,赋予基础对话能力。
LoRA 高效微调:低秩适配方法,仅训练少量参数即可实现任务适配,大幅降低微调门槛。
DPO(直接偏好优化):跳过 Reward Model 直接优化偏好数据,简化 RLHF 流程。
PPO / GRPO / CISPO:三种不同的强化学习训练方式,GRPO 由 DeepSeek 提出, CISPO 是更稳定的变体,代码中均有完整实现。
Agent RL(智能体强化学习):集成工具调用(Tool Use)能力,支持模型在环境中自主决策, 结合思考链(Chain-of-Thought)和模型蒸馏(Distillation)技术。
此外还支持 MoE(混合专家)架构,在 model/ 目录下包含完整的 MoE 实现代码,
可以通过切换模型文件(model_minimind.py / model_lora.py)来选择不同架构。

图2:RoPE 旋转位置编码的 PPL(困惑度)对比,验证不同编码方案的效果差异
项目采用清晰的模块化组织:
model/model_minimind.py:MiniMind 核心模型定义(Transformer 解码器 + RoPE)model/model_lora.py:LoRA 适配器封装trainer/train_pretrain.py → trainer/train_full_sft.py → trainer/train_dpo.py:完整训练脚本链trainer/train_grpo.py / trainer/train_ppo.py:强化学习训练器trainer/train_agent.py:Agent 强化学习训练trainer/rollout_engine.py:Rollout 采样引擎scripts/web_demo.py:Streamlit Web 界面scripts/serve_openai_api.py:OpenAI 兼容 API 服务scripts/chat_api.py:对话 API整个代码库没有多余的工程复杂度,核心逻辑一目了然。
项目提供了 Streamlit 原生 Web 界面(scripts/web_demo.py),
可以直接运行 streamlit run scripts/web_demo.py 在浏览器中与 MiniMind 对话。
界面经过 CSS 深度定制,圆形操作按钮、侧边栏折叠等细节都经过了打磨。
同时提供了 serve_openai_api.py,可以将 MiniMind 以 OpenAI API 兼容格式对外提供服务,
便于接入现有应用生态。
部署上没有 Docker 支持,但依赖管理清晰(requirements.txt),
核心依赖包括 transformers、torch、streamlit、trl、sentence_transformers 等,
安装流程对有 Python 经验的开发者来说没有门槛。

图3:MiniMind 与 GPT-3 的参数规模对比,64M vs 175B,差了约2700倍
MiniMind 的 64M 参数体量决定了它不可能达到 GPT-3、Claude 乃至 Qwen 的能力水平。 它的定位是教学与实验工具,而非生产级模型。
此外,预训练语料规模约 3000 条(相比 LLaMA 的 1T Token 级别), 知识容量必然受限,复杂推理和长程依赖任务上表现有限。
不过换一个角度看:MiniMind 的目标从来不是「超越 GPT-4」, 而是让你在几分钟内跑完一个完整的大模型训练周期,直观感受每个阶段loss下降的意义—— 这种「小实验、大道理」的设计哲学,恰恰是它最珍贵的地方。
MiniMind 项目在 GitHub 上已获得 5万+ stars, 同期还拓展了 MiniMind-V(视觉模态)、MiniMind-O(多模态 Omni)、 MiniMind-dLM(扩散语言模型)等一系列衍生项目,形成了一个完整的小模型宇宙。
它的出现填补了「从零理解 LLM」领域的空白——在此之前, 市面上要么是高度封装的训练框架(门槛高、不透明), 要么是纯理论推导的教程(缺代码、难落地)。 MiniMind 恰好在两者之间找到了最优解。
对于 AI 开发者而言,MiniMind 是深入理解 RLHF、MoE、Agent 等前沿技术的最佳实践素材; 对于 AI 爱好者而言,它是打开大模型「黑盒子」的第一把钥匙。 无论你属于哪个群体,MiniMind 都值得你花 2 小时,亲手训练一个自己的大模型。