AI个人学习
和实操指南
豆包Marscode1

MiniMind:2小时从零训练26M参数GPT的开源工具

综合介绍

MiniMind 是一个开源项目,由开发者 jingyaogong 创建。它的核心目标是让普通人也能快速训练自己的 AI 模型。MiniMind 主打特点是用 2 小时在单张 NVIDIA 3090 显卡上从零训练一个 26M 参数的 GPT 模型,成本仅约 3 元人民币。项目提供从预训练到微调的全流程代码,包括数据集清洗、预训练、指令微调、LoRA、DPO 和模型蒸馏等,还支持视觉多模态扩展 MiniMind-V。所有代码基于 PyTorch 从零重构,不依赖第三方抽象接口。截至 2025 年 2 月,MiniMind 已推出多个版本,最小模型仅 25.8M 参数,社区反响热烈。

MiniMind:2小时从零训练26M参数GPT的开源工具-1


 

功能列表

  • 支持 2 小时内从零训练 26M 参数 GPT 模型,单张 3090 显卡即可运行。
  • 提供预训练、指令微调、LoRA、DPO 和模型蒸馏的全流程代码。
  • 包含视觉多模态扩展 MiniMind-V,可处理图像和文本。
  • 支持单机单卡和多卡训练,兼容 DeepSpeed 和 wandb 可视化。
  • 提供 OpenAI API 协议服务端,方便接入第三方聊天界面。
  • 开源高质量数据集和模型权重,可直接下载或二次开发。
  • 支持 tokenizer 训练和自定义词表,灵活调整模型结构。

 

使用帮助

MiniMind 的使用分为安装、训练和推理三步。以下是详细指南,帮助用户快速上手。

安装流程

  1. 环境准备
    • 需要 Python 3.10 或更高版本。
    • 检查显卡支持 CUDA,运行以下代码:
      import torch
      print(torch.cuda.is_available())
      

      如果返回 True,表示可用;否则需安装对应 PyTorch 版本。

    • 安装 Git,用于克隆代码。
  2. 克隆项目
    在终端输入:
git clone https://github.com/jingyaogong/minimind.git
cd minimind
  1. 安装依赖
    使用清华镜像加速安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

若遇到问题,可手动安装 torch 或 flash_attn

  1. 下载数据集
  • 在 GitHub README 或 https://www.modelscope.cn/datasets/gongjy/minimind_dataset/files 下载数据集。
  • 创建 ./dataset 文件夹,解压文件到此目录。
  • 推荐下载 pretrain_hq.jsonl(1.6GB)和 sft_mini_512.jsonl(1.2GB)。

训练模型

  1. 预训练
  • 运行脚本开始预训练:
    python train_pretrain.py
    
  • 默认使用 pretrain_hq.jsonl,输出权重保存为 pretrain_*.pth
  • 多卡加速:
    torchrun --nproc_per_node 2 train_pretrain.py
    
  1. 指令微调
  • 运行微调脚本:
    python train_full_sft.py
    
  • 默认使用 sft_mini_512.jsonl,输出权重保存为 full_sft_*.pth
  • 多卡支持同上。
  1. LoRA 微调
  • 准备领域数据(如 lora_medical.jsonl),运行:
    python train_lora.py
    
  • 输出权重保存为 lora_xxx_*.pth
  1. DPO 强化学习
  • 使用 dpo.jsonl 数据,运行:
    python train_dpo.py
    
  • 输出权重保存为 rlhf_*.pth
  1. 可视化训练
  • 添加参数 --use_wandb,如:
    python train_pretrain.py --use_wandb
    
  • 在 wandb 官网查看训练曲线。

使用模型推理

  1. 命令行推理
  • 下载模型权重(如 MiniMind2):
    git clone https://huggingface.co/jingyaogong/MiniMind2
    
  • 运行推理:
    python eval_model.py --load 1 --model_mode 2
    
  • 参数说明:--load 1 用 transformers 格式,--model_mode 2 用 MiniMind2。
  1. 网页聊天
  • 安装 Streamlit:
    pip install streamlit
    
  • 启动界面:
    cd scripts
    streamlit run web_demo.py
    
  • 在浏览器访问 localhost:8501,即可对话。
  1. API 服务
  • 启动服务端:
    python serve_openai_api.py
    
  • 测试接口:
    curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "MiniMind2", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 512}'
    

特色功能操作

  • 视觉多模态 (MiniMind-V)
  • 下载 MiniMind-V 模型:
git clone https://huggingface.co/jingyaogong/MiniMind2-V
  • 下载 CLIP 视觉模型到 ./model/vision_model
git clone https://huggingface.co/openai/clip-vit-base-patch16
  • 运行:
python eval_vlm.py --load 1
  • 输入文本和图片,模型会生成描述。
  • 自定义训练
  • 将数据整理为 .jsonl 格式,放入 ./dataset
  • 修改 ./model/LMConfig.py 参数(如 d_model 或 n_layers)。
  • 按上述步骤训练。

注意事项

  • 显存不足时,调整 batch_size 或增加 accumulation_steps
  • 数据集较大时,分批处理,避免内存溢出。
  • 超长上下文支持调整 RoPE 参数,最高可达 2048。

 

应用场景

  1. AI 学习
    MiniMind 提供全套代码和数据,适合初学者研究大模型训练流程。
  2. 领域定制
    用私有数据训练模型,如医疗问答或客服对话。
  3. 低成本部署
    26M 参数模型适合嵌入式设备,如智能家居。
  4. 教学演示
    教师可用其展示 AI 训练过程,学生可动手实践。

 

QA

  1. MiniMind 需要多强硬件?
    单张 NVIDIA 3090 显卡即可训练,CPU 也能跑但速度慢。
  2. 2 小时训练靠谱吗?
    是的,基于 3090 单卡测试,26M 参数模型从零训练只需约 2 小时。
  3. 可以商用吗?
    可以,项目用 Apache 2.0 许可证,允许免费使用和修改。
  4. 如何扩展上下文长度?
    调整 RoPE 参数或用更长数据微调,最高支持 2048。
未经允许不得转载:首席AI分享圈 » MiniMind:2小时从零训练26M参数GPT的开源工具
zh_CN简体中文