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

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

> 仅需 **3 块钱 GPU 成本 + 2 小时训练时间**,就能从 0 亲手训练出一个能对话的超小语言模型 —— 这就是今天的 GitHub 爆火项目 **MiniMind**(57,000+ Star,今日新增 1000+)。

项目是什么?

**MiniMind** 是一个**完全从零开始**训练大语言模型(LLM)的开源项目,由开发者 jingyaogong 发起。它的核心宣言是:

> 让你用最少的成本,**从每一行代码开始理解 LLM 的内部运作机制**,亲手从 0 训练出一个极小的语言模型——而不是仅仅停留在用 LoRA 微调现成大模型。

MiniMind 主线最小区块体积约为 GPT-3 的 **1/2700**,哪怕是普通个人 GPU 也能在短时间内完成训练与复现。

**项目地址**:https://github.com/jingyaogong/minimind

它有什么用?

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 的高层封装——这意味着你可以看到每一行底层代码
  • 简单说,它是**一套面向 LLM 入门与实践的完整教程**,既适合想搞懂大模型原理的学习者,也适合想做低成本实验的研究者。

    硬件要求

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

  • CPU: Intel i9-10980XE
  • RAM: 128 GB
  • GPU: NVIDIA RTX 3090 (24GB) × 8(**单卡即可**)
  • 系统: 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. 下载模型

    在项目根目录,任选一种方式:

    # 方式1:ModelScope(国内快)
    modelscope download --model gongjy/minimind-3 --local_dir ./minimind-3
    
    # 方式2:HuggingFace
    git clone https://huggingface.co/jingyaogong/minimind-3

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

    从 [ModelScope 数据集](https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files) 下载 `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** 做训练可视化,接口兼容,把 `import wandb` 换成 `import swanlab as wandb` 即可。

    关键技术点一览

  • **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 造一个属于自己的模型**。它用极低的门槛,重新点燃了”亲手创造”的乐趣。

    **项目信息:**

  • 项目地址:https://github.com/jingyaogong/minimind
  • 协议:Apache 2.0(完全免费开源)
  • 语言:Python(PyTorch 原生实现)
  • Stars:57,000+
  • 主线模型:minimind-3(64M)/ minimind-3-moe(198M)
  • © 版权声明
    THE END
    喜欢就支持一下吧
    点赞7 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容