![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)
DeepSeek 爆了,普通人如何3小时完全从0训练自己的大模型 原创
这个春节,DeepSeek 实在太火了,无须赘述。
今天要向大家推荐一个极具实用价值的开源项目——MiniMind。这个项目使得我们只需利用普通电脑,就能在短短3小时内打造出一个精简版的 DeepSeek!
为了避免误解,特别说明一下,“最快3小时”是基于你的硬件配置优于我本人的情况下。具体的硬件规格要求将在下文中详细说明。
1、为什么这个项目这么特别?
市场上的大语言模型(LLM)通常拥有上百亿参数,其训练成本相当高昂。对于想要学习和研究的人来说,这样的硬件要求往往成为一道难以逾越的障碍。然而,MiniMind 凭借其巧妙的设计,大幅缩减了模型参数,使得个人开发者也有能力自行训练 AI 大模型!
MiniMind 的最小版本仅有 26MB(大约是 GPT-3的1/7000),这意味着即便是普通的游戏显卡也能轻松驾驭。该项目提供了全面的训练步骤:
第一、基础语言能力训练(预训练阶段)
第二、对话能力训练(指令微调阶段)
第三、快速适应新任务(LoRA 微调技术)
第四、优化回答质量(DPO 偏好对齐方法)
2、实际使用场景
场景一、定制化 AI 助手打造
您能够培养出专注于特定领域的 AI 助手,例如:
- 客服机器人:基于企业产品知识库进行训练。
- 教育辅导机器人:专注于特定学科的习题解答和讲解。
- 行业专家助手:为特定行业提供专业的咨询服务。
场景二、技术探索与学术研究
- 深入理解大型语言模型的工作机制。
- 实际操作不同的训练技术。
- 探索模型的优化策略和改进方法。
场景三、产品概念验证
- 快速实现 AI 产品想法的原型开发。
- 在不同应用场景中测试产品的性能。
- 收集用户反馈,以促进产品的持续迭代和优化。
3、技术架构亮点剖析
第一、精简架构设计
- 基于 Transformer 的解码器单结构(Decoder-Only)。
- 利用 RMSNorm 进行预标准化,以增强模型表现。
- 引入旋转位置编码技术,有效处理长篇文本。
第二、创新性地推出专家混合模型版本(MoE)。
- 提供4个26MB的混合专家模型,以实现能力的提升。
- 在保持低计算资源消耗的同时,实现专家间的有效分工。
第三、灵活多样的部署选择
- 支持在单卡或多卡上进行训练。
- 与主流深度学习框架无缝兼容。
- 提供便捷的网页交互界面。
4、定制自己的大模型上手有多简单?
第一、克隆项目代码
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
第三、环境配置
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单机多卡训练
- Ubuntu == 20.04
- Python == 3.9
- Pytorch == 2.1.2
- CUDA == 12.2
- requirements.txt(本项目环境依赖)
第四、自己的训练数据集
- 下载数据集放到
./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 人类偏好强化学习对齐(非必须)
5、总结
MiniMind 项目正在快速发展,目前已支持:
- 文本对话:流畅的中英文交互
- 视觉理解:可以理解和描述图像
- 知识更新:持续优化训练数据
- 性能提升:不断改进模型结构
MiniMind 降低了 AI 开发的门槛,让更多人能够参与到大语言模型的探索中来。无论你是:
- 想入门 AI 的开发者
- 需要定制化 AI 助手的企业
- 对语言模型感兴趣的研究者
这个项目都能帮你快速起步,并在实践中不断成长。项目完全开源,想要了解更多 MiniMind 项目信息的读者可以查看项目 Github 地址:
https://github.com/jingyaogong/minimind
本文转载自公众号玄姐聊AGI 作者:玄姐
![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)