你是否想过,不用租用A100集群、不依赖百亿参数基座,仅用一台消费级显卡(比如RTX 3090),花不到一杯奶茶的钱和一顿饭的时间,就能从头训练一个真正具备推理、工具调用甚至自主思考能力的语言模型?MiniMind 就是这样一个颠覆认知的开源项目——它不是微调现有大模型的“套壳玩具”,而是完整复现 LLM 全生命周期的极简实践系统:从 tokenizer 训练、预训练、监督微调,到 DPO 对齐、RLAIF 强化学习、Agentic RL 工具链闭环,全部代码手写 PyTorch 原生实现,无黑盒封装。
核心功能
- 2小时完成端到端 SFT 训练:在单张 RTX 3090 上实测仅需约 120 分钟即可跑完 1 轮监督微调(SFT),配套清洗后的
sft_t2t_mini.jsonl数据集含 5 万高质量指令样本,让个人开发者首次体验“训练出能对话的模型”的完整快感。 - 原生支持多阶段智能进化:不止于 SFT,项目内置
train_dpo.py、train_ppo.py、train_grpo.py、train_agent.py等全套强化学习脚本,可让 MiniMind 在数学解题、多步工具调用、开放式思考(<think>标记)等场景中持续进化,而非停留在静态指令响应。 - 开箱即用的工具调用(Tool Use)能力:无需额外插件或 API 中转,模型通过
tool_calls字段原生输出结构化 JSON 工具请求;配套scripts/chat_api.py提供 OpenAI 兼容接口,可直连 FastGPT、Open-WebUI 等主流前端,真实模拟 Copilot 式工作流。 - 轻量但完整的多模态拓展生态:主线 MiniMind-LLM 可无缝衔接视觉分支 MiniMind-V(26M 视觉语言模型)与全模态 MiniMind-O,所有子项目共享同一套训练框架与 Tokenizer,降低跨模态学习门槛。
- 极简部署与交互体验:内置基于 Streamlit 的本地 WebUI(
webui/streamlit_chat.py),支持实时显示思考过程(open_thinking)、高亮工具调用步骤、保存多轮会话;同时提供兼容 llama.cpp / vLLM / Ollama 的导出脚本,模型可一键转为 GGUF 或 AWQ 格式,在 MacBook M2 上也能流畅运行。 - 全链路数据自主可控:项目不仅开源代码,更公开训练所用全部数据集——包括预训练语料
pretrain_t2t_mini.jsonl、SFT 指令集、RLAIF 偏好对、Agentic RL 多轮工具轨迹等,所有数据均经去重、蒸馏、模板标准化(统一使用<think>/</think>和<tool>标签),杜绝“黑箱数据喂养”。 - 兼容主流生态,不制造新壁垒:虽坚持手写底层,但训练产出模型完全兼容 Hugging Face
transformers加载,支持peftLoRA 微调、trlDPO 训练;推理端可接入Llama-Factory、llm-judge等评测工具,并已通过 C-Eval(中文综合能力)、C-MMLU(学科知识)等基准测试验证有效性。
技术亮点
- 真·从零手写 PyTorch 核心模块:Attention、RoPE、RMSNorm、SwiGLU、MoE Router、DPO Loss、GRPO Advantage 计算等全部自行实现,无
transformers或flash-attn依赖,每行代码均可调试、可打断点、可替换——这是真正的“代码级透明”,而非文档级透明。 - 结构设计直指教学本质:主线模型 MiniMind-3(64M)采用 Qwen3 对齐架构,但大幅精简:仅 12 层、16 头、1024 维隐藏层;MoE 版本取消 shared expert,每个 token 精确路由至 2 个 expert,参数总量控制在 198M(激活参数仍为 64M),完美平衡效率与表达力。
- 动态思考机制内建于 Tokenizer:自研分词器原生支持
<think>、</think>、<tool>、</tool>等特殊标记,并通过open_thinking开关控制是否强制生成中间推理链,使“模型为何这样回答”不再不可见。 - RLAIF 与 Agentic RL 深度融合:区别于传统 RLHF 依赖人工标注,MiniMind 采用 RLAIF(AI Feedback)范式,用更强模型(如 Qwen2.5)为 MiniMind 输出打分;更进一步,在
train_agent.py中实现多轮 Tool-Use 场景下的 CISPO(Constrained Importance Sampling PPO),让模型学会“先规划、再调用、再反思”的自主代理行为。 - 实验性前沿模块即插即用:项目在 Discussion 区持续孵化创新方向,如离散扩散语言模型(dLM)——将文本生成建模为去噪过程,以及线性注意力(Linear Attention)变体,所有实验代码均基于主线 AR 模型续训,降低探索成本。
适合哪些人用
MiniMind 不是给工业界快速落地的“解决方案”,而是为三类人打造的“LLM 实践操作系统”:
- 高校学生与初学者:计算机/人工智能专业本科生可通过该项目完整走通“数据→tokenize→pretrain→sft→dpo→ppo→deploy”全流程,在 1 周内理解 Transformer 每一层的作用、梯度如何流动、Loss 如何设计。例如,某浙大 NLP 课程已将其作为期末大作业选题,学生成功复现了 MiniMind-2 并在 C-Eval 上达到 52.3 分(超越同规模 DistilGPT2)。
- 独立开发者与极客:想为自家硬件(如 Jetson Orin、MacBook Pro)定制专属小模型?MiniMind 提供
export_to_gguf.py和quantize_awq.py脚本,配合 llama.cpp 即可在 16GB 内存设备上运行 64M 模型并支持 4K 上下文。有开发者已将其嵌入树莓派 + 电子墨水屏,做成离线 AI 日记本。 - 教育机构与开源讲师:项目 README 中的“大道至简”哲学、各阶段训练日志截图、loss 曲线可视化(支持 SwanLab/W&B)、配套 Bilibili 视频(BV12dHPeqE72)构成天然教学素材包。深圳某 AI 教育工作室已基于 MiniMind 开发《手写大模型》系列直播课,学员平均 3 天即可独立训练出可用模型。
快速上手
以 Ubuntu 22.04 + RTX 3090 为例(Windows 用户推荐 WSL2):
- 克隆项目:
git clone https://github.com/jingyaogong/minimind && cd minimind - 安装依赖:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 && pip install -r requirements.txt - 启动 SFT 训练(默认使用 mini 数据集):
python train_sft.py --model_name_or_path ./configs/minimind-3.yaml --data_path data/sft_t2t_mini.jsonl --output_dir ./outputs/sft_mini - 启动 WebUI:
cd webui && streamlit run streamlit_chat.py --server.port=8501,浏览器访问http://localhost:8501即可聊天 - 想体验工具调用?在 WebUI 中输入“查今天北京天气”,模型将自动输出
{"name": "get_weather", "arguments": {"city": "北京"}}结构化请求。
同类对比 / 注意事项
相比 Hugging Face Transformers(抽象高、难溯源)、DeepSpeed(面向超大规模)、LLaMA-Factory(配置复杂、依赖强),MiniMind 的核心差异在于:牺牲“开箱即用”的便捷性,换取“逐行可懂”的教学性。注意事项包括:① 首次运行需手动训练 tokenizer(python scripts/train_tokenizer.py);② RLHF/DPO 训练需准备偏好数据对,建议先跑通 SFT 再进阶;③ 项目默认使用 BF16 混合精度,若显存不足可改 --fp16 启动。
项目信息
🧠 Train a 64M-parameter LLM from scratch in just 2h!
Python|56019 Star|Apache-2.0 开源协议|GitHub 项目地址
这不是一个“更快的微调工具”,而是一把打开大模型世界大门的钥匙——它用最朴素的代码告诉你:所谓智能,不过是千万次梯度下降后,词语间悄然浮现的逻辑之桥。







