今天为大家介绍一个特别实用的开源项目 - MiniMind。它让我们可以用普通电脑,在短短 3 小时内训练出一个迷你版的 ChatGPT!
为防止误读,「最快 3 小时」是指您需要具备>作者本人硬件配置的机器,具体规格的详细信息将在下文提供。
目前市面上的大语言模型动辄上百亿参数,训练成本高昂。就算是自己想学习和研究,也会被巨大的硬件门槛挡在门外。而 MiniMind 通过精妙的设计,把模型参数压缩到了最小,让个人开发者也能亲手训练 AI 模型!
最小版本仅有 26M 大小(约为 GPT-3 的 1/7000),一张普通的游戏显卡就能运行。项目提供了完整的训练流程:
CPU: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
内存:128 GB
显卡:NVIDIA GeForce RTX 3090(24GB) * 2
环境:python 3.9 + Torch 2.1.2 + DDP单机多卡训练
你可以训练一个针对特定领域的 AI 助手,比如:
只需几步就能开始:
# 1. 克隆项目
git clone https://github.com/jingyaogong/minimind.git
# 2. 安装依赖
pip install -r requirements.txt
# 3. 开始对话测试
python 2-eval.py
如果想要可视化界面,还可以使用内置的网页版:
streamlit run fast_inference.py
git clone https://github.com/jingyaogong/minimind.git
cd minimind
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 测试torch是否可用cuda
import torch
print(torch.cuda.is_available())
如果不可用,请自行去 torch_stable 下载 whl 文件安装。参考链接,
https://blog.csdn.net/weixin_45456738/article/details/141029610
./dataset
目录下python data_process.py
命令处理数据集,例如 pretrain 数据提前进行 token-encoder、sft 数据集抽离 qa 到 csv 文件./model/LMConfig.py
中调整 model 的参数配置这里仅需调整 dim 和 n_layers 和 use_moe 参数,分别是(512+8)
或(768+16)
,对应于minimind-v1-small
和minimind-v1
python 1-pretrain.py
执行预训练,得到 pretrain_*.pth
作为预训练的输出权重python 3-full_sft.py
执行指令微调,得到 full_sft_*.pth
作为指令微调的输出权重python 4-lora_sft.py
执行 lora 微调(非必须)python 5-dpo_train.py
执行 DPO 人类偏好强化学习对齐(非必须)项目正在快速发展,目前已支持:
MiniMind 降低了 AI 开发的门槛,让更多人能够参与到大语言模型的探索中来。无论你是:
这个项目都能帮你快速起步,并在实践中不断成长。项目完全开源,想要了解更多 MiniMind 项目信息的读者可以查看项目地址:
https://github.com/jingyaogong/minimind