MiniMind:2 小时从零训练一个 64M 参数的 LLM

今天 GitHub Trending 上最火的项目之一 MiniMind 刷屏了:57,000+ Star,今日新增 1000+。它的口号非常硬核——仅需 3 块钱 GPU 成本 + 2 小时训练时间,就能从零亲手训练出一个能对话的超小语言模型。项目地址:github.com/jingyaogong/minimind

项目是什么?

MiniMind 是一个完全从零开始训练大语言模型(LLM)的开源项目,由开发者 jingyaogong 发起。核心宣言是:让你用最少的成本,从每一行代码开始理解 LLM 的内部运作机制,亲手从 0 训练出一个极小的语言模型——而不是仅仅停留在用 LoRA 微调现成大模型。

MiniMind 主线最小区块体积约为 GPT-3 的 1/2700,哪怕是普通个人 GPU 也能在短时间内完成训练与复现。它不只是玩具,而是一套完整的 LLM 入门与实践教程

它有什么用?

MiniMind 覆盖了大模型训练的全套流程

  • 结构:Dense(稠密)+ MoE(混合专家)两种架构,主线对齐 Qwen3 / Qwen3-MoE 生态
  • 训练全阶段:预训练(Pretrain)、监督微调(SFT)、LoRA、RLHF(DPO)、RLAIF(PPO/GRPO/CISPO)
  • 进阶能力:Tool Use(工具调用)、Agentic RL(智能体强化学习)、自适应思考、模型蒸馏
  • 多模态拓展:视觉模型 MiniMind-V、全模态 Omni 模型 MiniMind-O、扩散语言模型等
  • 完全开源:核心算法全部用 PyTorch 原生实现,不依赖 transformers/trl/peft 高层封装——你能看到每一行底层代码

一句话总结:它教你不是「怎么用别人的模型」,而是「从 0 亲手造一个属于自己的模型」。

硬件要求

作者实测配置(供参考):

  • CPU: Intel i9-10980XE
  • RAM: 128 GB
  • GPU: NVIDIA RTX 3090 (24GB)(单卡即可
  • 系统: Ubuntu 20.04 / CUDA 12.2 / Python 3.10+

「2 小时」指 SFT 阶段在单张 3090 上跑完 1 epoch 的实测耗时;「3 块钱」指对应时段的 GPU 租用成本。个人开发者完全可以用低成本云 GPU 跑通。

怎么安装?

1. 克隆仓库 + 安装依赖

git clone --depth 1 https://github.com/jingyaogong/minimind
cd minimind && pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

先确认 PyTorch 能识别 GPU(训练速度差异很大):

import torch
print(torch.cuda.is_available())   # 应输出 True

2. 下载模型

在项目根目录,任选一种方式(国内推荐 ModelScope):

# 方式1:ModelScope(国内快)
modelscope download --model gongjy/minimind-3 --local_dir ./minimind-3

# 方式2:HuggingFace
git clone https://huggingface.co/jingyaogong/minimind-3

3. 下载训练数据(如果要自己训练)

ModelScope 数据集 下载 pretrain_t2t_mini.jsonl 和 sft_t2t_mini.jsonl 放入 ./dataset 目录,即可复现 MiniMind 对话模型。

怎么使用?

1. 直接推理(最快上手)

Transformers 格式模型:

python eval_llm.py --load_from ./minimind-3

PyTorch 权重:

python eval_llm.py --load_from ./model --weight full_sft

2. 本地 WebUI 聊天

# 先把 transformers 模型复制到 scripts 目录
cp -r minimind-3 ./scripts/minimind-3
cd scripts && streamlit run web_demo.py

⚠️ 需要 pip install streamlit

3. 用常用推理引擎部署

# ollama(最简单)
ollama run jingyaogong/minimind-3

# vllm(高并发服务)
vllm serve /path/to/model --served-model-name "minimind"

4. 从零训练(进阶)

预训练:

cd trainer && python train_pretrain.py   # 得到 out/pretrain_*.pth

监督微调 SFT:

cd trainer && python train_full_sft.py   # 得到 out/full_sft_*.pth

断点续训(长时间训练不怕中断):

python train_pretrain.py --from_resume 1
python train_full_sft.py --from_resume 1

多卡加速(N 张显卡):

torchrun --nproc_per_node N train_xxx.py

💡 国内网络 2025 年 6 月后通常无法直连 WandB,MiniMind 默认改用 SwanLab 做训练可视化,接口兼容。

关键技术点一览

  • Tokenizer 词表仅 6400:相比 Yi(64000)、Qwen2(151643)、Llama3(128000) 极小,压缩 embedding 层参数占比
  • 检查点自动保存:./checkpoints/ 存完整检查点(模型+优化器+进度),支持跨 GPU 数量恢复
  • 兼容生态广:支持 transformers/trl/peft、llama.cpp、vllm、ollama、Llama-Factory 等主流框架

总结

MiniMind 的价值在于「降维」。它把大模型训练这个看似遥不可及的高门槛技术,压缩到了「3 块钱 + 2 小时 + 单张消费级 GPU」的范围内,并且代码全透明——不靠黑盒封装,让你真正看懂每一行。

适合谁用?

  • 想搞懂 LLM 内部原理的学习者:从代码层面而非黑盒层面理解训练
  • 想低成本做实验的研究者:预训练、微调、强化学习全流程可复现
  • 被付费 AI 课程坑过的人:这里有一份免费、开源、可亲手运行的真教程
  • 想为 AI 编程助手/Agent 做定制的小团队

一句话评价:在大模型「高不可攀」的时代,MiniMind 选择反向而行——不教你怎么用别人的模型,而是教你从 0 造一个属于自己的模型。它用极低的门槛,重新点燃了「亲手创造」的乐趣。

项目地址:github.com/jingyaogong/minimind | 协议:Apache 2.0(完全免费开源) | Stars: 57,000+ | 主线模型:minimind-3(64M)/ minimind-3-moe(198M)

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容