基于 minimind 从零训练 26M 微型语言模型指南
个人电脑仅需 2G 显卡即可在 3 小时内从零完全训练一个 26M 的小规模 GPT。
本项目基于 DeepSeek-V2 的 minimind 神库,大幅降低了大模型训练的门槛,让每个人都可以自行体验完整的训练流程。以下包含项目介绍、环境配置及详细步骤。
项目简介
MiniMind 是一个开源项目,旨在完全从 0 开始,最快仅用 3 小时即可训练出仅为 26M 大小的微型语言模型。MiniMind 极其轻量,体积约是 GPT-3 的 1/7000,力求做到最普通的个人 GPU 也可快速推理甚至训练。
MiniMind 改进自 DeepSeek-V2、Llama3 结构,项目包含整个数据处理、pretrain(预训练)、sft(指令微调)、dpo(直接偏好优化)的全部阶段,包含混合专家 (MoE) 模型。
这是一个既是开源项目,又是入门 LLM 教程,同时也是一个初具雏形的开源模型,希望能起到抛砖引玉的作用。
背景与目标
大语言模型(LLM)领域,如 GPT、LLaMA、GLM 等,虽然效果惊艳,但动辄 10B+ 庞大的模型参数使得个人设备显存远不够训练,甚至推理困难。几乎所有人都不会只满足于用 LoRA 等方案 fine-tuning 大模型学会一些新的指令,这约等于在教牛顿玩 21 世纪的智能手机,然而,这远远脱离了学习物理本身的奥妙。
因此,本项目的目标是把上手 LLM 的门槛无限降低,直接从 0 开始训练一个极其轻量的语言模型。
截至 2024 年 9 月 17 日,minimind 训练了 3 个型号模型,最小仅需 26M(0.02B),即可具备流畅的对话能力。
| 模型 (大小) | tokenizer 长度 | 推理占用 | release | 主观评分(/100) |
|---|---|---|---|---|
| minimind-v1-small (26M) | 6400 | 0.5 GB | 2024.08.28 | 50' |
| minimind-v1-moe (4×26M) | 6400 | 1.0 GB | 2024.09.17 | 55' |
| minimind-v1 (108M) | 6400 | 1.0 GB | 2024.09.01 | 60' |
该分析在一个带有 Torch 2.1.2、CUDA 12.2 和 Flash Attention 2 的 RTX 3090 GPU 上运行。
项目特性
- 公开 MiniMind 模型代码(包含 Dense 和 MoE 模型)、Pretrain、SFT 指令微调、LoRA 微调、DPO 偏好优化的全过程代码、数据集和来源。
- 兼容
transformers、accelerate、trl、peft等流行框架。 - 训练支持单机单卡、单机多卡 (DDP、DeepSpeed) 训练。训练过程中支持在任意位置停止,及在任意位置继续训练。
- 在 Ceval 数据集上进行模型测试的代码。
- 实现 Openai-Api 基本的 chat 接口,便于集成到第三方 ChatUI 使用(FastGPT、Open-WebUI 等)。
环境配置
以下是推荐的软硬件环境配置,可根据实际情况酌情更改:
- Ubuntu == 20.04
- Python == 3.9
- Pytorch == 2.1.2
- CUDA == 12.2
安装依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple


