今天为大家介绍一个特别实用的开源项目 - MiniMind。它让我们可以用普通电脑,在短短 3 小时内训练出一个迷你版的 ChatGPT!
为防止误读,「最快 3 小时」是指您需要具备>作者本人硬件配置的机器,具体规格的详细信息将在下文提供。
为什么这个项目这么特别?
目前市面上的大语言模型动辄上百亿参数,训练成本高昂。就算是自己想学习和研究,也会被巨大的硬件门槛挡在门外。而 MiniMind 通过精妙的设计,把模型参数压缩到了最小,让个人开发者也能亲手训练 AI 模型!
最小版本仅有 26M 大小(约为 GPT-3 的 1/7000),一张普通的游戏显卡就能运行。项目提供了完整的训练流程:
-
基础语言能力训练(预训练)
-
对话能力训练(指令微调)
-
快速适应新任务(LoRA 微调)
-
优化回答质量(DPO 偏好对齐)
环境需要
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(本项目环境依赖)
实际应用场景
1. 个性化助手开发
你可以训练一个针对特定领域的 AI 助手,比如:
-
客服机器人:根据公司产品知识库训练
-
教育辅导:针对特定学科的习题讲解
-
行业助手:为特定行业提供专业建议
2. 技术学习与研究
-
了解大语言模型的工作原理
-
实践各种训练方法
-
尝试模型优化和改进
3. 产品原型验证
-
快速验证 AI 产品创意
-
测试不同场景下的效果
-
收集用户反馈进行迭代
技术亮点解析
轻量级架构
-
采用 Transformer 的 Decoder-Only 结构
-
使用 RMSNorm 预标准化提升性能
-
引入旋转位置编码处理长文本
创新的专家模型版本(MoE)
-
提供 4×26M 的混合专家模型
-
通过专家分工提升模型能力
-
保持较低的计算资源需求
灵活的部署选项
-
支持单卡/多卡训练
-
兼容主流深度学习框架
-
提供网页交互界面
上手有多简单?
只需几步就能开始:
# 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
定制大模型
1. 克隆项目代码
git clone https://github.com/jingyaogong/minimind.git cd minimind
2. 环境安装
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
3. 自己训练数据集
-
下载数据集放到
./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 开发的门槛,让更多人能够参与到大语言模型的探索中来。无论你是:
-
想入门 AI 的开发者
-
需要定制化 AI 助手的企业
-
对语言模型感兴趣的研究者
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。