DeepSeek 爆了,普通人如何3小时完全从0训练自己的大模型 原创

发布于 2025-2-11 10:24
浏览
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.c​​om/jingyaogong/minimind


本文转载自公众号玄姐聊AGI  作者:玄姐

原文链接:​​https://mp.weixin.qq.com/s/xbo5bEC6DgwJr0OhSFiOsA​

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-2-11 10:25:30修改
收藏
回复
举报
回复
相关推荐