花3块钱、2小时训练一个64M的"小破模型",能干啥?
MiniMind:从零手写完整LLM训练流水线,PyTorch原生实现,支持预训练+SFT+RLHF+工具调用,附完整上手指南
它是什么
MiniMind 是一个"从零手搓大模型"的完整开源项目,GitHub 来自 @jingyaogong。
作者不依赖 HuggingFace transformers 的高度封装,直接用 PyTorch 原生 API 把整个 LLM 训练链路完整实现了一遍:
- 自写数据清洗脚本
- 自训练 Tokenizer(分词器)
- 实现预训练(Pretrain)
- 实现监督微调(SFT)
- 甚至写了 RLHF(人类反馈强化学习)
- 原生支持工具调用(Tool Use)和 MCP 协议
主推的 MiniMind-3 模型只有 64M 参数(0.064B),体量是 GPT-3 的 1/2700。
3 块钱 + 2 小时 = 一个能对话能调工具的模型
这不是噱头,是实打实的成本计算:
| 项目 | 说明 |
|---|---|
| 时间 | 单张 RTX 3090,约 2 小时跑完预训练+SFT |
| 成本 | 阿里云/AutoDL 租 RTX 3090,按量计费约 1.5 元/小时 |
| 花费 | 2 × 1.5 = 3 块钱 |
| 硬件要求 | RTX 3060/4060(12G)也能跑;Mac MPS 或 CPU 也支持 |
花一杯蜜雪冰城的钱,就能亲手训练出一个能正常对话、能调用工具的 LLM。
64M 参数的模型能干啥用?
"笨"不等于"没用"。小模型恰恰有大模型无法替代的场景:
场景一:Multi-Agent 里的"廉价打工人"
在复杂 Agent 编排框架里,不需要每个子节点都调用昂贵的 Claude API。可以用大模型做"总指挥"负责规划,把重复性、确定性的脏活累活(提取日期、格式转换、简单分类)丢给 MiniMind 这种小模型。
- 原生支持
<tool_call>和<think>标签 - 接入 MCP 协议非常方便
- 响应快、成本几乎为零
场景二:高频自动化工作流的"低延迟算力"
比如自动化视频剪辑工具,需要从 SRT 字幕文件里提取每个词的时间戳。这种任务频率极高、逻辑固定,如果每次都调云端大模型 API,延迟大、费用高。
用几百条样本给 MiniMind 做一次 SFT 微调,然后本地部署——毫秒级响应,不用联网。
场景三:浏览器端 / 端侧的"极速集成"
64M 参数体积极小,通过 WebAssembly 编译后可以直接跑在浏览器里。在 Vue3 单页应用里加一个"智能补全"功能,完全可以在用户本地运行,不用任何后端,不用 API key。
怎么上手
方式一:直接体验(5 分钟)
git clone https://github.com/jingyaogong/minimind.git
cd minimind
pip install -r requirements.txt
python eval_llm.py # 终端对话
# 或者启动 Web 界面
python scripts/web_demo.py
项目兼容 Ollama / vLLM / llama.cpp,下载权重后直接接入喜欢的 Chat UI。
方式二:亲手训练(2 小时 + 3 块钱)
# 1. 把开源数据集放进 dataset/ 文件夹
# 2. 运行预训练
python train_pretrain.py
# 3. 运行监督微调
python train_full_sft.py
# 4. 跑完在 out/ 目录下拿到 .pth 模型文件
一句话总结
MiniMind 的定位更像一本可以运行的教科书。对于想真正理解 Transformer 底层原理、厌倦"调包侠"身份的人来说,这个项目价值连城。同时它也证明:小模型 ≠ 没用,只要数据清洗做得好、微调任务足够聚焦,64M 的参数也能在特定场景下当一个合格的"专职螺丝钉"。
GitHub:https://github.com/jingyaogong/minimind