
Minimind - 人人都能训练的“小”模型(附项目)
Minimind 是一个“小”语言模型,总共只有 2500 万个参数,最小版本体积只有 GPT-3 的七千分之一,作者称只需要3块钱+2小时就可以完成训练
Minimind 是一个“小”语言模型,总共只有 2500 万个参数,最小版本体积只有 GPT-3 的七千分之一,作者称只需要3块钱+2小时就可以完成训练,项目地址为:https://github.com/jingyaogong/minimind。
为防止误解,“2小时” 基于NVIDIA 3090硬件设备(单卡)测试,“3块钱” 指GPU服务器租用成本,具体规格详情见下文。
Minimind 完全从0开始,对大语言模型实现了全阶段开源复现,是入门 LLM 的绝佳教程。
本文将根据项目文档完成两阶段训练(预训练和有监督微调),初步感受一下“大”模型的训练过程:
环境准备
Minimind 作者的软硬件配置(仅供参考):
- CPU: Intel® Core™ i9-10980XE CPU @ 3.00GHz
- RAM: 128 GB
- GPU: NVIDIA GeForce RTX 3090(24GB) * 8
- Ubuntu 20.04
- CUDA 12.2
- Python 3.10.16
- requirements.txt
我的软硬件配置(我的个人电脑GPU只有500M显存,所以使用了云主机):
- ModelScope 免费提供的阿里云PAI-DSW实例(36个小时,完成本文训练共花费4小时左右)
- 8核CPU + 32GB内存
- NIVDIA A10,24G显存
- Ubuntu 22.04
- CUDA 12.1
- Python 3.10.16(Miniconda虚拟环境)
ModelScope提供的免费GPU实例
获取代码
代码语言:bash
复制
# 从 github 下载代码并进入项目目录
git clone https://github.com/jingyaogong/minimind.git
cd minimind
# 创建虚拟环境并激活
conda create --name minimind python=3.10.16
conda init
conda activate minimind
# 安装需要的依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simp
下载数据
代码语言:bash
复制
# 还是在 minimind 目录
pip install modelscope
modelscope download --dataset gongjy/minimind_dataset --local_dir ./dataset
总共下载了 20 多 G 的数据,都是 jsonl 格式:
预训练
预训练需要执行一个 python 文件:
代码语言:bash
复制
python train_pretrain.py
预训练过程其实是有一些参数可以调整的,但为了快速完成训练,我们先全部使用默认参数。
预训练所使用的数据:
在我的这个云主机里,训练一个 epoch大概需要两个小时:
预训练
有监督微调
有监督微调也只需要执行一个 python 文件:
代码语言:bash
复制
python train_full_sft.py
微调使用的数据格式和预训练不同,对对话的双方做了区分:
从肉眼上看,微调的速度比预训练略快:
有监督微调
模型评估
经过上面的训练,我们得到了两个模型,一个是预训练模型,一个是微调模型,都在 out 目录下:
可以看到两个模型的大小一模一样,说明两个模型的结构应该是相同的。
下面我们使用 python eval_model.py
来比较两个模型的表现,eval_model.py
这个文件接收两个参数:
--load
参数,用来指示加载我们自己训练的模型(在out
目录),还是加载从Huggingface下载下来的模型(在MiniMind2
目录);model_mode
参数,用来指示加载哪个阶段的模型,0表示预训练模型,1表示微调模型,2表示RLHF模型等;
首先是项目自带的评测:
预训练模型-自动评测
微调模型-自动评测
可以看出,虽然都只训练了一个epoch,微调后的模型比预训练模型明显强了很多,即使存在信息不准确或者错误,但是对话的语气和意图是很明显的,而预训练模型就差了很多,而且看起来似乎有时没办法终止对话。
再来看看人工评测,我问了两个模型三个相同问题:
- 豆腐脑甜的好吃还是咸的好吃?
- 大模型是什么东西?
- 邓紫棋哪首歌好听?
下面是它们的回答:
预训练模型-人工评测
微调模型-人工评测
和自动评测的结果差不多,微调模型“知道”自己在对话,而预训练模型的回答非常发散。
项目也提供了 Web 页面和模型交互的方法,通过 streamlit
实现:
代码语言:bash
复制
cd scripts
streamlit run web_demo.py
对话界面长这样:
后续
以上就是我的 Minimind 初体验,由于时间和成本问题,预训练模型和微调模型都只训练了一个 epoch,模型表现不是很给力,但是这不影响我们了解大模型的训练过程,后续我会进一步深入研究 Minimind 项目,包括复现其它的训练阶段,研究训练代码,以及过程中发现的其他问题。如果你也对此感兴趣,或者有学习大模型的建议,欢迎指点和交流!
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近70次后,终于把整个AI大模型的学习门槛,降到了最低!
在这个版本当中:
第一您不需要具备任何算法和数学的基础
第二不要求准备高配置的电脑
第三不必懂Python等任何编程语言
您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
五、AI产品经理大模型教程
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
更多推荐
所有评论(0)