MiniMind:用3块钱成本从零训练一个大模型,从GPT原理到RLHF全解析

一、项目简介

MiniMind(github.com/jingyaogong/minimind)是一个极具教育意义的大模型训练开源项目——完全从0开始,仅用约3块钱的GPU成本和2小时训练时间,就能训练出一个约64M参数规模的超小型语言模型。GitHub星标数超过46000颗。

项目最大的特点是「极简主义」:所有核心代码均从零使用PyTorch原生实现,不依赖transformers、trl、peft等高层封装库。旨在让每个普通人都能真正理解大语言模型的内部工作原理,而不是仅仅调用别人封装好的API。

二、特色功能

  • 全链路开源:覆盖预训练、SFT微调、LoRA、DPO/PPO/GRPO强化学习完整流程
  • MoE专家混合:实现了Mixture of Experts稀疏激活架构
  • 数据清洗:提供完整的数据预处理和清洗流程
  • 多模态扩展:提供视觉多模态版本MiniMind-V
  • 扩散语言模型:实现了MiniMind-dLM扩散语言模型
  • 工具使用:支持Tool Use和Agentic RL功能
  • 极低成本:最小版本约GPT-3的1/2700,单卡3090即可训练
  • 中文优化:主要针对中文语料进行了优化

三、项目结构

minimind/
├── models/              # 模型结构定义
│   ├── transformer.py  # Transformer核心实现
│   ├── moe.py          # MoE专家混合
│   └── mm.py           # 多模态模型
├── data/               # 数据处理
│   ├── preprocess.py   # 数据清洗
│   └── dataset.py      # 数据集加载
├── train/              # 训练脚本
│   ├── pretrain.py     # 预训练
│   ├── sft.py          # 监督微调
│   └── rl/             # 强化学习训练
│       ├── ppo.py
│       ├── dpo.py
│       └── grpo.py
├── inference/           # 推理脚本
└── README.md

四、安装步骤

环境要求

  • Python 3.8+
  • PyTorch 2.0+
  • NVIDIA GPU(建议8GB+显存,3090单卡即可)
  • CUDA 11.8 或更高版本

克隆项目

git clone https://github.com/jingyaogong/minimind.git
cd minimind
pip install torch numpy tqdm peft  # 最小依赖

下载预训练数据

项目提供清洗好的中文预训练数据集,可以从Hugging Face下载:

pip install huggingface_hub
huggingface-cli download --repo-type dataset gongjy/MiniMind-data

五、训练自己的MiniMind

第一步:预训练

python train/pretrain.py \
    --model_size 64M \
    --context_length 512 \
    --batch_size 32 \
    --epochs 10 \
    --data_path ./data/pretrain.jsonl

第二步:监督微调(SFT)

python train/sft.py \
    --pretrained_path ./checkpoints/pretrain.pt \
    --data_path ./data/sft.jsonl \
    --epochs 3

第三步:强化学习(可选)

# DPO训练
python train/rl/dpo.py \
    --sft_model ./checkpoints/sft.pt \
    --data_path ./data/preference.jsonl

# GRPO训练
python train/rl/grpo.py \
    --sft_model ./checkpoints/sft.pt

推理使用

from models.transformer import Transformer
from inference.chat import generate

model = Transformer.load_pretrained("./checkpoints/sft.pt")
response = generate(model, "你好,请介绍一下自己")
print(response)

六、适用人群

  • AI学习者:想深入理解GPT/BERT等模型内部原理的同学
  • 算法工程师:学习大模型训练全流程,准备面试或研究
  • 教育者:教授NLP和LLM相关课程的教学工作者
  • 爱好者:对大模型技术充满好奇,想亲手训练一个小模型的个人

七、开源协议

MiniMind采用Apache 2.0开源协议,完全免费可商用。


服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。

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

请登录后发表评论

    暂无评论内容